Software-UART am Mega8

Gast #237161
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
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.