Forum: Compiler & IDEs Software-UART am Mega8


von Jens Schoon (Gast)


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

von A.K. (Gast)


Lesenswert?

Atmel Applications Notes 304,305.

von Peter D. (peda)


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

von mthomas (Gast)


Lesenswert?

>Hat jemand für mich eine (fertige) Routine, bzw. wo finde ich so eine?
Hatte in diesem Thread
http://www.mikrocontroller.net/forum/read-1-167511.html#167587
was dazu geschrieben - vielleicht hilft's etwas weiter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.