-
Bascom macht schon manchmal seltsame Dinge, das stimmt.
Wenn es mystisch wird, is wohl am besten, das UART Kapitel kurz auswendig zu lernen und die Register zu Fuß zu setzen.
Wenn es wirklich bei "verdrehten" Werten im UBRR klappt, dann rückzurechen, was für ein Quartz das in etwa sein müßte. bzw. abzuleiten, wo der Hund begraben sein muß.
gewissermassen "CSI" für µC
-
ok danke an alle
Hab jetzt bissl rum gespielt aber leider ohne erfolg, im gegenteil.
Jetzt geht nicht mal mehr eine baudrate von 9600.
-
oje. dann zurück an den Start :-)
Irgendwas scheint mit der µC Taktrate und daher mit der Baudrate aber zu sein.
Theoretisch kann natürlich der PC auch was haben, ein kurzer Vergleich mit einem anderen wäre halt ideal.
Um die meiste Hardware zu checken (wirkt beruhigend) solltest du hinter dem MAX232, also vor dem µC, RX und TX überbrücken. (am µC die Pins auf Input stellen.
Wen du am Terminal was tippst, müßten die Zeichen durch diesen Loopback (Echo) tadellos wieder am Schirm auftauchen.
Ist es so, kannst du Fehler in der ganzen Verbindung ausschliessen.
Keinen noch so blöden Fehler solltest du von vornhinein ausschließen, es haben auch schon Pferde gekotzt.
-
So ich hab es jetzt endlich mal getestet.
Das Loopback hat Funktioniert.
Da ich so und so was bei Reichelt bestellen muss hole ich mir gleich einen neuen Quarz und dann teste ich nochmal.
-
Jetzt sind wir aber schon richtig gespannt.
Laß' hören, wie's weitergegangen ist, wir wollen ja auch was lernen.
-
Wenn es nur darum geht die baudrate etwas anzupassen um Fehler in der Quarzfrequenz auszugleichen, kann man auch die im Programm angegebene Quarzfrequenz etwas ändern. BASCOM wird dann die UBR werte entsprechend anpassen. Es ist aber absolut unnormal das ein Quarz so falsch schwingt das die UART aus dem Takt kommt. Das die Fehler von der Baudrate abhängen (trotz "magischer" Frequenz) spricht dafür, dass auch etwas mit der Signalqualität nicht ganz optimal ist. Wenn wirklich nur die Frequenz falsch ist, sollte es bei allen Baudraten gleiche Fehler geben.
-
Ich hab ich das Überbrücken nochmal getestet.
Dabei habe ich was fest gestellt und zwar funktioniert das Loopback nur bis eine Baudrate von 38400.
Dies finde ich nicht normal.
Also hat das ganze doch nicht mit dem Quarz zutun sondern mit der Leitung.
Was kann ich da zeit tun?
-
Naja, versuch den Loopback VOR dem Max232.
1 am PC-Com-Port
2 am Com Stecker Kabel von deinem Board
3 direkt beim Max232 (rausnehmen)
Je nachdem
Eventuell nochmal MAX232 Beschaltung checken.
Um schnell hi/low umzuschalten, werden die 12V, die der MAX ja selbst erzeugen muß, doch mehr belastet
EDIT: das Gefummel mit den Loopbacks zahlt sich aus, damit man den Fehler einkreisen kann.
PC<->COMport<->Stecker<->Kabel<->Stecker<->MAX232<->µC (+boardverdrahtung)
Statistisch gesehen, sind Fehler dort deutlich wahrscheinlicher als spinnende Quartze
-
Hab das jetzt alles mal getestet und wie es aussieht ist es der MAX232 der defekt ist. Zum Glück hab ich bei Reichelt gleich paar mitbestellt.
-
was für kondensatoren haste den angeschlossen kann es vll. sein das die ein wenig zu träge sind / zu groß / zu klein / keine Ahnung was noch