www.mikrocontroller.net

Forum: Compiler & IDEs 2ter UART an einem gewönlichen Port


Autor: Markus Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich arbeite an einem Projekt wo ich zwei UART-Schnittstellen brauche.
ich möchte den ATmega 32 verwenden, dieser verfügte aber leider nur
über eine UART schnittstelle (diese brauche isch schon für ein GPS
Modul).

ist es möglich eine 2te Schnittstelle an einem 'gewöhnlichen' port
(z.B. Port B oder C) zu implementieren? vieleicht gibt es einen andere
lösung... bin offen für jede anregung.

besten dank für euere antworten im voraus

markus

Autor: Markus Altmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso bist du auf den mega32 fixiert?

2 U(S)ARTS sind im mega162, mega64 oder mega128 vorhanden.

Es gibt natürlich schon eine Möglichkeit einen UART rein
Softwarebasiert zu realisieren, hab ich auch schon gesehen (weiß leider
nicht mehr wo) finde ich nur relativ umständlich.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Atmel App-Note 305 ist eine Software UART beschrieben.

MW

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom-AVR enthält eine einfach zu nutzende Unterstützung für
Software-UARTs, die mit nahezu jedem Portpin genutzt werden kann.
So sind auch mehr als zwei Schnittstellen insgesamt möglich.
Allerdings ist so eine Lösung nicht mehr sonderlich performant, vor
allem, wenn's ums Empfangen auf so einer Schnittstelle geht.

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist nicht schlimm.

Allerdings ist bei 115200Baud die Auslastung der CPU schon heftig und
andere Interrupts müssen verdammt Rücksicht nehmen.

Die Software-UART sollte also immer die langsamere sein. Einfacher
wirds auch, wenn nur Halb-Duplex nötig.

Der Eingang sollte vorzugsweise der ICP sein, mindestens aber ein
externer Interrupt. Zum exakten Senden ist ein OC1x Pin ideal.
T1 sollte also nicht als PWM benötigt werden.


Das Prinzip ist einfach, der ICP erkennt das Startbit und merkt sich
die Startzeit. Zu der Startzeit 1,5 * Bitzeit addieren und in ein
OC1x-Register laden. Dann bei jedem Compare-Interrupt 1*Bitzeit
addieren und den Pin einlesen bis alle 8 Bits drin sind.

Senden ist ähnlich, zu dem anderen Compare immer 1*Bitzeit addieren und
im Interrupt das "set on compare", bzw. "clear on compare" je nach
dem zu sendenden Bit auslösen.

Da T1 ja ständig durchläuft ist er als Haupttimer (Overflow-Interrupt)
weiterhin verwendbar.
Bei Halp-Duplex ist auch noch der andere Compare-Interrupt frei.


Peter

Autor: Gerd Kautzmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann gäbe es (vieleicht) noch die Möglichkeit den UART zu multiplexen
....

Autor: Markus Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
how... das dies so schnell geht hätte ich nicht gedacht!!! super
vorschläge, ich schaue mir mal den code im Atmel App-Note 305 an und ob
es mit dem Multiplexen geht (hab ich noch nie verwendent...).

besten dangg für die schnellen antworten.

melde mich wieder

mfg markus

Autor: Markus Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo finde ich die Atmel App-Note 305 ? klingt sehr verlokend was sie dort
sagen. der link funktioniert aber nicht.

mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.