Archiv verlassen und diese Seite im Standarddesign anzeigen : Hardware RS232
Barthimaeus
19.01.2008, 10:26
Bisher habe ich immer mit einer Softwareseitigen rs232 Schnittstelle am mC gearbeitet und das ging auch gacnz gut. Nun sind meine mega8 und mega16 Controller angekommen, die zusätzlich noch eine hardwareseitige rs232 Schnittstelle haben. Nur leider bekomme ich die nicht so richtig angesteuert, oder mein Termialprogramm (von Bascom) ist falsch eingestellt. Der Programmcode lautet:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Do
Print "Hallo"
Wait 1
Loop
End
Müsste doch ok sein, oder? Mein Terminal ist auf 9600 Baud eingestellt, die anderen Einstellungen habe ich auf ihren Ausgangswert belassen. Kann mir jemand helfen?
Das Programm stimmt wohl soweit.
Was kommt denn beim Terminal an? Nichts oder irgendwelche Zeichen, die du nicht deuten kannst?
jon
Barthimaeus
19.01.2008, 10:41
Das ganze sieht so aus:
«::
*ë«::
*ë«::
*ë«::
*ë«::
*ë«::
*ë«::
*ë
Wobei die Zeilen wie gewünscht im Sekundentakt erscheinen ^^
Dann stimmt etwas bei der Kommunikation nicht ganz. Probiere mal andere Baudraten durch.
Bei mir war es so, dass ich den µC auf 9600 hatte, bei 4mhz, den PC auf 4800.
Das Problem ist hierbei, dass deine 8mhz kein gerader Teiler des PC-Quarz ist. Somit kann es zu Fehlern bei der Kommunikation kommen.
jon
Barthimaeus
19.01.2008, 10:58
da betreibt man seinen mC extra mit externem Quarz und dann sowas...
python_rocks
19.01.2008, 11:00
Hallo Barthimaeus!
Nur um es auszuschließen zu können: Kann es sein, dass du keinen MAX232 zwischen dem Computer und dem µC hast?
ZUSATZ:
Bei 8 Mhz und 9600 Baud liegt der Fehler unter 0,2 %. Diese geringe Fehlerquote sollte bei dieser kleinen Baudrate eigentlich kein Problem sein.
mfg
Gerold
:-)
Barthimaeus
19.01.2008, 11:00
jep , aber bis jetzt gings immer ohne...
python_rocks
19.01.2008, 11:07
jep , aber bis jetzt gings immer ohne...
Wenn du keinen MAX232 dazwischen hast, dann ist das Signal invertiert.
Mit OPEN http://avrhelp.mcselec.com/index.html?open.htm kannst du INVERTED mit angeben. Aber damit habe ich noch keine Erfahrung. Auch weiß ich nicht, ob man das auch für die Hardware-UART einstellen kann.
mfg
Gerold
:-)
Zw µC und PC keinen MAX232 :shock:
Dann hoffen wir mal, dass dein Hardware RS232 nicht geschrottet ist.
Der PC arbeitet mit -12V low und +12V high, der µC mit +-0V low und +5V high.
Da muss auf jeden Fall ein MAX232 rein!!
jon
EDIT: Bei Soft RS232 kann man die invertierung einschalten, bei Hard RS232 nicht.
Barthimaeus
19.01.2008, 11:30
Bisher habe ich den mC noch keine Daten empfangen lassen -> Die warscheinlichkeit das es geschrottet ist strebt also gegen null, oder?
I don't konw.
Vielleicht, vielleicht nicht. Du wirst es jetzt nur über Probieren herausbekommen.
jon
Barthimaeus
27.01.2008, 20:07
SO - Ich habe jetzt ein kleines MAX232 Modul für mein RS232 Kabel gebastelt und kann euch verraten - Er ist heil geblieben - alles funktioniert wunderbar ! Wie hoch kann man denn ohne Datenverlust mit der Baudrate gehen, wenn man einen 8Mhz Quarz benutzt?
Wie hoch kann man denn ohne Datenverlust mit der Baudrate gehen, wenn man einen 8Mhz Quarz benutzt?
Bis 0,2% Fehler sind theoretisch möglich:
38,4 kBaud
250 kBaud
500 kBaud
Gruß Dirk
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.