Gast
#1250430
Hallo Forum, ich habe in einer Schaltung u.a. am i2c-Bus den MCP23016 I/O-Expander von Microchip. Ich verwende die i2c-Routinen von der Procyon AVRlib, hat im Zusammenspiel mit diversen anderen i2c-Bauteilen nie Probleme gemacht. Nur in meinem aktuellen Projekt "spinnt" der MCP23016 irgendwie, mein Eindruck ist das sich irgendwie die Kommunikation "verhakt" und der Atmega128 kein ACK mehr bekommt. Er bleibt dann stehen. Ich hab dann mal den Watchdog reingemacht um zu sehen was weiter passiert, nach diversen Resets schafft er es dann mal... Anscheinend werden dann auch willkürlich irgendwelche Bits gesetzt weil der Zeiger im MCP dann irgendwohin zeigt. Das Programm läuft auch manchmal tagelang ohne Probleme, sprich ich kann den Fehler leider nicht reproduzieren. Gibt es irgendwelche bekannten Fallsticke bei dem Ding ? Ich hab gesehen das Microchip den inzwischen auch abgekündigt hat. Kennt jemand den Grund ? Der MCP braucht auch einen eigenen RC-Oszillator ist das in Wirklichkeit vielleicht ein PIC (Pinout könnte passen...) ausserdem "hält" der MCP den Takt fest wenn er arbeitet, wenn ich das im Datenblatt richtig verstanden habe - ist das so in der i2c-spec nicht vorgesehen, bzw. eher unüblich ? Bus sieht sauber aus, Pullup ist 4K7 an SCL und 4K7 an SDA, alle Bauteile sind über 270Ohm am Bus, der MCP ist mit 4,7µF Tant. abgeblockt. Bus läuft mit 100kHz. Bin kurz davor den MCP23016 durch einen PCA9555 zu ersetzen (weil ich den zufälligerweise da habe und er vom Erfinder des i2c stammt :). Ich habe hier: http://tech.dir.groups.yahoo.com/group/lpc2000/message/8827 was gefunden, kann das vielleicht jemand bestätigen ? Danke für eure Hilfe, Alex.