PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] I2C- Bus zu schnell



Flownfluid
21.09.2005, 08:29
Hallo zusammen,

ich benutze einen PIC18F452 mit 40MHz diese Geschwindigkeit brauche ich um gewisse Schiebeoperationen zu bewältigen.

Doch nun muss ich noch zusätzliche ein Gerät mit dem I2C- Bus ansteuern, jedoch kann dieses Gerät nur bis zu 5kHz Clock arbeiten.

Wie kann man die Geschwindigkeit des I2C- Bus so einstellen das er unter 5kHz fällt?
Ich brinnge ihn leider nur auf ca 78kHz...

Vielen Dank im voraus

batti112
21.09.2005, 09:38
Hi!
Ich wüsste nicht das man die Busgeschwindigkeit an sich regeln könnte...
Es liegt doch an dir wann du ein I2C Gerät ansprichst, time das doch einfach richtig.

mfG
Batti

flownfluid
21.09.2005, 09:58
Hallo. vielleicht habe ich mich da falsch ausgedrückt oder habe ich da etwas falsch in den Hals gekriegt...

Mit dem Register SSPADD kann man doch die Geschwindigkeit des I2C- Bus (als den Clock von SCL)einstellen oder nicht?

Wenn ja ich bräuchte einen Clock unter 5kHz und da dies ein Teiler braucht von 2000 und das SSPADD- Register nur 8 bit hat also max. einen Teiler von 255. ich brächte da schon irgendwie 11 bits...

Danke und Gruss

SprinterSB
21.09.2005, 10:16
Wenn du mit Hardware nicht tiefer kommst, dann bleibt wohl nur eine Software-Version von I2C.
Falls der Master zu schnell ist, sollte der Slave eigentlich ein Clock-Stretch machen, um das Master-I2C-Modul zu bremsen. Ob er das bei 5kHz gegen 78kHz allerdings schnell genug schafft...?

µTom
10.10.2005, 08:02
Eine weitere Lösung wäre ein extra Pic.
Dieser könnte die I2C Aufgaben bewältigen, ohne das der Große ausgebremst werden muß (z.B. über Software I2C).
Die Daten zu dem kleinen Pic kannst du schnell übertragen und die restliche Kommunikation erledigt er dann abenfalls.

Gruß, Tom

PS: Wenn möglich kann auch eine ISR (Interruptroutine) eingebaut werden, falls zeitlich möglich (dann kein Extra-Pic nötig).

flownfluid
11.10.2005, 16:47
Vielen Dank für deine Antwort...

Habe an den zweiten Pic auch schon gedacht aber da ich ein embedded system entwickle kommt das mit dem zweiten Pic nicht gerade gut(Stromverbrauch) :-)

Aber ich habe nun den I2C halt Softwaremässig implementiert und funktioniert einwandfrei.

Vielen Dank nochmals für eure Hilfe