fred84b
02.08.2008, 19:50
Hallo Leute
Folgendes: ich habe mir eine Schaltung gemäss https://www.roboternetz.de/wissen/images/6/65/Avrtutorial_grundschaltung_max232.gif zusammengebastelt, allerding funktioniert die Übertragung mit UART nicht und ich weiss nicht woran es liegt. Wenn ich es mit dem PC verbinde, werden die gesendeten Bytes nicht empfangen.
Ich arbeite mit Lochrasterplatinen und habe das UART-Modul auf eine eigene Platine gepackt. Ich nehme an, dass das Problem hier liegt. Ein Softwarefehler ist aber auch nicht auszuschliessen…
So sieht die Platine aus:
Vorderseite:
http://n.ethz.ch/~bourgeof/tmppics/RS232_voderseite.JPG
Rückseite:
http://n.ethz.ch/~bourgeof/tmppics/RS232_ruckseite.JPG
Erklärung:
Von der 4-poligen Steckleiste kommt RXD & TXD vom uC (Atmega32) plus noch +5V und GND
Von der 3-poligen Steckleiste kommt RXD & TXD vom PC plus GND
Im Anhang ist noch die Lochmaster-Datei.
Übrigens ich habe ein MAX232CPE von Maxim und im Datenblatt steht, man solle 1uF Kondensatoren benutzen. Ich habe 4,7uF eingesetzt (für C1-C4). Spielt das eine Rolle?
Hier noch das Quellcode für meine Tests:
'################################################# ##
'step5.bas.BAS
'für
'RoboterNetz.de AVR Tutorial in RN-Wissen
'
'Autor: Frank Brall
'Weitere Beispiele und Beschreibung der Hardware
'unter
' http://www.Roboternetz.de oder
' http://www.Roboternetz.de/wissen
'################################################# ######
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
$baud = 9600
Config Portb.1 = Output
Config Pind.7 = Input
Portd.7 = 1
Do
If Pind.7 = 1 Then
Portb.1 = 1 'Pin wird auf High, also 5V geschaltet
Print "Schalter nicht gedrückt"
Else
Portb.1 = 0 'Pin wird auf Low, also 0V geschaltet
Print "Schalter gedrückt"
End If
Wait 1
Loop
End
Hat jemand eine Idee woran es liegen könnte? Oder wie kann ich feststellen, wo das Problem liegt? Welche Spannungen sollte ich z.B. bei TXD bekommen, wenn etwas gesendet wird?
Folgendes: ich habe mir eine Schaltung gemäss https://www.roboternetz.de/wissen/images/6/65/Avrtutorial_grundschaltung_max232.gif zusammengebastelt, allerding funktioniert die Übertragung mit UART nicht und ich weiss nicht woran es liegt. Wenn ich es mit dem PC verbinde, werden die gesendeten Bytes nicht empfangen.
Ich arbeite mit Lochrasterplatinen und habe das UART-Modul auf eine eigene Platine gepackt. Ich nehme an, dass das Problem hier liegt. Ein Softwarefehler ist aber auch nicht auszuschliessen…
So sieht die Platine aus:
Vorderseite:
http://n.ethz.ch/~bourgeof/tmppics/RS232_voderseite.JPG
Rückseite:
http://n.ethz.ch/~bourgeof/tmppics/RS232_ruckseite.JPG
Erklärung:
Von der 4-poligen Steckleiste kommt RXD & TXD vom uC (Atmega32) plus noch +5V und GND
Von der 3-poligen Steckleiste kommt RXD & TXD vom PC plus GND
Im Anhang ist noch die Lochmaster-Datei.
Übrigens ich habe ein MAX232CPE von Maxim und im Datenblatt steht, man solle 1uF Kondensatoren benutzen. Ich habe 4,7uF eingesetzt (für C1-C4). Spielt das eine Rolle?
Hier noch das Quellcode für meine Tests:
'################################################# ##
'step5.bas.BAS
'für
'RoboterNetz.de AVR Tutorial in RN-Wissen
'
'Autor: Frank Brall
'Weitere Beispiele und Beschreibung der Hardware
'unter
' http://www.Roboternetz.de oder
' http://www.Roboternetz.de/wissen
'################################################# ######
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
$baud = 9600
Config Portb.1 = Output
Config Pind.7 = Input
Portd.7 = 1
Do
If Pind.7 = 1 Then
Portb.1 = 1 'Pin wird auf High, also 5V geschaltet
Print "Schalter nicht gedrückt"
Else
Portb.1 = 0 'Pin wird auf Low, also 0V geschaltet
Print "Schalter gedrückt"
End If
Wait 1
Loop
End
Hat jemand eine Idee woran es liegen könnte? Oder wie kann ich feststellen, wo das Problem liegt? Welche Spannungen sollte ich z.B. bei TXD bekommen, wenn etwas gesendet wird?