Software-UART am Mega8

Gast #237161
Lesenswert?

Moin moin,
derzeit werkel ich mit dem AVRGCC an einem Projekt mit dem Mega8. Zum
einen lese ich Daten von einem GPS-Modul ein (über den eingebauten UART
mit 4800 Baud), zum anderen muss ich hin und wieder Daten von und zum PC
mit 9600 Baud schaufeln (geringe Datenmenge). Hierzu bräuchte ich jetzt
wohl einen Software-UART.
Einen andereren Prozessor mit der gleichen PIN-Zahl (im DIL-Gehäuse)
habe ich nicht gefunden. Mehr PINs brauche ich nicht und habe auch
nicht den Platz auf der Platine.

Dezeit habe ich für den RX-Eingang den PD3 (INT1) und für TX den PD4
vorgesehen.
Hat jemand für mich eine (fertige) Routine, bzw. wo finde ich so eine?

Besten Dank!
Jens
#237163
Lesenswert?

Für ne Software-UART ist es am einfachsten, wenn man den T1 benutzt,
d.h. RXD an den Captureinput und TXD an einen PWM-Output.

Mit dem Capture stellt man den genauen Beginn des Startbits fest und
tastet dann in Intervallen entsprechend der Baudrate ab
(Compareinterrupt).

Zum Senden nimmt man den anderen Compareinterrupt und läßt mit dem
nächsten Compare den Pin setzten oder löschen, je nach Bit. Damit ist
das Senden völlig jitterfrei.

Sinnvoll ist es, die schnellere Baudrate mit der HW-UART zu machen.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren