TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: jfmateos2 en 25 de Abril de 2014, 07:41:45

Título: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 25 de Abril de 2014, 07:41:45
Necesito evitar que tensiones de 5V alcancen los pines de un PIC32 3v3. He visto conversores como el TXB0108, pero busco algo más económico porque en realidad no necesito convertir los niveles.

El PIC32 interviene en un bus de direcciones en el que puede haber presentes señales de 5V. Los pines del PIC32 siempre intervienen en modo salida.

La cuestión es que cuando intervienen en el bus otros sistemas (los de 5V) el PIC32 podría simplemente inhibirse, es decir, desconectarse del bus... pero no sé cómo conseguir esto.

¿Quizás con un multiplexor, un buffer?

¿Se les ocurre algo que sea económico?
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 25 de Abril de 2014, 07:51:53
También había pensado intercalar diodos entres los pines del PIC32 y el bus de direcciones de modo que sólo permitan el paso de corriente desde el PIC32 al bus... pero no sé si funcionaría y poner 16 diodos me da un poco de pereza.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Picuino en 25 de Abril de 2014, 09:17:04
3V Tips 'n Tricks - Microchip (en026368.pdf)
http://www.microchip.com/stellent/groups/techpub_sg/documents/devicedoc/en026368.pdf


http://www.newark.com/pdfs/techarticles/microchip/3_3vto5vAnalogTipsnTricksBrchr.pdf


Saludos.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 25 de Abril de 2014, 09:23:09
Muchas gracias picuino... ya había leído ese documento pero las soluciones que propone se me hacen complicadas por la cantidad de componentes que requieren (es un bus de 16 bits)... y realmente no necesito convertir las tensiones, sino simplemente "separar" el PIC cuando en el bus haya actividad de 5V

Finalmente voy a intentarlo utilizando 2 buffer 74hc541, que pondrán las salidas del PIC en alta impedancia cuando se detentec 5V en sus OE.

No obstante, se admiten sugerencias  :mrgreen:
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: HJG en 25 de Abril de 2014, 11:41:05
Idea tirada medio al azar ya que nunca he utilizado micros de 3V y desconozco los pormenores de su uso... ademas de no conocer a que van conectadas esas salidas exactamente...

No serviría una resistencia de unos 2K2  en cada salida del micro... en caso de tener un "1" => (5V - 3V)/2K2= 0.909 mA,   y en caso de tener un "0" => 5V-0V)/2K2= 2.27 mA.
Por favor alguien entendido que chequee esta idea medio loca...

Si se trata de entadas un simple divisor resistivo alcanzaría....
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Picuino en 25 de Abril de 2014, 11:58:34
Si separas las salidas con resistencias integradas en encapsulados de 4 resistencias y 8 pines, solo necesitas 4 componentes pequeños y baratos.
Saludos.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: HJG en 25 de Abril de 2014, 12:06:37
Si separas las salidas con resistencias integradas en encapsulados de 4 resistencias y 8 pines, solo necesitas 4 componentes pequeños y baratos.
Saludos.
Es lo que acabo de sugerir, gracias por corroborarlo. lo que necesito es que verifiquen el valor.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Nocturno en 25 de Abril de 2014, 12:20:23
¿Sabes que tienen muchos pines que son "5V tolerant"?
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: manwenwe en 25 de Abril de 2014, 12:55:11
¿Sabes que tienen muchos pines que son "5V tolerant"?

+1  :P
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: planeta9999 en 25 de Abril de 2014, 14:00:32

El PIC32 interviene en un bus de direcciones en el que puede haber presentes señales de 5V. Los pines del PIC32 siempre intervienen en modo salida.

La cuestión es que cuando intervienen en el bus otros sistemas (los de 5V) el PIC32 podría simplemente inhibirse, es decir, desconectarse del bus... pero no sé cómo conseguir esto.



Entiendo que estás montando un bus de datos común compartido con varios dispositivos, en el que el PIC, en ocasiones va a leer y otras va a escribir, de o hacia esos dispositivos.
Yo tengo un diseño de ese tipo, y lo que he utlizado es un 74HC244 conectado a cada dispositivo de los que comparte el bus, de manera que el PIC activa cada uno individualmente, para leer o escribir.

No se si el PIC se podría dañar, caso de tener el puerto definido como de salida, y que le entren datos, que los niveles de esos datos sean de 5 voltios es totalmente irrelevante, salvo que sea un puerto analógico, ya que en ese caso solo toleran 3.3 voltios, tal vez en ese caso baste con poner unas resistencias para limitar la corriente, al fin y al cabo cuando ponemos una resistencia de pull-up en un puerto definido como salida, le estamos conectando un voltaje de 5v o 3.3v, y el puerto no se daña.


PD: acabo de releer tu consulta, y veo que dices que el PIC siempre funciona como salida, entonces tiene que haber algún master en ese bus, para evitar colisiones, sino no tiene mucho sentido un bus compartido, además un bus de direcciones nunca es compartido para escritura, solo el bus de datos y controlado por un master.


 
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 26 de Abril de 2014, 05:00:09
Sí he utilizado todos los pines tolerantes 5V pero aún necesito más (hay dos buses de direcciones de 16 bits y dos buses de datos de 8 bits).

Sí planeta, yo he obtado optado por tu misma solución: el 74hc541 es sólo una versión de los 74hc244 con las entradas y salidas enfrentadas para que resulte más fácil rutear la placa.

He interpuesto el 74hc541 entre el PIC y el bus de direcciones (los pines del pic son siempre de salida). Cuando un sistema de 5V interviene en el bus, el 74hc541 se pone en alta impedancia y listo. Cuando no hay sistema de 5V, el 74hc541 se pone en modo salida transparente, y además me da una ventaja adiciónal, me hace de conversor de los 3v3 del PIC a los 5V del bus de direcciones.

Lo tengo que probar aún en la placa real, pero parece que tiene sentido.

Es una solución barata porque los 74hc541 salen por unos 0.20€... y los puñeteros arrays de resistencias en tamaños 0603 se me hacen muy difíciles de soldar (casi siempre acabo con pines puenteados).

Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: alperez en 26 de Abril de 2014, 05:12:24
no sé si esto te serviria, yo tuve que hacerlo y funciona bien.
es posible que sea ua solución cara, pero es efectiva

http://www.nxp.com/documents/application_note/AN10441.pdf
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: migsantiago en 26 de Abril de 2014, 13:54:26
Hola JFMateos

¿La solución de una R en serie con diodos clamping (sólo el superior a 3V3) no podría servirte? Se limita el ancho de banda, pero puedes jugar con el valor de la R para eso. Saludos.

Incluso con los diodos clamping internos del PIC talvez funcione.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: pajaro en 28 de Abril de 2014, 10:02:25
Hola compañero
yo recuerdo que en uno de mis montajes ...
tenia que montar un dispositivo de 3.3 y otro de 5v y
se bebian de comunicar entre ambos y al final opte por ...
un transistor MOS-FEt de canal N.
fue muy barato y muy practico.

http://www.neoteo.com/adaptador-de-niveles-para-bus-i2c-3-3v-5v/

un saludo.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: MerLiNz en 28 de Abril de 2014, 11:42:13
Lo ideal es esto:
http://www.ti.com/lit/ds/symlink/sn74alvc164245.pdf
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 28 de Abril de 2014, 17:02:30
Sí Pájaro, pero aquí me obligaría a meter 16 de esos transistores y no tengo sitio...

Gracias Merlinz... muy interesante ese ic... me lo apunto (caro para esta ocasión, pero seguro que muy útil para otras).
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: MerLiNz en 28 de Abril de 2014, 18:33:40
cuesta 2€ no seas tacaño  :lol: :lol:
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 29 de Abril de 2014, 01:37:27
No soy tacaño  :mrgreen: soy ingeniero.
Si puedo hacerlo por 0.4€ no debo hacerlo por 2€.

La ingeniería es también economía.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: migsantiago en 29 de Abril de 2014, 21:35:31
No soy tacaño  :mrgreen: soy ingeniero.
Si puedo hacerlo por 0.4€ no debo hacerlo por 2€.

La ingeniería es también economía.

jejej buen punto  :mrgreen:
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Suky en 29 de Abril de 2014, 23:13:27
+1  :mrgreen:
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: BrunoF en 30 de Abril de 2014, 02:51:47
No soy tacaño  :mrgreen: soy ingeniero.
Si puedo hacerlo por 0.4€ no debo hacerlo por 2€.

La ingeniería es también economía.

(http://www.indianfunpic.com/wp-content/uploads/2013/07/Give-That-man-a-Medal.jpg)
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Picuino en 30 de Abril de 2014, 04:53:13
Estoy de acuerdo, pero también hay que valorar el tiempo de desarrollo.
En el caso de fabricar pocas unidades, el mayor costo suele ser el de diseño y montaje.

Saludos.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 08 de Mayo de 2014, 08:24:51
Por si alguien necesita alguna vez convertir niveles, un buscador excelente de TI:

http://www.ti.com/logic/docs/translationresults.tsp?sectionId=458&voltageIn=5.0&voltageOut=3.3&searchDirection=1&sortColumn=Bitwidth&sortType=Desc#voltrslt
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 18 de Julio de 2014, 08:19:02
Gracias a la indicación de Merlinz, hoy le llegó el turno al 74alv164245 en uno de mis proyectos que implica un PIC32MX.

La cuestión es que el 74alv164245 parece funcionar bien cuando no está el PIC32 conectado a sus salidas, pero cuando conecto el PIC32 (concretamente el puerto B, con la precaución de configurarlo como entrada digital), se produce una demora en la señal y un acortamiento importantes. Es como si el PIC32 tuviera un enorme condensador.

En la imagen se ve la entrada al 74alv164245, la salida cuando el PIC32 aún no está soldado al PCB y la salida con el PIC32 soldado y el puerto b configurado en entrada digital.

¿A alguien se le ocurre a qué puede deberse este retraso?
Gracias

(http://snag.gy/AJuKx.jpg)
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Jorge555 en 18 de Julio de 2014, 14:20:33
Cada pin de entrada tendrá su capacitancia parásita, si tienes resistencias de pull-up en el pin como entrada digital has probado a activarlas a ver si así se reducen los tiempos si es debido a la carga y descarga de ese condensador parásito?
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 18 de Julio de 2014, 14:58:37
Gracias Jorge, he probado con pull-up y pull-down externas de 10k y en ningún caso he conseguido mejoría... es como si el pin B0 del pic estuviera lento...
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: Jorge555 en 18 de Julio de 2014, 15:13:49
Como toda entrada digital tendrá su capacitancia parásita y por tanto un retardo, pero será una capacitancia muy pequeñita que no debería meterte ese retraso en la señal. Lo único que se me ocurre (sin conocer los pic32) es que por error el puerto esté configurado como entrada y como entrada analógica, y estás cargando el condensador de sample and hold del adc, eso explicaría esa capacitancia, a primera vista no se me ocurre más de donde puede venir ese retardo.

Edito: mirando por curiosidad el esquema del ADC de un pic 32 diría que esto tampoco te afectaría, ya que hay una resistencia en serie con el condensador de sample and hold (a no ser que la resistencia entre el integrado y el pin del pic sea elevada), por lo que la única capacitancia que tienes en paralelo con el pin es el Cpin que indica en el datasheet que supongo que será del orden de picofaradios.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 18 de Julio de 2014, 16:46:17
Gracias Jorge... sí yo también sospechaba de que estuviera cargando el condensador del ADC pero no parece que pueda ser eso... a ver si me monto un protoboard porque en el pcb es muy difícil hacer cambios e investigo un poco más.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: MerLiNz en 18 de Julio de 2014, 18:36:51
Es extraño que te suceda eso, yo con un dspic33e no tenia ese problema ni mucho menos, el tiempo de desfase eran unos 10ns como mucho, en el datasheet te viene puesto.

Has configurado bien las DIR y OE?? A ver si va ser que hay ruidos o algo por ahi y tienes los pines sin conectar y estan interfiriendo.

Las señales que has puesto, que frecuencia tienen??

Por cierto si usas un osciloscopio seria mejor, quizas ahi se pueda ver mas que con el analizador logico.
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 19 de Julio de 2014, 10:36:52
Sí Merlinz, con un dspic30f he visto que no hay problema, pero con el pic32mx470 no hay manera.

Quiero medir frecuencias de entre 1-2MHz, pero el PIC32 no veía nada a la salida del 164245, así que ahora estoy probando a tan sólo 250Hz y pasa lo que se ve en la captura que he puesto más arriba.

Ahora mismo no tengo acceso al osciloscopio.

El código que estoy usandoe es éstee:

    ANSELB = 0; //Todo en digital
    CNENB=0;//Quitar interrupcion por cambio de estado
    SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
    PORTSetPinsDigitalIn(IOPORT_B, BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 | BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12 | BIT_13 | BIT_14 | BIT_15);
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: MerLiNz en 19 de Julio de 2014, 13:13:14
Pues es bastante extraño, sobretodo porque son ms's de desfase, entiendo que haya algo, pero tanto me parece excesivo, algo raro esta pasando ahi...
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: jfmateos2 en 21 de Julio de 2014, 08:40:25
Misterio parcialmente resuelto.

PArece ser que el PIC estaba dañado (o mal soldado)... sustituyéndolo por otro ha empezado a funcionar bien....

Pero pasadas algunas pruebas ha vuelto a ocurrir algo similar... así que deduzco que algo del sistema al que me estoy conectando está achicharrando el PIC... toca seguir investigando
Título: Re: Cómo Proteger PIC32 de tensiones de 5V?
Publicado por: MerLiNz en 21 de Julio de 2014, 09:51:32
pon el esquema