Conexión de TriState a Atmega328 y FT232R

2

Tengo una placa de circuito personalizada que contiene un ATMEGA328 y un FT232R para la interfaz de bus a través de los pines RX / TX en el ATMEGA. También tengo una conexión serie externa a la que me gustaría acceder a ATMEGA328. Básicamente, quiero poder especificar mediante la interfaz serie externa o la interfaz serie FT232 a ATMEGA. Estos nunca intentarán acceder a los pines ATMEGA RX / TX al mismo tiempo.

La solución que se me ocurrió fue usar un búfer de tres estados para conectar o desconectar las conexiones serie externas. El FT232R siempre está conectado al ATMEGA328.

Aquí está el problema. Todo funciona bien si no agrego el búfer tristate al tablero. Tan pronto como agrego el búfer de estado, el ATMEGA se calienta y la interfaz RX / TX al FT232 deja de funcionar. Esto ocurre incluso cuando las conexiones RX / TX externas se dejan flotando y con los pines de habilitación de triple estado elevados a través de una resistencia de 10 K (que debería establecer las salidas del búfer de triple estado NL27WZ125 en un estado de Z alto).

Me imagino que me estoy perdiendo algo sobre el uso correcto del búfer tristate, pero no sé qué es. Cuando los pines de habilitación son elevados, las salidas triples deben estar en un estado de alta impedancia y no deben afectar al circuito en absoluto.

He revisado por triplicado todas las conexiones a bordo, y una vez más, todo funciona bien hasta que suelto físicamente el chip buffer de triple estado a la placa.

Aquí hay un esquema simplificado (ojalá tuviera suficientes puntos para publicar el esquema real como una imagen).

simular este circuito : esquema creado usando CircuitLab

Aquí está el esquema Eagle inicial (perdón por el esquema incorrecto de antes):

TambiénmedicuentadequeelbúferRXestabaconectadoenladirecciónincorrecta,asíquecreoquedeberíairdeestamanera:

Sin embargo, no veo cómo el esquema Eagle inicial debería causar el problema descrito en la pregunta original.

    
pregunta Robert Groves

1 respuesta

3

Por lo que puedo ver, con el pin OE # alto, las salidas del búfer deben tener tres estados y no causar el problema que está viendo. Así que no puedo ayudarte con eso.

SIN EMBARGO, veo otros problemas cuando el búfer está habilitado. Primero, uno de tus buffers se invierte! BUF2 se alimenta al pin ATMEGA TX, que también es una salida. De hecho, no necesitas BUF2 (allí). simplemente puede alimentar el pin TX tanto al FT232R como a los pines RX del dispositivo externo.

Segundo, necesitas otro búfer para tri-indicar la salida de TX del FT232R. De lo contrario, cuando BUF1 esté habilitado, luchará con él. Este búfer necesita el pin OE # invertido.

simular este circuito : esquema creado usando CircuitLab

Tenga en cuenta que la puerta NOT no se requiere como una parte discreta. En su lugar, podría usar dos GPIO, uno para habilitar cada búfer. Solo asegúrate de que has habilitado ambos a la vez.

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas