mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Clock für I2C verringern


Autor: Klaus Ra. (klara)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Klaus Ra. (klara)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>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:
BCSCTL1 = CALBC1_1MHZ;               // Set DCO
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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.