Gast
#2614821
Hallo, bei mir kommunizieren zwei Atmels per TWI miteinander. Ich habe auch hier im Forum viel geschaut aber weiss nicht so richtig wie Fehlerzustände zu vermeiden bzw. darauf zu reagieren ist. Hin und wierder hängen die Leitungen entweder SCL oder SDA auf Low Pegel. Dann geht gar nichts mehr. Daher meine Fragen zur Fehlerbehandlung: - wie kann ich feststellen ob vor dem Beginn eines Transfers SDA und SCL high sind? kann man das aus dem TWI Modul ableiten oder muss ich PINx der TWI Pins abfragen? Ich habe den Eindruck dass der Master machmal trotzdem den Transfer initiieren kann. - wenn der Master nicht mehr weiterkommt - wegen Timeout - reicht dann ein Stop condition zu generieren? - kann man eventuell das TWI Modul sicher reseten, indem man es kurz disabled und dann wieder enabled? - in einem Beispiel Programm hat der Master TWDR = 0xff gesetzt mit dem Kommentar "release SDA Line". Das kann ich so dem Manual nicht entnehmen. - ein anderer Forumsbeitrag beschrieb, dasas der Slave immer nach dem Master gebootet werden muss? - eigentlich wird ja der Pin als alternativ Funktion abgekoppelt. Haben die DDRx und PORTx Registerzustände eventuell doch einen Einfluss? Mein Ziel wäre durch das Erkennen von Timeout und Fehlerzuständen der Kommunikation ein Reset des TWI zu veranlassen. bzw den Kommunikationspartner zu resetten. Danke, Adib.