Hallo, meine jetzigen Einstellungen: BCSCTL1 = CALBC1_1MHZ; // Set DCO BCSCTL2 = DIVS_0; // SMCLK-Teiler / 0=1 1=2 2=4 3=8 DCOCTL = CALDCO_1MHZ; //USICKCTL = USIDIV_2+USISSEL_2+USICKPL; // Setup USI clocks: SCL = SMCLK/8 (~125 kHz) USICKCTL = USIDIV_7+USISSEL_2+USICKPL; // Setup USI clocks: SCL = SMCLK/128 (~7,8 KHz) Ich kann mit der Clock für den I2C-Bus bis zu 125 KHz hochgehen, mir genügen aber auch zur Zeit 7,8 KHz. Dies erhöht die Reichweite. Jetzt möchte ich noch weiter heruntergehen können. Dazu müsste ich vermutlich CALBC1_1MHZ und CALDCO_1MHZ weiter heruntersetzen. In der Doku gibt es unter "Typical DCOx Range and RSELx Steps" ein schönes Diagramm dazu. Mit RSEL=0 und DCO=0 müsste ich demnach auf unter 100 KHz fDCO kommen. Mit RSEL=0 und DCO=7 auf ca. 300 KHz. Das hiesse, ich könnte mit dem I2C-Takt nochmals um den Faktor 10 herunter kommen. Kann das jemand bestätigen? Gruss Klaus.
Mir scheint, Du hast das Basic Clock Modul des MSP noch nicht ganz überblickt?! 1.) Sicher, wenn Du den DCOCLK verringerst, dann verringert sich auch der I2C-CLK, denn der wird ja bei Dir vom DCO versorgt. 2.) Die DCO-Frequenz variiert teilweise erheblich (Exemplarstreuung, Tempdrift,...). Deshalb gibt es ja auch die Kalibrierwerte im INFO-Flash! Eine genaue Angabe einer DCO-Frequenz bei bestimmten DCO- und RSEL-Werten ist so nicht möglich! 3.) Aber wenn Du etwa um den Faktor 10 langsamer werden willst, reicht es u.U auch den SMCLK-Teiler (DIVS) von 1 auf 8 zu ändern?! Ich weiß jetzt allerdings nicht genau, ob I2C (bzw. Dein I2C-Gegenüber) eine untere Grenze für den CLK hat!
Hallo Stefan, >>>Mir scheint, Du hast das Basic Clock Modul des MSP noch nicht ganz überblickt?! Das hast Du ganz recht. Die Doku von TI gibt da teilweise weniger her. >>> Deshalb gibt es ja auch die Kalibrierwerte im INFO-Flash! wo finde ich dies? Für meine Zwecke genügt eine ungefähre Angabe. Ich möchte nur bei Aussetzern eben die Taktfreuenz verringern können um die Reichweite zu erhöhen. Wichtig ist nur das eigentiche Timing. Der Takt, das Timing, nuss sehr exakt sein. Zumindest beim DS1631. Gruss Klaus.
>>Mir scheint, Du hast das Basic Clock Modul des MSP noch nicht ganz überblickt?! >Das hast Du ganz recht. Die Doku von TI gibt da teilweise weniger her. Doch. Im Family User Guide (bei Dir vermutlich F2xxx) ist das alles sehr gut beschrieben. >> Deshalb gibt es ja auch die Kalibrierwerte im INFO-Flash! >wo finde ich dies? Du verwendest sie schon:
1 | BCSCTL1 = CALBC1_1MHZ; // Set DCO |
2 | DCOCTL = CALDCO_1MHZ; |
Allerdings ist 1MHz -so aus'm Kopf- glaub ich die niedrigste Taktfrequenz, die kalibriert vorliegt. >Für meine Zwecke genügt eine ungefähre Angabe. Ich möchte nur bei >Aussetzern eben die Taktfreuenz verringern können um die Reichweite zu >erhöhen. Dann ändere eben wie schon vorgeschlagen, den SMCLK-Teiler (DIVS). Ein gefummel am DCO-Clock würde schließlich auch die CPU-Clock (MCLK) ändern, was dann wieder zu anderen negativen "Nebeneffekten" führen könnte!
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.