Forum: Compiler & IDEs MSP430 als Slave im I2C-Bus möglich


von Mathias (Gast)


Lesenswert?

Hallo erstmal!

Ich möchte einen MSP430x11x2 oder MSP430x12x2 in einem MultiMaster
I2C-Bus-System betreiben. Allerdings weiß ich nicht ob der µC als Slave
schnell genug antworten kann.
Hat jemand Erfahrung und kann mir weiterhelfen? Welchen Mode kann ich
auf dem I2C-Bus fahren, auch High-Speed?
Immerhin muß ich auf die halbe Takt-Periode als Slave antworten!!!

Gruß m@is

auch unter matis-ät-gmx.ch erreichbar

von Joerg Wunsch (Gast)


Lesenswert?

Zum MSP430 kann ich hier nichts sagen, aber ein I²C Slave darf doch
den Takt nötigenfalls verlängern, damit solltest Du das doch allemal
hinbekommen (zur Not mit externer Hardware, die die Verlängerung so
lange aufrecht erhält, bis der Controller antworten konnte).

von Mathias (Gast)


Lesenswert?

@Joerg:

du hast recht, der Slave kann den Takt verlängern indem er SCL=LOW
setzt. Darum geht es mir aber nicht.
Der Master, der meinen MSP anspricht erwartet ja eine Antwort innerhalb
von einem Taktpuls. Dh. ich muß innerhalb von einem halben Puls
antworten wegen der Laufzeit, damit der Master keine zweite
START-Bedingung schickt.
Bei den MSP430x11x2 und x12x2 ist der I2C-Bus keine Hardwarelösung.

von Peter D. (peda)


Lesenswert?

Du brauchst als Slave immer eine Hardware, die nach jedem 1->0 der
SCL-Leitung diese solange auf 0 hält, bis Du in der Lage bist das Bit
auf SDA zu lesen bzw. zu schreiben.

Und wenn Du diese Hardware nicht im Chip hast, dann must Du das eben
extern machen.

Bei 100kBaud das voll in Software zu machen kann höchstens ein DS89C420
(33MIPS) oder C8051F123 (100MIPS).
Die schaffen die 4µs maximale Interruptreaktionszeit sogar wenn noch
andere Interrupts und ein Main zu bedienen sind.


Peter

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.