Warum messe ich bei folgender init am MCLK-pin nur die DCO-Frequenz von 800kHz. Ich habe von 3,686MHz....8MHz getestet. Versorgungsapannung ist 3.0 Volt. Da 8 MHz scheinbar 3,6 Volt brauchen, müsste es doch eigentlich mit 3,686MHz laufen??? Das Programm danach läuft prima, aber zu langsam!!! P5DIR =0xff; P5SEL =0xff; /************HF-Quarz initialisierung-Beginn***********************/ BCSCTL2 = 0x88; // MCLK= SMCLK= XT2 BCSCTL1 &= ~XT2OFF; // XT2on do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0xFF; i > 0; i--); // Time for flag to set } while ((IFG1 & OFIFG)); // OSCFault flag still set? /************HF-Quarz initialisierung-Ende*************************/
Wieso schaltest du erst auf den Quarztakt um, startest dann aber erst den Oszillator? Steht das etwa so in den Code-Beispielen bei TI?
1 | BCSCTL1 &= ~XT2OFF; // XT2on |
2 | |
3 | do
|
4 | {
|
5 | IFG1 &= ~OFIFG; // Clear OSCFault flag |
6 | for (i = 0xFF; i > 0; i--); // Time for flag to set |
7 | }
|
8 | while ((IFG1 & OFIFG)); // OSCFault flag still set? |
9 | |
10 | BCSCTL2 |= SELM_2 + SELS; // MCLK= SMCLK= XT2 (safe) |
So klappts, wenn i volatile ist.
Genau das hatte ich vorher versucht, ging aber nicht. Ich arbeite mit dem MSP430f169. (Ich habe auch noch einen 32kHz-Quarz an XIN/XOUT)
Der Code funktioniert definitiv mit einem Quarz an XT2 und den entsprechenden Lastkondensatoren dran. Der Uhrenquarz an XT1 ist immer aktiviert und per default passend eingestellt. Der wird automatisch gestartet und speist den ACLK, wenn man nix umstellt. Für den XT2 im HF-Mode funktioniert obiger Code definitiv, wenn die Hardware stimmt.
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.