Tach auch!
Ich habe eine kleine Schaltung mit einem ATMega1284p und zwei TCA9555.
An einem dieser TCAs habe ich lediglich Pinheader angeschlossen um
verschiedene Konfigurationen einstellen zu können (siehe Schaltplan).
Ich lasse mir den Status der Inputs des TCAs permanent über UART
ausgeben. Dabei habe ich aktuell das Problem, dass eines dieser als
Input konfigurierten Pins nicht korrekt funktioniert. Sobald ich diesen
Pin mit Ground verbinde, stürzt mein Atmega ab.
Ich bekomme keine Ausgaben per UART mehr und auch die I2C Verbindung
bricht ab.
Hier ist einmal die I2C Kommunikation:
Start, h48 [ h24 | WR ], h00,
Restart, h49 [ h24 | RD ], hFF, hFF, Stop
% P07 wird mit Ground verbunden
Start, h48 [ h24 | WR ], h00,
Restart, h49 [ h24 | RD ], h7F, hFF, % Ab hier hängt sich alles auf
Ich habe den Pin durchgepiepst; es exestiert keine direkte Verbindung zu
Ground, Vcc, SDA oder SCL. Der besagte Pin liegt auch absolut nicht in
der Nähe von +5V (siehe Boardlayout im Anhang).
Zwischen diesem und den anderen Pins und Ground messe ich einen Strom
von 50 µA.
Bei der Software kann ich auch keinen Fehler erkennen:
1 | #define CR_IN0 0x0
|
2 |
|
3 | uint8_t lport, uport;
|
4 | i2c_start_wait(TCA_MS + I2C_WRITE);
|
5 | i2c_write(CR_IN0);
|
6 | i2c_rep_start(TCA_MS + I2C_READ);
|
7 | lport = i2c_readAck();
|
8 | uport = i2c_readAck();
|
9 | i2c_stop();
|
Irgendwie stehe ich auf dem Schlauch und kann kein Fehler entdecken.
Habt ihr irgendwelche Tipps wie ich den Fehler eingrenzen könnte?
Beste Grüße!
Felix.