www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 89S8252 UART


Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich bin hier langsam am verzweifeln. Den ganzen Tag schon versuche ich
den UART am 89S8252 zum laufen zu bringen aber es klappt einfach nicht.
Ich will im Modus 2, also interner Baudratengenerator, Bytes ans
Hyperterminal versenden. Wenn das klappt auch welche empfangen. Ich
habe leider keinen der 3 Timer mehr frei und will desswegen auf den
Generator zurück greifen.
Der Code sieht folgendermaßen aus:

    SM0 = 0;
    SM1 = 1;
    SM2 = 0;
    REN = 0;    // empfang aus
    TI = 0;     // reset-Wert
    RI = 0;     // reset-Wert
    TB8 = 0;    // 9. Bit

    // PCON so lassen (SMOD = 0 -> 4800 Baud)

    ES = 1; // Serielle Schnittstelle darf IRQ aufrufen
    SBUF = 65;

Interrupt Routiene habe ich auch...

Wenn ich mit dem Oszi messe, sendet er die Bits ungefähr im
Sekundentakt, was sicher nicht 4800 Baud entsprechen. In den
allgemeinen Datenblättern von Atmel ist die Rede von einem BDRCON
Register, dass es aber anscheinend hier nicht gibt?!?

Kann mir jemand weiterhelfen?

Tabi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du nichts weiter einstellst, ist T1 der Baudratengenerator.

Im T2MOD kannst Du wahlweise fürs Senden und/oder Empfangen T2
auswählen.


Was machst Du denn mit den Timern, damit sie nicht ausreichen ?

In der Regel kommt man doch für alles Zeitabhängige mit einem Timer
aus. Nur als Frequenzzähler oder PWM braucht man extra welche.

Du kannst aber auch 4 Timer bilden, indem Du T0 aufteilst (Mode 3).
Sind dann zwar nur 8-bittig, aber man kann sie ja im Interrupthandler
erweitern.


Peter

Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Timer brauche ich, da der Controller mehrere Sachen gleichzeitig
machen soll. Z.B. wird auf eine Tastatureingabe gewartet und
gleichzeitig soll währen des gesamten Programmablaufs eine Überwachung
mehrerer Pins stattfinden. Das geht doch nur über Timer oder hast du ne
bessere Idee? Ich bin für alles offen.
Kaum hab ich das abgeschickt, fiel mir auf, dass ich SM0 und SM1
vertauscht hab kopf gegen die Wand schlag
Also es kommt was raus, aber irgendwie stimmt die Baudrate noch nicht.
Ich muss mal weiter gucken...

Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß da noch jemand was zu? Gibt es das BDRCON Register beim 89S8252
wirklich nicht? Ich habe hier eine Baudrate von ungefähr 167000 Baud
und weiß nicht warum :-((

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es das BDRCON Register beim 89S8252
>wirklich nicht?

Nein .

Bei UART-Problemen hilft :
http://wwwiti.cs.uni-magdeburg.de/~buchmann/privat...

Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kann ich im Modus 2 mit einem 12 MHz Quart nur eine feste Baudrate
von 187500 Baud oder eben das Doppelte davon erzeugen?
Weil ich immer gelesen habe, dass da eine Feste Baudrate von 4800 oder
9600 Baud raus kommen soll..

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.