Autor Tema: problemilla al adaptar voltages para pic USART  (Leído 2744 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
problemilla al adaptar voltages para pic USART
« en: 07 de Junio de 2007, 13:11:18 »
Saludos a todos,

tengo un par de 16F689 comunicandose con un IC externo mediante sus EUSARTs, y todo funciona perfectamente.

Recientemente, sin embargo, he observado que el IC externo tiene un V_oh = 2,9 volts.

Los pic se alimentan a Vdd = 3,75v. Dado que sus RX son schmitt-trigger, segun datasheet tiene un V_ih_min =

0,8*Vdd , en este caso 0,8*3,75 = 3,0 volts.

Como veis está ligeramente por encima de lo que me da el IC, que son 2,9. A pesar de todo funciona

perfectamente, no quería dejarlo tan "al limite", así que decidí hacerle una interfaz con transistores a la

RX.

Es la primera vez que hago algo de esto, y no tengo ni puta idea, así que cogiendo papel y lápiz se me

ocurrió esto (ver JPG adjunto )



La idea con esotos dos transistores en cascada es que cuando el IC ponga un "1" (2,9 volts), pic_RX vea 3,75 volts. Y cuando el IC ponga un "0",

pic_RX debería ver como mucho V_ce2_sat = 0,25 volts, que entra perfectamente dentro de lo que el pic

considera un "0" lógico. Creo que esto se llama un seguidor emisivo ?

Pues bien, tema curioso: funciona , pero da fallos. Confunde algunos bits ("0"'s por "1"'s y viceversa).

Según los logs que tengo, tiene una tasa de aciertos en torno al 85%.

Esto es de todo punto inaceptable, claro... ya que a través de ese link mando 8 Kwords para un ICSP que debe

reprogramar un pic, así que UN sólo fallo en un byte daría al traste con todo.

Como os comentaba, conectando directamente IC_tx con PIC_rx , todo funciona perfectamente. 100% de tasa de

aciertos durante muchos bucles consecutivos.

Seguramente el problema está en ese diseño tan simplón de los dos transistores... alguien sabe dónde está lo

que he hecho mal ?

gracias !



NOTA: el directorio de uploads del foro está lleno, no me deja subir el JPG. Por favor, algun moderador podría despejarlo para que complete el mensaje ?


Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #1 en: 07 de Junio de 2007, 14:38:12 »
bueno, como veo que no se soluciona lo del upload, aqui os dejo un link directo al gráfico.


http://www.billingpronto.com/rx_pic.jpg

gracias y un saludo,

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: problemilla al adaptar voltages para pic USART
« Respuesta #2 en: 07 de Junio de 2007, 15:13:03 »
No se que transistor estés usando, pero para un voltaje tan pequeño yo bajaría las resistencias a 330 OHM y quitaría RB2.

saludos.
Pereira - Colombia

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #3 en: 07 de Junio de 2007, 15:20:27 »
en protoboard estoy usando el BC548 , y en SMD el DMMT3904 .

En esta prueba en concreto, estoy con los 548. Probaré tu sugerencia y te digo qué tal va....

por cierto, quitar RB2 no podría quizás poner en riesgo al transistor #2 ?  Aunque sólo "vea" 3,75v por su base, si no tiene resistencia ninguna en B2, podría darle un chute de intensidad de los buenos... en fin, no sé, supongo que el propio transistor tiene una resistencia interna Rbe que a lo mejor soporta esta intensidad.

gracias y un saludo,

Desconectado Marioguillote

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: problemilla al adaptar voltages para pic USART
« Respuesta #4 en: 07 de Junio de 2007, 15:53:23 »
Hola Pollastre

Una pregunta : porqué "3,75 Volts" ? Porqué no 3,3 V o 5 V ? Por curiosidad nomás ...
Otra cosa. Alimentá tu circuito driver con 5 Volts y a la salida, es decir, a la entrada del PIC colocá un zener de 3,6 o 3,9 V.
Lo mismo en el sentido inverso, a la entrada de tu IC externo.

Última : Si quitaras Rb2, la corriente circulante por la juntura B-E del segundo transistor estaría controlada por Rc1 (que debiera ser más alto, 1K es un poco bajo), al estar Tr1 abierto.

Saludos
Mario

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: problemilla al adaptar voltages para pic USART
« Respuesta #5 en: 07 de Junio de 2007, 16:04:46 »
RB2 se puede quitar precisamente por lo que dice Mario

Última : Si quitaras Rb2, la corriente circulante por la juntura B-E del segundo transistor estaría controlada por Rc1 (que debiera ser más alto, 1K es un poco bajo), al estar Tr1 abierto.

Aunque no estoy de acuerdo en que el valor de la resistencia este bajo, por el contrario, para un voltaje de solo 3.7V 1K me parece muy alto y creo que debido a eso tienes problemas en la comunicación, por eso te sugerí usar resistencias 330 OHM.

saludos
Pereira - Colombia

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #6 en: 07 de Junio de 2007, 17:18:20 »
disculpadme, tenéis razón, he dicho una estupidez ... por supuesto que Ib2 no queda "loca", sino que la controla Rc1. Son las cosas de dormir poco últimamente  :?

Mario:  el tema va fijado a 3,75 volts porque el sistema funciona con una batería de Li-on, y como sabes ese es su valor nominal de trabajo (bueno, en verdad 3,7, pero vamos, cargada a tope las he visto llegar a 3,8 ). Sin embargo, uno de los ICs que utilizo marca HIGH en 2,9 , de ahí el inconveniente.

Tu idea de los zener es buena, pero en mi caso es mejor decantarse por adaptar con transistores, te explico por qué: por increíble que parezca, en SMD los transistores están mucho más integrados que los zener (siendo estos en teoría dispositivos mucho mas sencillos.... ) yo uso un zener de 12v en esta misma aplicación , y lo más pequeño que he encontrado es una caja cercana a EISO "E" o incluso "F", 5,5x2,8mm. Una barbaridad comparado con el DMMT3904, que integra dos NPN en una superficie menor.

Cuando tu aplicación debe entrar en una pcb con dimensiones mínimas, estas tonterías empiezan a ser importantes  :mrgreen:

Lo que ha sido una auténtica sorpresa para mí, ya como curiosidad, es que microchip marque 3,0 como mínimo exigible para "1", y con 2,9 funcione impecable. Acostumbrado como está uno a que las datasheets de microchip son lo más estricto (y exacto) del mundo, este tipo de sorpresas no son comunes ....

a ver si en un rato pruebo a bajar las resistencias y os cuento,

un saludo

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #7 en: 07 de Junio de 2007, 18:58:23 »
bueno, parece que el tema se resiste

he cambiado todas las resistencias a 220 Ohm, y he eliminado Rb2 . El tema sigue igual, la eusart del pic no es capaz de recibir correctamente.

Sin embargo, engancho directamente TX del ic contra RX del pic, y recibe 100% correcto, tantas veces como quieras.

Cosas increíbles vieres.... qué diablos está pasando aquí ? mira que el tema es sencillo ( dos transistores.... tres resistencias... ) pero no funciona  ...

Pd: un detalle que me parece super raro : cuando se trata de recibir pocos caracteres ( no más de 5 o 6 ) los recibe *bien*. Por ejemplo, respuestas cortas de 3 o 4 caracteres, las pilla sin problemas. Pero cuando viene una cadena larga, digamos, 20 o más caracteres, es cuando el pic empieza a encontrarse errores de bit.....

un saludo,
« Última modificación: 07 de Junio de 2007, 19:01:03 por pollastre »

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #8 en: 07 de Junio de 2007, 19:12:40 »
vaya vaya... qué cosas.. creo que ya sé por donde pueden ir los tiros.

Un poco de polímetro me ha dado esta pista.... cuando conecto TX del IC a la base del primer transistor, y mido el voltaje de ese pin TX.. me da 2,05 volts (!!) . Cuando conecto TX_ic directamente contra RX_pic, mido el voltaje y me da los 2,9volts correctos.

Lo que yo interpreto es esto: el IC espera encontrarse su pin TX conectado a una entrada de muy alta impedancia (normal, como es de esperar). Al meterle contra una base de un transistor y su resistencia correspondiente, circula intensidad (I_b). Muy poca , de acuerdo, pero circula.... y ya no es "Muy alta impedancia". Como resultado, se produce una caída de potencial en el pin, supongo que porque internamente tiene una resistencia, que cuando no hay intensidad no provoca caída, pero con algo de intensidad circulando tira casi 1 un voltio...

veis algo de lógica en esto que acabo de inventarme sobre la marcha ?

un saludo,



Desconectado Marioguillote

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: problemilla al adaptar voltages para pic USART
« Respuesta #9 en: 08 de Junio de 2007, 01:12:31 »
Dejando el circuito con los componentes originales, cambia los valores de Rb1 y Rb2 a 10K o 15 K y prueba.
Otra más.
Como venimos con los capacitores de desacoplo ? Le has puesto buenos capacitores de .1uF al circuito driver en su alimentación ?
Los terminales de las resistencias y transistores (excepto el SMD) son cortos ?
No estará entrando ruido por tener terminales largos y te esté deformando la señal ?
Hay que buscar todas las opciones. Como bien dices es un circuito bien sencillo como para que se resista tanto.

Saludos
Mario

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: problemilla al adaptar voltages para pic USART
« Respuesta #10 en: 12 de Junio de 2007, 14:35:35 »
Buenas,

sólo un par de líneas para comentaros que ya solucioné el tema. No era nada relacionado con los transistores (como decíamos, ese circuito era demasiado sencillo como para dar tantos problemas).

Sucede que , al mismo tiempo que el pin TX del ic iba contra el RX del pic, además también lo tenía enganchado contra un circuito estilo MAX232 para espiar la comunicación a través del puerto serie del pc.
El problema es que dos circuitos "chupando" intensidad era demasiado para el drive del IC. Estaba claro que el IC esperaba encontrarse una entrada de muy alta impedancia en su pin TX, y lo que yo le tenía metido comía intensidad por dos lados, por un lado la resistencia de base del transistor, aunque chupa poco, no es HI, y por el otro, el circuito adaptador max232 también drenaba.

Esto metía toda una suerte de comportamientos extraños : de repente el IC se reseteaba, o bien ponía señales negativas en sus pines y el PIC se volvía loco... un "chow", vamos.

Pensando en lo de la alta impedancia, sencillamente pues... desconecté el circuito de max232... y de repente todo se puso a funcionar 100% perfecto. Incluso con los seguidores emisivos, funcionado perfectos tanto en TX como en RX.

El pin TX del  IC no podía atacar "a pelo" a ese conversor cmos/TTL, en definitiva. En el futuro, si quiero hacer sniffing en esa conexión serie, tendré  que intercalar un buffer a la entrada del conversor TTL, para que IC_tx vea alta impedancia y no drene intensidad.

Y está claro que es un IC algo "maricón".... porque por ejemplo, sin ir más lejos cualquier PIC puede hacer "drive" por valor de un par de decenas de mA sin despeinarse... eso me confundió, pensaba que si el PIC era capaz de hacerlo, un IC de 80 euros debería hacerlo también... sabia castaña y tres días perdidos !!

gracias por vuestra ayuda,


Desconectado Marioguillote

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: problemilla al adaptar voltages para pic USART
« Respuesta #11 en: 12 de Junio de 2007, 14:53:42 »
Muchas veces uno reniega mucho y se embronca con esta clase de situaciones, pero hay que saber rescatar el aprendizaje por sobre todo.
Me alegro que hayas solucionado el problema.

Saludos
Mario