Hallo, ich habe ein Problem mit dem I2C Bus: Meistens endet die Übertragung bereits nach dem Senden der Adresse. Ich erhalte noch die Statuscodes, dass Start und Adresse gesendet wurden, danach steht die Übertragung. Im Anhang ist ein Screenshot von der Situation. Was passiert denn da nach dem ACK der Adresse? Daraus, dass SCL low ist, schließe ich, dass der Slave die Übertragung anhält, richtig? Warum tut er das? Ich muss doch lediglich das TWINT Flag nach Empfang immer wieder rücksetzen, oder? Oder gibt es da noch etwas zu beachten? Und warum geht nach einiger Zeit auf Daten auf low, sodass beide Leitungen dann low sind? Danke und Gruß Jan
Ich schließe daraus das der Master keinen Takt erzeugt und so der Slave keine Daten liefern kann. Da z.B ein speicherchip wie der 24c65 keinen taktgenerator sein eigen nenen kann, ist er auf einen externen Takt angewiesen um seine Daten seriell zu senden. Diese liefert der Master über SCL. und zwar unabhängig davon ob der slave eine eigenetaktquelle besitzt oder nicht. benutzt du die TWI oder generierst du I²C perbitbanging ?
Das sind zwei Megas, die miteinander reden sollen. Und zwar über die interne TWI. Der Master erzeugt ja einen TAkt; die Adresse wird übertragen. Das ACK des Slaves erfolgt ja auch noch. Aber dann geht SDA wieder auf high, während der Takt auf low bleibt. Hält der Slave die Taktleitung auf low? Warum tut er das? :) Gruß Mr.Green
sorry hatte einen Absturz hier habe ich mal einiges zur TWI übersetzt http://de.geocities.com/postboxelektronik/box/Serielle_Zweidraht_Schnittstelle.pdf http://de.geocities.com/postboxelektronik/box/I2C_Bus_Functions.pdf Der Master gibt auch beim lesen eines Bytes den Takt aus. Du musst also die TWI veranlassen ein Byte auf dem Bus zu lesen um Antwort vom Slave zu erhalten. Beachte bitte, dass beim lesen des letzten Bytes das das Aknowledge nicht angefordert werden darf, da sich sonst die TWI aufhängt!
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.