Forum: Mikrocontroller und Digitale Elektronik AT90S8515 und UART


von Thomas P. (gonzo)


Angehängte Dateien:

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

von Michael K. (onkel_michi)


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

von A.K. (Gast)


Lesenswert?

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

von Thomas P. (gonzo)


Angehängte Dateien:

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

von A.K. (Gast)


Lesenswert?

OK, dann halt 16L.

von Thomas P. (gonzo)


Lesenswert?

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

von A.K. (Gast)


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.

von Magnus Müller (Gast)


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

von Thomas P. (gonzo)


Lesenswert?

das geht.!

von Thomas P. (gonzo)


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

von Magnus Müller (Gast)


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)"?

von Thomas P. (gonzo)


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.

von A.K. (Gast)


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.

von A.K. (Gast)


Lesenswert?

PS: Am Tx-Pin vom 8515 wohlgemerkt.

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.