Hi!
Gleiches Problem und ich kam die letzten Tage auch auf auch auf keinen
grünen Zweig. Der Support von Microchip war völlig nutzlos. Außer der
äußerst hilfreichen Aussage, dass es den IC schon seit 20 Jahren gibt
(und somit wohl ich zu bl*d bin) kam hier nichts.
Der entscheidende Hinweis kam vom Field Application Engineer des
Distris, wo wir die Teile beziehen:
Problem ist bei mir die Zeit zwischen fallender SCL und der
Pegelumschaltung auf SDA.
Da der I2C bei steigender SCL-Flanke die Daten von SDA übernimmt,
erscheint diese Stelle nebensächlich.
Der TC74 will lt. Datenblatt ein "Data in Hold Time" tH-DAT von min.
1250ns. Das Datenblatt ist an dieser Stelle wirklich nicht allzu
verständlich, zumal im Diagramm dann von tH-DATA die Rede ist. Außerdem
ist nicht klar, ob das eine Eigenschaft oder eine Forderung sein soll.
Wie auch immer, bei mir war tH-DAT bei 25°C nur 255ns, bei 62°C nur noch
242ns und kurz danach kommt auch kein ACK mehr.
In Deinem Fall machst Du mit dem 1nF an SDA die Flanken flacher,
verzögerst den H-Pegel und somit läuft es etwas länger bei höheren
Temperaturen.
Saubere Lösung: Nach dem SCL H-->L die 1,25µs warten bis der nächste
Pegel auf SDA ausgegeben wird. Ob das in der Atmel HW-TWI so einfach
geht, weiß ich nicht. Mit einer Soft-SPI sollte das kein Problem sein.
Ich komme bei meinem Controller da leider auch nicht so einfach ran und
muss wohl mit einem leichten RC-Tiefpass in SDA rumtricksen auch wenn
ich die Spec Werte damit nicht erreiche.
HTH
Roman