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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.