Hallo Tropby,
das beigefügte Logikdiagramm in meinem Beitrag zuvor sagt etwas anders aus über die vom Logik-Programm gesendete Adresse. Die Bits des erst gesendeten Bytes (7 Bit) geben eindeutig den Wert 20H wieder, weder die Werte D0H noch 40H sind zu erkennen. Es sei denn man interpretiert die ersten 8 Bit nach dem Start als 8 Bit-Wert, dann ist der Wert 40H zu erkennen. Das ist aber falsch. Nach dem Start auf dem I2C-Bus muss in jedem Fall ein 7-Bit-Wert mit einem R/W Bit gesendet werden. Wobei für R/W entweder R=high oder W=low ausgegeben werden muss.
Es gibt eine Spezifikation für den I2C-Bus von Philips. In ihr ist festgelegt, es werden entweder 7 Bit Adressen oder 10Bit Adressen zum Ansprechen der Bausteine verwendet. Der 10Bit Adress-Mode wird mit 11110XXB eingeleitet. D0H und A0H haben 8 Bit, also müsste hierfür das 10 Bit-Format verwendet werden. Nach dem Start der I2C Übertragung gibt es aber kein 11110XXB auf der Datenleitung (siehe beigefügtes Diagramm in meinem letzten Beitrag) das den 10-Bit Modus einleitet.
Zu meinem verwendeten Uhrenbaustein habe ich ein Datenblatt beigefügt in dem die Ansprechadresse 68H verwendet wird. Welcher Baustein in der NET-IO ADD verwendet wird weiß ich nicht. In dem Datenblatt ist außerdem zu erkennen, dass der Uhrenbaustein im 7-Bit-Modus angesprochen wird. D0H als Adresse für den DS1307 von Maxim kann also gar nicht funktionieren.
Ich habe mal im Internet nach Datenblättern nachgeschaut. Es gibt den Baustein von Dallas, Maxim und TGS. In allen Datenblättern ist die Adresse 68H als Ansprechadresse verwendet.
Hier ein Auszug aus dem Datenblatt von "MAXIM Integrated"
The slave address byte is the first byte received after the master generates the START condition. The slave address byte contains the 7-bit DS1307 address, which is 1101000, followed by the direction bit (R/W), which for a write is 0. After receiving and decoding the slave address byte, the DS1307 outputs an acknowledge on SDA.
Dass das ACK-Bit nicht ausgewertet wird versteh ich nicht. Man kann ohne die Auswertung nicht erkennen ob ein Baustein die für ihn gesendeten Werte erhalten hat und hieraus resultierend ob ein Baustein am BUS angeschlossen ist, oder ob er überhaupt funktioniert.
Grüße Jürgen Rieger