Re: Relais schalten unkontrolliert Kategorie: I²C-Bus (von krassos - 28.02.2006 16:00) | ||
Als Antwort auf Re: Relais schalten unkontrolliert von DJ - 28.02.2006 15:39 | ||
| ||
> Hallo Zusammen, > > klingt ja interessant, ich habe auch Probleme mit dem MAX7311. Ich lese regelmä�ig den Zustand > des Ausgangsregisters. Mit dem Ergebnis, das sporadisch 0b00000000 gelesen wird, obwohl > mindestens ein Bit gesetzt ist. (Es können auch alle gesetzt sein, bzw. es ist auch egal ob es das > obere oder untere Byte ist. Ich kann es mir nicht erklären, ein Softwarefehler schlie�e ich mitterweile > aus, allerdings evtl. ein Problem mit dem Betriebssystem???? Ich habe das Problem erstmal umschifft, > ich die Register immer dreimal hintereinander auslese, und dann prüfe ob jedesmal das gleiche gelesen > wird.... > > Detlef Hallo Detlef, ich hab gerade mal in die Function getReg aus dem max7311.c2 Modul geschaut. Wenn es einen Adressierungsfehler gibt, hast Du automatisch in jedem Fall 0 als Rückgabewert. Wie ich schon sagte: Das mit dem mehrfachen lesen der Register bzw. Kontrolllesen nach Schreiboperationen ist sicher nicht die dümmste Idee, da es am I2C keine Daten- sicherheit gibt. Bei allen kritischen Funktionen, die über I2C gehen, habe ich nach der normalen Adressierung eine sofortige Neuadressierung eingebaut. Sollte diese ebenfalls Fehlschlagen, wird ein Fehlerzähler hochgezählt. Damit erreiche ich noch keine Datensicherheit. Ich bin mir lediglich sicher, das der Baustein reagiert. Die Datensicherheit erreiche ich nur durch Kontrolllesung, d.h. Inputs werden 2mal eingelesen und sind nur bei gleichheit gültig. Outputs werden Kontrollgelesen und ggf. sofort neu geschrieben. Gru� krassos PS: Die eine oder andere Hardwarema�nahme kann hilfreich sein. z.B. Ferritperlen an den Anschlu�drähten SCL und SDA. | ||
Antwort schreiben Antworten: |