PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rs 232 übertrgungsfehler..oder im MC Spukt es



Involut
25.02.2005, 20:49
Hi,
also erstaml die Fakten.
Mega 16 und mir RS 232 Treiber und LCDisplay.

und hier der Code.

$regfile = "m16def.dat" ' we use the mega16
$crystal = 8000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.4 , Db6 = Portb.1 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.6
Config Lcd = 16 * 2
'LCD Konfiguration
Enable Interrupts
Cls

Lcd "sende 1"

Do
Print 1
Wait 1
Loop

Ich hoffe der ist nicht zu unverständlich.

Nun zum Poltergeist.
Wenn der Programierstecker auf das AVR Board gesteckt ist dann empfängt das Terminal nichts.

Und wenn man den Stecker ,nach dem Brennen,abzieht empfängt das Terminal
103 121 61 0

oder in Buchstaben
gy=

Wenn man die Baudraten ändert wird ähnlicher "Müll"
empfangen.
Wenn jemand irgeneine Idee hat wäre ich sehr dankbar ,auch weil ich gar keine Ahnung habe.

mfg

Involut

PS um die verwirrung Perfekt zu machen, die Schaltung hat als sie zusammengelötet war einwandfrei gefunzt,lag ein paar monate herum und jetzt dass

x-ryder
26.02.2005, 11:38
du solltest mal als string senden: print "1"

Involut
26.02.2005, 12:08
Hi,
der Befehl Print "1" hat genau das gleiche Ergeniss.
Ich habe auch schon 3 mega16 ausprobiert und eine 90s8535 und jedesmal das gleiche Ergeniss.

mfg

Involut

x-ryder
26.02.2005, 12:11
wie wärs mit der baudrate im terminal umstellen?

Involut
26.02.2005, 12:24
Hi,
baudrate habe ich von 1200 bist 115000 verändert.
Es wird wie ich oben geschrieben haben nur "Müll" angekommen.
Also nicht ein sonder mehrere Zeichen und schon gar keines welches ich gesendet habe.
Ach ja ich habe eine Quarzoszilator mit 8mhz.
Von Frustrationfaktor hätte ich das alles schon in tonne gekloppt,aber die Tatsache dass man was empfängt ist halt immer noch ausreichend um es zu probieren.

mfg

Involut

Involut
26.02.2005, 12:32
Hi,
wenn ich anstatt print
udr = asc ("1")
schreibe wird
103 0 empfangen und als Buchstabe "g"

mfg

inv

uwe2
26.02.2005, 13:07
Hallo,
vielleicht liegts an der Abweichung von 9600 Baud die du mit einem 8MHz Quarz erzeugst. Für "richtige" 9600 Baud brauchst du so krumme Quarzfrequenzen wie 7,3728 oder 3,6864 MHz.
Schau mal unter Optionen-Compiler-Communication, da siehst du die Abweichung bei der jeweiligen Quarzfrequenz.

Gruß
Uwe

Involut
26.02.2005, 14:22
Hi ich bae das mit AVR baud ausgerechnet.
Das prog zeigt einen Fehler von 0% an.

mfg

Inv

uwe2
26.02.2005, 14:59
Aber eine Zeile drüber steht, das die wirkliche Baudrate 9615 ist.
Theoretisch sollte so eine geringe Abweichung nichts ausmachen, aber
wer weiß??
Um den Fehler mal einzugrenzen kannst du ja mal versuchen ein Zeichen vom Terminalprogramm zu senden und es auf dem LCD ausgeben zu lassen.

Involut
26.02.2005, 15:18
...empfangen klaptt nicht.

schmic20
26.02.2005, 15:48
Hallo,

ich habe genau mit dieser Konstellation (Mega16 und 8MHz) solche Probleme.
Ich habe das auch schon hier gepostet, aber keiner hat anscheinend solche Probleme, ausser Du und ich.
Am Baudratenfehler kann es nicht liegen. Der liegt laut Berechnung bei 0,16%.
Bei der Datenmenge fällt das nicht ins Gewicht.
Ich habe alles ausprobiert (Terminal Baudrate verstellt usw). Nichts hat geholfen. Dann habe ich die Taktfrequenz des ATmega16 auf 2MHz geändert und habe wieder einwandfreien Datenverkehr bis 4800Baud gehabt. Bei 9600Baud war dann allerdings der Baudratenfehler zu graoß, so dass ich dann VEREINZELT falsche Zeichen empfangen habe, aber immerhin empfangen.
Bei einer Taktfrequenz von 4MHz kam es dann wieder zu dem Phänomen, das Du hier auch beschrieben hast.
Ich habe es dann darauf geschoben, dass ich drei ATmegas gekauft hatte, die alle diesen Mist machten und bin hier im Forum so verblieben, dass ich bei meiner nächsten Bestellung nochmal ATmega16 mitbestelle und dann probiere ob es evtl. an meinen 3 ATmegas lag (selbe Serie oder so).

Du schreibst aber, dass Deine Schaltung schon funktioniert hat, und jetzt nicht mehr geht.
Jetzt sind wohl die Cracks gefragt, oder?
Wer hat ähnliche Probleme?

Viele Grüße
Michael

Involut
26.02.2005, 18:03
Hi,
ich habe alle möglichen MHZ zahlen und baudraten Probiert.

mfg

inv

Hellmut
27.02.2005, 12:46
Hallo Freunde

Ich weiss nicht ob mein "Problem" mit eurem identisch ist, aber es geht auch um das Senden von "Werten" über die RS232.

Ich möchte die Anzeige auf dem Terminalprogramm auf den PC dazu bringen formatiert zu sein um nicht beim vielen Testen dauernd ein "scroll" zu haben. Ich habe mir deshalb aus dem Internet das Terminalprogramm "Hyperterminanl Private Edition geholt, dort die Kommunikation auf COM1: gesetzt und als Terminal-Emulation VT100 verwendet.

Wenn ich nun folgenden Print-Befehl aus BASCOM AVR verwende reagiert das Programm häufig auf die Steuersequenzen teilwweise wie gewollt. Er s:

Printbin 27 ; 91 ; 123 ; 5 ; 125 ; 59 ; 123 ; 1 ; 125 ; 72

Definiere ich statt dessen ein eindimensionales Array, in welchem ich die Steuerbefehle abbilde, geht es überhaupt nicht. Ich sehe die Darstellung der Kodes als Character, aber sie gehen nicht als Steuersequenzen; oder nur zum Teil

Für Euch ist vielleicht das Kommando "printbin" Interessant.