Hallo zusammen, ich bin dabei die UART zu programmieren für meinen MSP430F413. Hab jetzt so richtig die Nachteile dieses Mikrocontrollers kennen gelernt, da er keine RX- und TX Buffer hat. Das macht die UART unlängst schwerer. Hab es aber hinbekommen, dass der MSP "Hallo Welt" sendet. Ich habe alles andere auskommentiert, was nicht direkt mit der UART zu tun hat. Kaum wieder enthalten funktioniert nix mehr, sendet nur noch Mist. Jetzt bn ich an der FEhlerstelle angekommen. Bei einem CPU Takt von 1MHz und einer Baudrate von 9600 Hz stelle ich die Bittime auf 0x6C HEX (siehe Quellcode). Damit läuft es auch. Für die eigentliche Funktion brauche ich aber 4MHz. Also für 9600 Hz umgerechnet ist die Bittime 0x1B5 HEX. Damit geht dann nix mehr. Vielleicht hat jemand ähnliche Probleme gehabt und kann mir bitte helfen. Der Quellcode ist angehängt Vielen Dank im Vorraus Viele Grüße Torsten
So hab den Fehler doch alleine gefunden. Der definierte Takt von 4 MHz kam bei der CPU nur mit 3,3MHz an. Die Baudrate damit errechnet bringt den gewünschten Erfolg !!!
Hmmm, nennt man auch Taktabfall (analog zum Spannungsabfall) :-) ich nehme mal an, Du hast irgendeinen RC-Oszillator aussen dran hängen. Ist natuerlich bedenklich als Basis fuer eine UART-Kommunikation. In diesem Zusammenhang eine recht interessante Geschichte, die TI bei den aktuell in Produktion gehenden MSP430Fx2xx realisiert. TI vermisst im Werk den internen Oszillator und legt die Kalibrierwerte im Flash ab. Diese Werte sollen zusammen mit 2% Stabilitaet ueber den gesamten Temperaturbereich dafuer sorgen, dass man den internen Oszillator ohne Probleme fuer die Kommunikation hernehmen kann. Bin ja gespannt, wie sich das in der Realitaet bewaehrt. Ist aber allemal ein interessanter Ansatz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.