Hallo,
ich habe folgendes Verständnisproblem mit dem I2C-Bus Protokoll:
Wenn der Master Transmitter und der Slave Receiver ist kann der Slave, wenn er keine Daten mehr empfangen kann, ein NoAcknowledge senden und der Master, wenn er nicht mehr senden mag, ein Stop-Bit. Wenn aber der Master Receiver und der Slave Transmitter ist kann nur der Master durch ein NoAcknowledge oder Stop-Bit die Übertragung beenden. Was macht aber der arme Sklave wenn der Meister mit Acknowledge immer mehr Daten haben will, der Sklave aber keine mehr zum Senden hat? SCL solange auf Low ziehen und damit den ganzen Bus blockieren bis wieder Daten zum Senden da sind kann ja eigentlich nicht die Lösung sein. Aber selbst die I2C-Spec von Philips schweigt sich genau zu diesem Fall aus.
MfG Michael