Hallo Community....
Ich habe ein kleines Problem mit dem TWI des ATmega644P.
Undzwar habe ich verschiedene I2C-Sensoren am Bus hängen. Die Sensoren
können über den uC ein bzw. ausgeschaltet werden. Die VCC Pins hängen
direkt an den Pins des Controllers. Dachte mir das wäre die einfachste
Variante da die Sensoren nur einen gerinegn Strom benötigen und ich mir
somit Transistoren sparen kann.
Die ganze Schaltung stellt einen Datenlogger dar. Dieser besitzt ein
RTC-Baustein welcher dauerhaft mit Spannung versorgt wird und somit der
einzige am Bus hängende, dauerhaft aktive Baustein ist.
Nun war ein Sensor angeschlossen, SCL, SDA, GND waren mit dem Bus
verbunden, VCC vom Sensor über den Controller auf Masse gezogen sodass
der Sensor praktisch aus war. Nun hatte ich über den UART die sekunden
aus dem RTC ausgeben lassen. Ist der Sensor physikalisch angeschlossen,
bleibt der I2C schon beim schreiben der START-Condition hängen. (Mit
Logicanalyzer geprüft). Das Clocksignal wird zwar rausgegeben, aber auf
der SDA Leitung tut sich nichts. Dies passiert unabhängig vom Zustand
der VCC-Leitung des Sensors. Ziehe ich den Sensor vom Logger ab, so
läuft die Kommunikation einwandfrei.
Das verwunderliche ist allerdings, dass genau die selbe Software auf
einem ATmega88 mit nur einem, dauerhaft verbauten Sensor (SHT21 von
Sensirion) und dem selben RTC, astrein funktioniert. Auch die Bestromung
des Sensors ist identisch.
Kann sich jemand vorstellen was die Kommunikationsprobleme auslöst?
Hardware: ATmega644P
Sensor: HYT271 oder SHT75
AVR-Studio 5.0
Danke schonmal im Voraus