Resistencias en serie con Tx y Rx

10

Estoy haciendo mi propia placa y usando un ATmega 328 con el gestor de arranque Arduino. Tengo un interruptor DIP para seleccionar un chip FTDI (para la programación) que se conectará al Rx y Tx del ATMega, o un GPS que salga en serie para conectarse. Estaba mirando este esquema para referencia: http://arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf

¿Por qué hay 2 resistencias en Rx y Tx provenientes de ATMega? ¿Los necesito solo para la conexión al chip FTDI, o también necesitan estar allí para el GPS?

aloishis89
fuente
Diría que estaban destinados a ser resistencias de terminación, pero si tiene una impedancia de 1K en una traza de PCB, tiene problemas más grandes.
drxzcl
1
¿Por qué no preguntar a las personas que lo diseñaron?
endolito

Respuestas:

10

Uno de ellos está allí para evitar daños que podrían ocurrir si el AVR tiene RxD programado como salida, los pines en ambos dispositivos podrían dañarse si eso sucediera, ya que los pines del AVR pueden generar y absorber una gran cantidad de corriente. No creo que la otra resistencia sea necesaria.

Leon Heller
fuente
Si va a agregar hardware para compensar posibles errores de firmware, entonces la lista nunca termina. No sé mucho sobre AVR, pero la mayoría de los microcontroladores se despiertan con pines en estado de alta impedancia por exactamente este motivo. Los pines generales no se convierten en salidas hasta que el firmware los haga explícitamente. A veces, el hardware adicional para tratar los posibles errores tiene sentido en los prototipos, pero para productos de alto volumen con firmware probado esto es solo un desperdicio. La mayoría de las salidas digitales sobrevivirán bien cuando se juntan, aunque no lo haría a propósito.
Olin Lathrop
8
El Arduino generalmente es utilizado por personas como estudiantes de arte y diseño, de ahí la necesidad de salvaguardas como esa. El OP no debería necesitar resistencias allí.
Leon Heller
1
Creo que puede ser posible establecer el Rx en el FT232 como salida, en el modo de explosión de bits.
Connor Wolf
2
@Olin Reutilizar el pin como pin de salida es bastante común, poder usarlo tanto para programación como para IO general es una característica. PORTD es el único puerto completo de 8 bits que tiene en el arduino para jugar, por lo que reutilizar las líneas tx / rx es una tarifa estándar si no necesita hablar en serie durante el funcionamiento normal.
John Meacham
5

No parece que haya una buena razón para esas resistencias. Ambas partes en ese esquema parecen ejecutarse en 5V con un terreno común. No debería haber necesidad de resistencias en las líneas entre los dos chips.

Si las líneas se salieran del tablero, entonces podría tener algún sentido colocar resistencias en serie para proteger las partes integradas, pero eso no parece ser lo que sucede en ese esquema.

Tenga en cuenta que este es un esquema de Arduino. Eso significa que hay muchas posibilidades de que quien lo diseñó no lo haga profesionalmente. Hay muchas supersticiones por ahí. El hecho de que algo esté en la red no significa que esté bien hecho.

Olin Lathrop
fuente
66
Arduino está específicamente destinado a personas que son nuevas en esto. Por lo tanto, diseñar el hardware para que sea tolerante a errores de software que podrían causar conflictos de bus es de sentido común. Puedo ver una muy buena razón para las resistencias: las personas pueden configurar accidentalmente las líneas TX / RX en salidas cuando no deberían serlo.
Connor Wolf
Hay buenas razones para que las resistencias estén allí, por favor verifique las otras respuestas.
Marcelo
5

Esta es una pregunta vieja y ya respondida, pero no encontré en ninguna de las respuestas una de las buenas y posiblemente una de las razones más importantes para que las resistencias estén allí.

Aunque la mayoría de las personas usan el RX / TX solo para conectar el Arduino a sus PC para programar el chip y / o realizar la depuración en serie, otros usan los pines RX / TX del Arduino para comunicarse con otros dispositivos en serie. En este caso, el chip FTDI y este otro dispositivo entrarían en conflicto y es muy probable que dañen ambos debido a cortocircuitos. Estas resistencias "separan" el FTDI del otro dispositivo cuando hay uno conectado a los pines AVR RX / TX, protegiendo ambos y permitiendo que se conecten y conecten simultáneamente.

Una cosa para recordar es que, una vez que otro dispositivo en serie se conecta a los pines RX / TX de Arduino, las resistencias enmascararán los niveles lógicos del FTDI de una manera similar a la que ocurre con las resistencias pullup / pulldown, por lo que el dispositivo externo tener "preferencia" sobre la comunicación FTDI.

Marcelo
fuente
1
Esto es exactamente lo que quería responder, y es muy preciso ya que he buscado este tema antes.
Electrones
¿Quieres decir así? electronics.stackexchange.com/questions/77562/…
Passerby
4

Se podría hacer para evitar que el otro dispositivo externo esté alimentando el Atmel cuando está apagado. Debido a la corriente que corre a través de los diodos de sujeción internos del Atmel ...

user57449
fuente
¡Bienvenido a EESE! En general, recomendamos a los usuarios que se abstengan de responder preguntas anteriores a menos que la pregunta sea creíble y no tenga una respuesta. Dicho esto, esta pregunta específica tiene más de tres años y tiene una respuesta aceptada. En el futuro, intente abstenerse de responder preguntas anteriores, ya que lleva la pregunta a la parte superior del feed de preguntas en la página principal y le da un aspecto desordenado a EESE. ¡Gracias!
Funkyguy
2
@Funkyguy la respuesta aceptada es, aunque no es una observación falsa, probablemente no sea la verdadera razón.
Chris Stratton el
2

Agregar una resistencia en serie de valor pequeño (aproximadamente 100 ohmios) en una señal que se está fuera de borda puede reducir las emisiones de RF. Sin embargo, las resistencias en el esquema ilustrado no parecen estar bien ubicadas para eso. Otro uso para resistencias es como un mux realmente barato. Si el chip FTDI intenta manejar el pin RX del Arduino y nada intenta en el encabezado, el chip FTDI "ganará", pero si algo en el encabezado intenta manejar ese pin sin una resistencia en serie, el dispositivo en el encabezado " ganar". Eso podría explicar alguna utilidad para la resistencia en el pin RX del Arduino. Sin embargo, no estoy seguro de para qué sirve el TX, a menos que haya otra conexión externa para el cable "TX" que está conectado al pin RX del FTDI y simplemente no lo estoy viendo (si hubiera una conexión externa,

Super gato
fuente
2

He visto resistencias de 100 ohmios en los buses I2C y UART anteriormente, a menudo son para protección ESD. Funcionan en conjunto con los diodos de sujeción integrados en la MCU.

Thomas O
fuente