Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.0
> 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: