Dummy Clockout on I2C

OP #2838617
Lesenswert?
• ▲
▼
Hallo,

Ich versuche am MSP430F2272 das EEPROM AT24C512B von Atmel anzusteuern.
Weitesgehend funktioniert das auch. Leider hängt sich das EEPROM beim 
Debuggen auf und es gibt nur 2 Möglichkeiten das System wieder in Gang 
zu bekommen.

1. Power und Debugger entfernen und damit reseten.
2. Folgende Sequenz übertragen:

Startbyte, 9! Clock cycles, Startbyte, Stopbyte

Ich hab keine Ahnung wie ich 9 clock cycles generieren kann. 8 bekomme 
ich ja noch mit Byteschreiben hin aber das 9?

Kennt einer einen Trick?

Danke :)
Gast #2838800
Lesenswert?
• ▲
▼
Peter Dannegger schrieb:
> Dann taugt Dein Debugger nichts, er sendet Störimpulse.

Das ist zu kurz gedacht. Wenn ich mitten in einer Read-Sequenz die 
Software anhalte und dann die CPU resette (oder sie stürzt ab, soll beim 
Debuggen vorkommen), wartet der Slave möglicherweise ewig auf das Read 
mit NACK. Er reagiert dann nicht auf ein Adressbyte. Und das alles 
ohne einen einzigen Störimpuls.

MfG Klaus
#2838883
Lesenswert?
• ▲
▼
Das ist der Hauptnachteil vieler HW-I2C, sie sind auf fehlerfreien 
Transfer angewiesen. D.h. sie können Fehler nicht erkennen und nicht 
beheben.

Manche verklemmen sich sogar selber, ganz ohne Busfehler. Z.B. die AVRs 
als Multimaster, wenn sie die Arbitration verlieren.

Ich benutze das HW-I2C daher nicht für Single-Master, sondern mache 
SW-I2C. Da ist die Fehlerbehebung ein Klacks. Auch code- und zeitmäßig 
ist kaum ein Unterschied zu HW-I2C.

HW-I2C braucht man nur bei Slave, Multimaster oder im Interrupt. Dann 
aber auch ein Timeout und Bit-Banging zur Fehlerkerkennung und Behebung.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.