PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART funktioniert nur in eine Richtung...



Murus
08.11.2006, 17:35
Hallo zusammen.

Im Anhang findet ihr die Eagle-Dateien für mein Board, auf welchem ein Mega8 über die serielle Schnittstelle mit einem PC kommunizieren können soll.

Programmiert wird in Bascom.
Das Problem: Ich kann problemlos Daten vom AVR an den PC senden und diese in mehreren Terminalprogrammen anschauen.
Nur: Ich kann keine Daten vom PC an den Controller senden.

Beispielprogramm:

$regfile="m8def.dat"
$crystal=3686400
$baud=2400

Dim i as Byte

Print "Hallo"

Do
If UCSRA.RXC=1 Then
i=UDR

Select case i
Case "H"
Print "Hallo"
Case "A"
print "Adieu"
Case Else
Print "Unbkannter Befehl"
End select
End if
Loop
End

In den Terminalproggis sehe ich jeweils das "Hallo", doch wenn ich dann ein H oder ein A schicke, passiert gar nix. Es kommt nichts zurück.
Die Terminalprogramme werden auf einem Windows98SE Laptop von 1998 laufengelassen, der hat einen COM-Port, sollte klappen.

Darum meine Anfrage hier, ob jemand mal die Hardware prüfen könnte, ob ich alles richtig geroutet habe. Und was man sonst noch so falsch machen könnte.

Herzlichen Gruss und Danke

Mario

Murus
08.11.2006, 19:31
Mir ist gerade noch etwas aufgefallen.

Ich hab ein Programm geschrieben, dass immer nur "Hallo" sendet, zum
Testen.

Am alten Windows 98 Schlepptop kommt alles korrekt an.

Verwende ich hingegen das genau gleiche Terminalprogramm mit genau den
gleichen Einstellungen unter Windows XP (hab zwei PCs probiert), dann
kommt garnix an. Hänge ich den AVR danach an den Laptop, kommt wieder
alles sauber an....
Wieso will das unter XP nicht?

Das Empfangsproblem besteht aber auch beim Windows 98.

Herzlichen Gruss
Mario

Guy
09.11.2006, 13:45
Was ich so feststelle ist das erstens mal deine Kondensatoren zu klein sind. Ich klemme immer am Stecker Pin 2 und Pin 3 umgekehrt. Aber das hängt von deinem Kabel ab den du verwendest (null Modem oder nicht)

Hab dir mal meine Schaltung angehängt die Funktioniert.


PS:
Kannst du mir sagen wie du mit Eagle beim Routen außen die Leiterbahnen so breit bekommst. Also alles aufgefüllt. Ich bekomme das nicht hin.

sast
09.11.2006, 14:15
Hast du schon mal Pin 11 und 12 vom MAX232 miteinander verbunden und überprüft, ob überhaupt ein Echo zum Terminal zurück kommt?
Wenn nicht liegts am MAX oder an den Terminaleinstellungen.
Wenn doch liegts wahrscheinlich an den RX Einstellungen am µC.

sast

Murus
10.11.2006, 17:36
So, hab das Problem gelöst :)
Ich hatte den MAX ein bisschen falsch beschaltet. Jetzt geht es tadellos.

Herzlichen Gruss und Danke
Mario