MSP430 als Slave im I2C-Bus möglich

Gast #75418
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
Gast #75419
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).
Gast #75420
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.
#75421
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren