www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90S8515 und UART


Autor: Thomas Prescher (gonzo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...

ich versuche seit längeren mit meinem STK500 Board über Uart mit dem PC
zu kommunizieren. Leider hatte ich bislang keinen Erfolg. Ich habe die
Baudrate unter Linux mit stty /dev/ttyS0 speed 9600 gesetzt und auf dem
STK500 den RS232 Spare mit PortD PD0 und PD1 verbunden. Jedoch empfange
ich auf meinem rechner keine signale. Ich weiss nun nicht, ob es an
meinem Programm (ich bin neu im Gebiet µC ) oder an meinem PC liegt.
Ich freue mich über jegliche Art von hilfe.

Ach ja im Artikel zu UART ist ein fehler. Es heißt nicht #define F_CPU
4000000; denn 1. muss das ; weg und es müsste meiner Meinung nach F_CPU
4000000UL heißen.

Mein Programm befindet sich im anhang

Autor: Michael Kirsten (onkel_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also so ganz fit bin ich da auch nicht, mit dem UART...

Ich denke mir aber, das da genau ein einzelnes x gesendet wird und dann
ist Dein Programm durchgelaufen.

Mach doch einfach vor das while (!(USR ... noch ein while (1) { der
Rest Deines Prgramms }

Dann sollte so viel x gesendet werden, bis Du was siehst.

Deine Formel für die Baudratenermittlung sieht auch etwas komisch aus.

Wenn ich (4*10^6 / 9600) *15 rechne, dann komme ich auf 6250.

(Nicht zu fest hauen, wenn meine Berechnung da oben falsch ist, ich
habe die Hauptschule nach der 9. Klasse verlassen.)

Trage doch bei UBBR einfach mal 25 ein. (Steht für 4 MHz so im
Datenblatt.)

Sollte es dann noch nicht klappen, dann starte mal minicom und
experimentiere ein wenig mit den Einstellungen herum.

Michael

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es so schwer, eine Formel aus dem Datasheet richtig abzuschreiben?
Richtig ist:
  UBRR = F_CPU/(UART_BAUD_RATE * 16) - 1;

Autor: Thomas Prescher (gonzo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ok trotz der änderung kommt nix am ttyS0 an. Evtl mach ich auch etwas
falsch. Um zu sehen ob etwas ankommt mache ich cat /dev/ttyS0

ich bekomm beim compilieren auch eine warnung:

serial1.c: In function `main':
serial1.c:9: warning: integer overflow in expression


neue datei im anhang

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann halt 16L.

Autor: Thomas Prescher (gonzo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok durch das 16L kommt die Warnung nicht mehr. Aber trotzdem kommt nix
am ttyS0 an :(

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann verbinde mal die beiden Pins der Spare RS232 ohne sie mit PD0/1 zu
verbinden. Dann müsste alles was der PC sendet auch wieder bei ihm
ankommen. Wenn nicht => PC ist schuld.

Der Satz über die Formel bezog sich übrigens auf das Manual vom
Mega8515, da hatte Atmel ein Einsehen und hat die Formel auch mal
richtig herum gebracht. Die notwendige Umformung der Formel im
AT90S8515 Manual mag wohl wirklich manchen aus der Kurve tragen.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm... jetzt bitte nicht hauen... aber hast Du deine RS232-Strippe zum
Rechner auch auf die richtige Buchse am STK500 gesteckt?

Gruß,
Magnetus

P.S.: falls es doch am Code liegen sollte... ich hab da noch keinen
      Blick rein geworfen

Autor: Thomas Prescher (gonzo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das geht.!

Autor: Thomas Prescher (gonzo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm... jetzt bitte nicht hauen... aber hast Du deine RS232-Strippe zum
Rechner auch auf die richtige Buchse am STK500 gesteckt?

Jo hab ich ^^

An RS232 Spare

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@GonZo:

--> Jo hab ich ^^

Heisst das "Jo, hab ich JETZT richtig gesteckt (und es funktioniert
endlich)" oder heisst das "Jo, hab ich SCHON VORHER richtig gesteckt
gehabt (und es funktioniert immer noch nicht)"?

Autor: Thomas Prescher (gonzo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es heißt jo hab ich schon die ganze zeit an Spare gehabt und es
funktioniert immer noch nicbt :(

Wie gesagt, wenn ich die beiden pins verbinde, anstatt sie an PD0/1 zu
hängen kommt das, was ich vom rechner aus sende auch wieder an.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bleibt eigentlich bloss noch sowas wie Pins vertauscht/verwechselt.

Ansonsten wäre da noch das Low-Level Debugging: Prozessor auf niedrigen
Takt und UART auf niedrige Baudrate einstellen, und mal gucken was eine
LED am Tx Pin so vermeldet. Müsste sich mit dem STK500 eigentlich
langsam genug einstellen lassen, dass man die Bit gemächlich wackeln
sieht.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Am Tx-Pin vom 8515 wohlgemerkt.

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.