Zwei Controller per UART kommunizieren/Einsteigerproblem

Gast #1051457
Lesenswert?

Guten Abend,

ich versuche grade mir das Programmieren von AVRs beizubringen und bin 
grade beim Kapitel UART angekommen.

Nach dem die Kommunikatiion mit dem Computer per Hyperterminal - wie im 
Tutorial erklärt - soweit geklappt hat, wollte ich mal zwei Controller 
kommunizieren lassen.

Im Anhan ein Foto vom Versuchaufbau und die beiden Codes.

Auf einem STK 500 ist ein Mega8515, auf dem anderen ein 90S8515 daher 
zwei Programme, sollten aber gleich sein.

Programmbeschreibung

Die Werte, welche ich an den PINs D2 - D7 einlese sollen per UART auf 
den anderen Controller übertagen werden, welcher die Werte dann auf dem 
PortB ausgeben soll. Auf dem anderen Controller das gleiche Spiel.

Problembeschreibung

Kurz und knackig : entweder flimmern die LEDs nur wild rum oder es 
pasiert garnichts !

Meine Überlegung ist, dass entweder was mit der Baudrate nicht stimmt, 
oder ich mal wieder etwas grundliegendes falsch gemacht habe, wie z.B. 
dass sich die Register ständig gegenseitig überschreiben oder der 
gleichen.

Oder muss ich das ganz nur etwas verzögern, um die Eingabe sichtbar zu 
machen ?


Ich würd mich freuen, wenn ein schlauer Kopf mir da weiterhelfen könnte.

Schonmal vielen Dank im Voraus und nen schönen Abend
#1051487
Lesenswert?

@ Stefan (Gast)

>Dateianhang: 100_0795.jpg (707,1 KB, 5 Downloads)

Das geht auch kleiner, siehe Bildformate.

Dein Programm hat ein Problem. Was passiert, wenn zufällig  beide Seiten 
gerade auf Daten warten?

Du musst das so programmieren, dass WENN ein Zeichen empfangen wurde, 
dies gelesen und verarbeitet wird. Wenn nicht, dann darfst du nicht 
endlos warten, sondern sendest das nächste zeichen, natürlich vorher mit 
Warten auf den freine Sendepuffer. Siehe Multitasking. Etwa so.

1
reci:              ;**Empfangsprogramm**
2
    sbis USR, RXC
3
    ret
4
    in rcve, UDR
5
    ret

Ausserdem solltest du sie internen Pull-Ups für PortD einschalten, ich 
weis nicht ob das STK500 externe hat.

1
    ldi akku,$FF
2
    out DDRD, akku


Und lass den Namen akku stecken, das ist was für steinalte CPUs wie die 
8051er ;-)

MFG
Falk
#1051493
Lesenswert?

@ Stefan (Gast)

>Ja, das siehst du richtig, habs aber auch schon mit Masseleitung
>probiert, leider kein Erfolg. Denke es liegt am Programm !

AUA! Du braucht DRINGEND die Masseverbindung, denn deine STK500 werden 
wie es scheint auf zwei (galvanisch) getrennten Netzteilen gespeist.

Grundlagen, Grundlagen, Grundlagen. Und immer an den Herrn Ohm denken. 
;-)

MFG
Falk
#1051693
Lesenswert?

@ Stefan T. (_distance_07)

>Bevor ich jetzt nen neuen Threat öffne,

Thread. Threats gibt nur an Halloween, und das ist schon vorbei ;-)

> mir ist aufgefallen, dass wenn
>ein Board abgeschaltet ist, die Power LED ganz schwach leuchtet, ist das
>normal ?

Jain. Da wird das Board über die UART-Verbindung parasitär mit Energei 
versorgt, die Scutzdioden machen es möglich. Siehe Pegelwandler.

>Kann es nicht sein, dass der dort fließende Strom zu hoch für den Port
>ist ?

Kann sein.

MFG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren