PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR sendet nur schmarn an PC



27.08.2004, 21:12
Hi !
Wie schon in der Überschrift steht sendet mein AVR nur schmarn an den PC.
Vollgendes Beispiel:



$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Do
Wait 1
Print "hallo"
Loop



Bei diesem Programm empfange ich in Bascom nur einen Zeichen des aussieht wie ein Pfeil der nach oben Zeigt...
Ich frage mich woran des liegen könnte. Kann mir da vlt jemand helfen ?

mfg Javik

Frank
27.08.2004, 21:54
Überprüfen ob auch wirklich 16 Mhz Quar benutzt wird und ob die Einstellungen des Terminalprogramms auch die richtige Baudrate von 9600 Baud berücksichtigt.

Zudem sollte geprüft werden ob der 16 Mhz Quarz auch aktiv ist. Also das entsprechende Fusebit auf externen Quarz umgeschaltet ist

harryup
28.08.2004, 10:15
hi,

das signal aus dem avr muss noch invertiert werden, in einfachsten fall mit transistor und 2 widerständen.

gruss, harry

Javik
28.08.2004, 10:59
Hi,
Vielen Dank für den Hinweis mit der Baudrate ! Daran lags nämlich :) hab im Bascom-Terminal gar nicht gesehen, dass man des einstellen kann /muss. Habs auf die 9600 umgestellt und alles war ok.
@ harryup ich lass des ganze über einen MAX232 laufen.

Woran liegt des, dass bei falsch eingestellter baudrate nur mist rauskommt ?!??!

Danke ! Javik

Joerg
28.08.2004, 12:40
Hi Javik,


Woran liegt des, dass bei falsch eingestellter baudrate nur mist rauskommt ?!??!

mit der Vorgabe der Baudrate beim Empfänger wird die Abtastzeit für die UART bestimmt, also die Zeit nach der nach jedem Bit der Eingangspegel übernommen wird.
Das Startbit dient zur Synchronisation, dann wird eine Bitzeit gewartet und wiederum der Eingang abgetastet. Der Pegel wird in den Eingangspuffer übernommen und der Vorgang wiederholt sich 8 mal.
Beispiel: 9600 baud entspricht einer Bitzeit von 104,17us. Das gesamte Byte ist dann in ca. 1ms übertragen.
Wenn jetzt der Sender mit einer anderen Baudrate sendet, als der Empfänger erwartet, dann werden die Pegel am Eingang jeweils zur falschen Zeit übernommen und es kommt einfach undefinierbare Brühe raus. Meistens wird zwar ein Fehlerflag in der UART gesetzt, was aber im Terminalprogramm selten ausgewertet wird.

HTH und Viele Grüße
Jörg

Javik
28.08.2004, 12:54
Ah Danke für die Erklärung !!
Gruß Javik