Problem mit I2c - bus und PCF8591
Habe ein Problem das bei meinem PCF 8591 der messwert schwankt egal ob ich den AI0 auf minus oder auf Plus lege der kleinste wert ist immer 128 und der höchste 255. Progrmmiert habe ich es mit dem CAVR - Compiler hier ein auszug des PRG´s
i2c_start();
i2c_write(i2c_adresse_chip4);
i2c_write(0);
i2c_stop();
i2c_start();
i2c_write(i2c_adresse_chip4 + 1);
i2c_olddata = i2c_read(0);
i2c_EB205_0 = i2c_read(0);
i2c_stop();
Referenzspannung ist über einem Spannungsteiler am PCF angelegt. der C hip wird auch im Bus gefunden.
Nun meine Frage was ist falsch ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Ist der Auto_Inc_Flag gesetzt??
Welche Input-Mode verwendest du? Sind auch alle (4x) Eingänge angeschlossen?
Wenn der Auto_Inc_Flag gesetzt ist, dann wird die Register Adresse immer um eins inkrementiert (0-3, 0-2 oder 0-1 abhängig vom Input-Mode). d.h. du wirst immer abwechselnd andere Werte lesen.
Zum Testen kannst du den ControlByte mit 0x00 beschreiben. Damit ist der Auto_Inc_Flag Low, und 4 Single-ended inputs. Und an allen 4 Eingänge gleiche Spannung anlegen (nur zum Testen!!). Somit müsstest du immer den gleichen Wert lesen (wenn die Spannung sich nicht ändert)
IngBo