Zum Debuggen habe ich versucht den UART1 statt mit 1,5 MBaud und dem Takt aus SMCLK bei 9600 Baud mit Takt aus ACLK zu verwenden, aber das funktioniert nicht, obwohl ACLK vorhanden ist (auch am Pin 20 gemessen) und ich die Werte aus dem Manual eingetragen habe: U1TCTL = 0x10; // transmitter source select = ACLK UBR01 = 0x03; UBR11 = 0x00; UMCTL1 = 0x4a; Am Interrupt oder ME1/2 liegt es nicht, da die nicht verändert wurden. An den 9600 Baud liegt es nicht, denn mit den 8 MHz SMCLK funktioniert es. Woran könnte es sonst noch liegen?
Inzwischen habe ich die Ursache: Es ist ein Hardware-Bug, beschrieben im Errata slaz018a.pdf (Bug US14). Nebenbei funktioniert der UART auch nicht bei 2400 Baud; da bleibt die Software sogar hängen wenn sie den Zustand des Ausgangspuffers abfragt mit while (not(U1TCTL bitand TXEPT)); // wait for empty U1TXBUF oder while (not(IFG2 bitand UTXIFG1)); // wait for empty U1TXBUF . Hätte mein Fallschirm (und die Reserve) so viele Bugs wie die Mikrocontroller, dann wäre ich schon seit Jahren tot ... Naja, bei 1,5 MBaud funktioniert der UART ja und mit aufgelötetem Reset-Taster sind die Evaluationboards ja halbwegs brauchbar.
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.