Forum: Mikrocontroller und Digitale Elektronik I2C Hardware-Module


von mgiaco (Gast)


Lesenswert?

Hallo, ich versuche zur Zeit gerad eine I2C Lib für den Hardware I2C des
MSP430F16x zu schreiben, weil ich nix im Nezt gefunden habe.

Nun eine Frage zum Datenblatt. Ich habe eine 8MHz Quarz am XT2 und ich
möchte eine I2C-Frequenz von 100kHz wie muss ich dann genau die 3
Register einstellen?

I2CPSC = ?
I2CSCLH = ?
I2CSCLL = ?

Besten Dank im Voraus

mfg mathias

von mgiaco (Gast)


Lesenswert?

So ich glaube ich habe es jetzt kapiert. Stimmt das so wenn ich einen
8MHz Quarz habe und eine I2C Clock von 100kHz möchte.

I2CPSC = 0x02;      // I2C clock = clock source/I2CPSC
                    // für 8MHz Quarz / (3+1) ==> 2MHz
I2CSCLH = 0x08;     // SCL high period = (8+2)*I2C clock
                    // 1/2MHz ==> 0.5µSec * 10 => 5µSec
I2CSCLL = 0x08;     // SCL low period  => wie I2CSLH
                    // SCL Low, 5µSec + SCL High, 5µSec = 10µSec
                    // ==> 1/10µSec = 100kHz I2C Clock

Besten Dank

mfg mathias

von Marcus (Gast)


Lesenswert?

sorry, mit dem µC hab ich noch nicht gearbeitet.
musst nur aufpassen. bei den meisten ist es so, dass du vor ändern
bestimmter register, unter anderem auch dieser, die für die clock
zuständig sind, wiederum andere setzen musst, damit du überhaupt
schreibend auf diese zugreifen kannst.
am besten schaust du mit nem Oszi nach, ob du die gewünschte busrate
hast.

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
Noch kein Account? Hier anmelden.