Re: PCF8591 Kategorie: I²C-Bus (von krassos - 21.07.2005 11:31) | ||
Als Antwort auf Re: PCF8591 von Rainer - 21.07.2005 10:16 | ||
| ||
> > Hallo Rainer, > > > > im Datenblatt kann ich auch nix besonderes finden, was das erklären könnte. > > Bleibt der I2C. > > Versuch es doch mal mit einer Modifikation in pcfad.c2 um zumindest den Fehler eingrenzen zu > >können. > > > > > > /*************************************/ > > /* Einzelnen AD-Port abfragen */ > > /*************************************/ > > function getAD(byte addr, byte ADport) returns byte > > {byte data; > > if i2c.cstart(Addr[addr]) > > { > > i2c.write(settings[addr] or (ADport and 0b11)); > > yield; > > i2c.stop(); > > i2c.cstart(AddrR[addr] or 1); > > i2c.read();//dummy, needed for first sampling > > data=i2c.readlast(); > > i2c.stop(); > > } > > else > > { > > i2c.stop(); > > error = error+1; > > } > > return data; > > } > > > > > > > > error definierst Du als int global am Anfang > > des Moduls pcfad.c2. Dieser Fehlerzähler erfasst, wenn der 8591 nicht auf eine > > Adressierung antwortet. > > Diesen Fehlerzähler kannst Du Dir dann auf dem LCD anzeigen lassen. > > Sollt er nicht zählen, liegt es an der Hardware. > > > > Gru� krassos > Hallo krassos, > > danke für den code, aber leider steht mein Problem immer noch. Der Schleifenzähler (error) > funktioniert, wenn ich die Adresse abändere oder die Datenleitung entferne. > Habe das Betriebssystem, Entwicklungsumgebung, halt alles neu runtergeladen und installiert. > Auch mit einer 2. C2 mit Board und einer neuen Leiterplatte mit einem neuen 8591 mit den > Widerständen 10k gegen Vdd, 330 Ohm an den Datenleitungen, verschiedene Kabellängen und > -längen. > Eine Ansteuerung eines 8574 im laufendem Testprogramm (Relais) fünktioniert ohne Probleme. > Auch das Auslesen mehrerer 8591er klappt, nur mit den falschen Werten (ab und zu werden die > richtigen Werte auch angezeigt). Der Wert 128 wird am häufigsten angezeigt und meistens der > gleiche Wert (AIN 0-3). > Ich vermute, dass die Daten nicht sauber vom 8591 ausgewertet werden können. Eine Geschwindig- > keitsherabsetzung für den Datenstrom habe ich nicht gefunden. > > Nach rund 30 h bekomme ich langsamm die Kriese, aber es muss ja funktionieren. > Hallo, versuch doch mal die Funktion getAD4() einzusetzen. Gru� krassos | ||
Antwort schreiben Antworten: Re: PCF8591 (von krassos - 21.07.2005 11:34) Re: PCF8591 (von krassos - 21.07.2005 11:43) Re: PCF8591 (von Rainer - 21.07.2005 12:18) Re: PCF8591 (von Rainer - 21.07.2005 12:45) Re: PCF8591 (von Rainer - 21.07.2005 19:27) |