La serie ATmega tiene un UART de 9 bits
La serie de microcontroladores ATmega ( hoja de datos ) tiene la capacidad de usar 9 bits de datos sin jugando con el bit de paridad. Esta funcionalidad se describe en el diagrama de tiempo:
Tengaencuentaquelosbitsestánnumeradosenlafigurade0a8,queesuntotalde9bits.Eltítuloserefiereaestanumeración,noindicaquepuedausar0-8bitsdedatos.Elnúmeromínimodebitsenuncarácteres5,yelmáximoes9,no0-8.
PuedeestablecerelanchodelaseccióndedatosmediantelosbitsUCSZ.Laconfiguraciónsedescribeenlatabla19-7,quesemuestraacontinuación:
Para configurar esto en C usando AVR Libc , deberías ejecutar el código:
#include <avr/io.h> // _BV() macro, register definitions
// Set the Uart Character SiZe to 9 bits as described in table 19-7
UCSR1B |= _BV(UCSZ12 );
UCSR1C |= _BV(UCSZ11) | _BV(UCSZ10 );
Tenga en cuenta que probablemente querrá especificar los otros bits en estos registros mientras esté en ello.
Muchos otros procesadores también tienen esto
Es casi seguro que hay otros procesadores que admiten este conjunto de características. Los procesadores ATtiny de Atmel tienen el mismo USART que el ATmega, y son compatibles con el código, sus procesadores AVR32 tienen el mismo soporte de 9 bits, pero con una interfaz de programación diferente, los procesadores dsPIC lo admiten, pero sin un bit de paridad adecuado (vea la página 243 de esta hoja de datos ; establezca los bits 1 y 2, PDSEL del registro UxMODE) ... la lista continua. El primer procesador que verifiqué y que no era compatible con él era una pieza Stellaris Cortex-M3, que admite 5-8 bits de datos, pero no 8 bits.
Pero debes usar tus otras restricciones para restringir las opciones primero.
Al final, sin embargo, primero debes hacer tu selección de procesador basada en otros factores. Usted escribió:
Prefiero mucho la compatibilidad con tarjetas SD, y Ethernet / Wifi estaría bien (no me importa mucho BlueTooth o USB, siempre que no aumenten significativamente el precio).
La mayoría de las personas accederán a la tarjeta SD en modo SPI, y casi todo tiene un puerto SPI o dos. Ethernet / WiFi es una especificación demasiado genérica y un requisito mucho más difícil de cumplir. ¿Desea un MAC integrado con una interfaz MII? ¿PHY integrado? ¿Preferiría hacer todas las cosas de TCP / IP en el chip, o descargar prácticamente todo a algo como WIZnet W5100 o Lantronix XPort . También puede usar componentes como el Microchip ENC28J60 para mover el MAC y el PHY a un chip externo, Se accede a través de SPI. Sus otros requisitos son mucho más exigentes que un UART de 9 bits.
De hecho, probablemente podría usar un ATTY $ 1.50 como SPI '/ I2C < - > convertidor de UART de 9 bits si quisiera. Eso sería mucho menos costoso que elegir un procesador subóptimo para sus otros requisitos.