¿Tres conexiones UART a un ATMega328?

Estoy mirando la hoja de datos de ATMega328p y un diagrama de Arduino Pin , tratando de determinar si el chip puede admitir tres conexiones UART. Veo que PD0 y PD1 son "USART" In y Out. Entonces, ¿eso significa que los otros 10 o más pines digitales se pueden usar para comunicaciones "UART"?

Necesito conectar tres dispositivos UART a través del chip ATMega. El ATMega reenviará el tráfico entre dos de los dispositivos a la vez, según el modo en el que se encuentre.

Entonces, ¿ninguno de los Arduenos admite 3 UART? ¿Qué pasa con Embed en lugar de arduino? Ok, si uso SPI, ¿todavía necesito usar el pin Tx y Rx o no es necesario entonces?
Debería considerar seriamente usar un chip diferente. Si bien existen soluciones alternativas, no pagará mucho más por una pieza con 3 UART de hardware.

Respuestas (5)

Si no tiene suficientes puertos seriales de hardware, puede usar otros pines IO para serial bajo el control del software. Pero, no espere obtener 115200bps...

http://arduiniana.org/libraries/NewSoftSerial/

No usaría SoftwareSerial para cosas rápidas / datos importantes también, pero la documentación dice "Es posible tener múltiples puertos serie de software con velocidades de hasta 115200 bps". ¿Crees que simplemente están equivocados?

Es cierto: solo un puerto serie en el ATMega 328. Puede hacer lo que los demás sugirieron y usar software-serial o puede usar un multiplexor si no necesita que sus puertos serie estén siempre encendidos. Sparkfun tiene uno que se puede usar para 3.3V aquí: http://www.sparkfun.com/commerce/product_info.php?products_id=8970

Básicamente, si no hay un tráfico constante, especialmente si solo necesita enviar mensajes o solo recibirá una respuesta para un comando, entonces puede usar el multiplexor. Simplemente cambie al dispositivo que desee, envíe comandos, espere la respuesta y luego cambie a otro dispositivo.

Solo hay un UART en el 328P. Si su ancho de banda es bajo, puede hacer una emulación de software de un UART con algunos de los otros pines digitales. Hay una biblioteca de Arduino llamada NewSoftSerial que habilita esta funcionalidad.

Soy nuevo en el desarrollo de SBC, vengo de Desarrollo de software, pero es posible que desee ver el ATmega 2560, que creo que tiene 4 UART.

Puede agregar un UART dual con interfaz SPI o I2C. NXP hace uno que he usado en tableros. Alrededor de $ 4 de Digikey, es más barato que saltar a un Atmega2560 de $ 12 para un diseño y ofrece más almacenamiento en búfer de datos. https://www.nxp.com/products/analog/signal-chain/bridges/om6273-sc16is752-762-spi-ic-to-dual-uart-irda-gpio:OM6273?lang=en&lang_cd=en&