ATmega 1280/2560-familjen har fyra UART i hårdvara, ATmega 644 med kompisar två UART. 1280 (som sitter i Arduino Mega1280) är ytmonterad med många (100) ben (xQFP, 0,5 mm), 644 finns som 40-pinnars DIP och som ytmonterad med 44 ben. Jag är nybörjare på detta och har framgångsrikt lött en 644p på ett adapterkort, skall någon gång göra samma sak med en ATmega 2560 men "fuskar" då med ett
Schmartboard för QFP (32-)100 0.5 mm som tillverkaren hävdar att lågstadieelever kan fixa.
Den amerikanska tillverkaren hade brutalt dyr frakt, så jag beställde från
active-robots.com (UK) och passade på att ordna
schysst LEGO (4099) som födelsedagspresent till sonen.
Med bootloader (som Arduino, kanske där du läste det) kan man programmera kretsen över UART och sedan använda samma UART till annat.
AVR har flera
Application Notes som handlar om att implementera UART helt eller delvis i mjukvara, med eller utan interrupter. Jag skall just själv till att försöka anpassa deras version av hårdvarustödd mjukvaru-UART som använder USI/TWI/I2C-stödet, i mitt fall på ATtiny 45. På Arduino är det en etablerad lösning, dels med det medföljande biblioteket SoftwareSerial, dels med det bättre
NewSoftSerial som använder interrupter. Författaren av det senare rekommenderar inte mer än en samtidig mjukvaru-UART eftersom det är svårt att få det tillförlitligt (om MCU:n skall kunna göra något annat under tiden).