PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur Schrott über RS232



jobe
09.02.2006, 20:22
Hallo!
Ich habe TxD von einem Mega8 über einen MAX232 an der seriellen Schnittstelle angeschlossen. Als Taktquelle verwende ich den internen Oszillator.
Am PC empfange ich zwar immer Daten, die sind aber nur Schrott. Gerade eben habe ich aber ein paar Minuten lang den Text "hello mega8 xxx" lesen können, was ich erfreulicherweise haben will. Kurz später kam dann wieder nur Schrott.

Hier ist das Testprogramm (aus den Samples, ein bisschen geändert):


$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Dim X As Byte , S As String * 10

Osccal = &HA0

Do
Osccal = Osccal + 1
Print "hello mega8 " ; Osccal
Waitms 1000
Loop
End


Am PC ist zum Empfang 9600,8,N,1 eingestellt.

Habt ihr ne Idee, woran das liegt?
Danke!

linux_80
09.02.2006, 20:39
Hallo,
mit 1MHz 9600 bps zu erzeugen, führt zu einem Fehler(Abweichung) von -7%, was schon zuviel sein kann,
probier es mal mit 4800bps, dann ist die Abweichung nur 0,2%.

Rofo88
09.02.2006, 21:27
Hallo.

wenns unbedingt 9600 sein sollen kannste den Atmel auch auf 4MHZ anheben
da liegst Du dann auch bei fast 0%.
Noch besser ist ein Quarz wie 3.6864 MHZ oder 1.8432 MHZ damit triffst Du die Baudrate exakt. Auf www.rowalt.de gibts auch ein kleines Programm was die die Fehlerrate ausrechnet.


MfG

jobe
10.02.2006, 00:22
Jetzt funktionierts! :-)
Ich hab die Frequenz auf 8MHz gesetzt und folgendes Programm verwendet:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600


Do
Print "hello mega8 "
Waitms 250
Loop
End

Anscheinend war im vorigen Programm irgend ein Wurm drin. Er hat genau 11 mal das richtige ausgegeben und dann Schrott. Jetzt schreibt er schön das, was er soll :-)

linux_80
10.02.2006, 00:32
Und vor allem ist die Abweichung zur Baudrate damit fast 0, das hilft auch schon einen Schritt weiter.
Am Rest hat sich vom Prinzip her nix geändert.