Forum: Mikrocontroller und Digitale Elektronik Welchen Takt einstellen (I2C)


von mantis (Gast)


Lesenswert?

Moin,

ich will mehrere LM75 Sensoren über I2C ansteuern. Ich benutze einen 
PIC16F88X. Muss ich für den I2C zwangsweise einen externen Oszillator 
anschließen oder könnte ich auch den intern 8Mhz Oszillator verwenden ??

Gruß Manits

von mantis (Gast)


Lesenswert?

Es geht mir hier nur um den PIC takt. Das der PIC den I2C Takt selber 
erzeugt ist mir schon klar ;)

von Bastler (Gast)


Lesenswert?

Der Takt bei I2C istfrei wählbar, da du bzw. der Pic ja der Master ist.
Also wie bei SPI.
Die meisten Slaves können bis 100kHz bzw. 400kHz.
Du kannst auch z.B. 43,68kHz oder 21,78kHz verwenden, du gibst den Takt 
ja vor.

Vergiss nur die Pull-Ups nicht!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

mantis schrieb:

>  könnte ich auch den intern 8Mhz Oszillator verwenden ??

I2C seitig spricht IMHO nichts dagegen.

Die Slaves arbeiten ja mit dem I2C Takt, den der PIC allein vor gibt. 
Und der PIC muss keinen genauen Absolutwert einhalten.

Anders als z.B. bei async. UART bei dem die angeschlossenen Teilnehmer 
jeweils ihren eigenen Takt erzeugen und die Gesamtabweichungen <2% sein 
sollten.

von mantis (Gast)


Lesenswert?

Okay! danke für die schnell Antwort!

gruß Mantis

von mantis (Gast)


Lesenswert?

So neues Problem... wie kann es sein das ich kein SCK taktsignal am oszi 
messe ?? Pullup widersände sind da (4,7k) iSC initialiseireung wie Sprut 
vorgibt..

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Programmierfehler in Zeile 42.

von mantis (Gast)


Angehängte Dateien:

Lesenswert?

:D okay

Hier ist mal mein I2C Test Programm. Also er gibt auf dem Display zum 
schluß was aus aber halt "nur" unlogische sachen.

Unabhängig davon:

dürfte er nix ausgeben weil ich den Sensor nicht angeschlossen habe und 
er ja in der "sende_schleife" hängen bleiben müsste da er kein ACK vom 
Sensor bekommt.

Wenn ich mit dem Oszi den SCK messe sehe ich keinen Takt zwischen 100 
und 400kHz sondern lange (400ms) High signale.

Vielleicht sieht ja einer meinen Fehler

Gruß mantis

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Postings habe ich gelöscht, sorry, weil ich hatte PIC16F88x (PIC16F887) 
mit PIC16F88 verwechselt.

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.