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
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).
@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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.