Forum: Mikrocontroller und Digitale Elektronik PCA9557 Source Strom per Pin


von Martin M. (bdb)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

habe ich mir das nur schön geredet oder kann der PCA9557 mehr als 10 mA 
per Pin sourcen? Jedes Mal, wenn ich versuche, meine 
TMAG-Sensorengruppen einzuschalten, glitscht mein Debug UART herum, bzw. 
es kommt nur noch Müll an. (Ich wollte ja unbedingt die Mosfets 
einsparen..)

Ich habe "[3] The total current sourced by all I/Os must be limited to 
85 mA and 20 mA per bit." als Referenz genommen. Meine 3,3V nach dem 
Regler sind stabil, soweit ich es sehe.

(Ich muss dringend damit aufhören sofort "finale" Versionen mit 0402 und 
VQFN Gehäusen zu bauen..)

Vielen Dank und Grüße,

Martin

von N. M. (mani)


Lesenswert?

Martin M. schrieb:
> habe ich mir das nur schön geredet oder kann der PCA9557 mehr als 10 mA
> per Pin sourcen?

Also im TI Datenblatt vom PCA9557 steht bei mir:
IOH High-level output current
P7–P1
–10 mA
Alles drüber ist vermutlich Voodoo.

Martin M. schrieb:
> Jedes Mal, wenn ich versuche, meine TMAG-Sensorengruppen einzuschalten,
> glitscht mein Debug UART herum, bzw. es kommt nur noch Müll an.

Beim TMAG5273 heißt es: Active current 2.3-3mA. An einem Pin hast du 4 
Stück, also 12mA. Die 2 Mal 1.5mA SDA/SCL müssten ja über VCC gehen, 
also keine Rolle spielen.

Ist selbst so ideal gerechnet trotzdem 2mA zu viel hätte ich gesagt. 
Hört sich nicht viel an, aber prozentual auf die 10mA gesehen...

Löte halt Mal 1-2 von den Dingern runter und schau ob das Problem weiter 
besteht.

Ich verstehe nämlich nicht warum das Auswirkungen auf deine UART haben 
soll. Dein Controller und der Treiber über den RX/TX gehen werden doch 
über VCC versorgt. Sollte doch eigentlich egal sein wenn der PCA Ausgang 
abkackt.

: Bearbeitet durch User
von Martin M. (bdb)



Lesenswert?

Hallo Mani

danke!

Ich habe inzwischen 2 von 4 Sensoren pro Gruppe ausgelötet, aber das 
UART-Problem besteht weiter. Die Ausgänge scheinen gar nicht erst 
gesetzt zu werden, oder es scheint nicht dazu zu kommen. Ich messe an 
den PCA9557-Ausgangspins (P1-P7) nahezu keine Spannung (nur ca. 200mV, 
die beim Messen schnell fallen - vermutlich entlade ich die 
Blockkondensatoren über mein Oszi?!), egal ob ich sie per I²C versuche 
auf Output HIGH zu setzen oder nicht.

Versehentlich habe ich zwischen INT6 und SDA eine Lötbrücke erzeugt, 
dabei erreichte VCC6 ca. 1.5V (über die 2k2 Pullups). Der 
PCA9557-Ausgang sollte VCC6 also mindestens etwas anheben können. Mir 
scheint, dass der Ausgangstreiber gar nicht erst aktiviert wird.

Interessanterweise funktioniert die I²C-Kommunikation mit dem PCA, 
solange alle Pins als Inputs (High-Z) konfiguriert sind – ich kann die 
internen Register (Output Port, Config) lesen und schreiben. Der Fehler 
(UART-Glitch und später auch I²C-Fehler wie ARBLOST) tritt erst auf, 
wenn ich versuche, einen Pin auf Output zu schalten.

Meine Vermutung ist daher, dass der PCA9557 entweder defekt ist 
(Ausgangstreiber hinüber) oder ein internes Problem hat, das beim 
Versuch des Ausgangsschaltens massive Störungen verursacht.

Ich werde jetzt wohl oder übel versuchen müssen, den Chip zu tauschen 
oder eine externe Frankenstein-Lösung zu finden. Für alle vier TMAGs 
sind wohl MOSFETs dringend nötig - und ich dachte beim Suchen nach 
Portexpandern schon, ich hätte die Ausnahme gefunden. I²C LED-Treiber 
habe ich auch nur oder in der Regel als Sink gefunden, nicht als Source.

Danke nochmal und Grüße,
Martin

von Rainer W. (rawi)


Lesenswert?

Martin M. schrieb:
> Meine Vermutung ist daher, dass der PCA9557 entweder defekt ist
> (Ausgangstreiber hinüber) oder ein internes Problem hat, das beim
> Versuch des Ausgangsschaltens massive Störungen verursacht.

Softwarefehler sind natürlich ausgeschlossen ;-)

Die TMAG5273 sind damit einverstanden, dass ihnen VCC abgeschaltet wird, 
während andere Signale (SDA, SCL) noch aktiv sind?

Der PCA9557 bekommt einen sauberen Pon Reset?

Martin M. schrieb:
> ... glitscht mein Debug UART herum, bzw. es kommt nur noch Müll an.

Sehr blumige Fehlerbeschreibung. Was heißt das messtechnisch?

: Bearbeitet durch User
von Martin M. (bdb)


Angehängte Dateien:

Lesenswert?

Hallo Rainer,

ich gebe zu dass ich gerade "faul" bin und Claude 3.7 / Gemini 2.5 Pro 
Preview 03-25 arbeiten lasse bzw. den LLM-Dompteur gebe.

Nach dem Abgleichen (hineinwerfen) aller Spezifikationen die in den 
Dateblättern / Google zu finden sind, erklärt das für mich nicht das 
totale abschmieren des UART. Es scheint mehr so, als würde der interne 
Oszillator des Tiny aus dem Takt kommen - allerdings habe ich gerade 
kein Oszi zur Hand und kann das nicht bestätigen. Ich hatte schon 
Probleme mit der 20MHz Clockeinstellung des Tiny, der läuft dabei mit 
rechnerisch 26MHz bzw. liefert 1,29kHz wenn der Timer eigentlich 1kHz an 
PB6 ausgeben sollte (Bei 16MHz sind es dann 988Hz).

Ich werde das ganze nochmal umwerfen müssen - ich war einfach zu 
ungeduldig und habe keinen Prototyp gebaut sondern etwas dass man mit 
ner zitternden linken Hand nicht Debuggen bzw. messen kann.

> Die TMAG5273 sind damit einverstanden, dass ihnen VCC abgeschaltet wird,
> während andere Signale (SDA, SCL) noch aktiv sind?

Dieser Weg wird im Datenblatt des TMAG5273 auf Seite 36 vorgeschlagen, 
ich vermutete aktuell eher, das meine geschaltete Pullup-Implementierung 
für die INTx Leitungen problematisch ist, der Pin scheint aber ähnlich 
den I2C Pins designt zu sein.

> Der PCA9557 bekommt einen sauberen Pon Reset?

Der soweit ich es sehe, ich muss das noch bestätigen, ist VCC im 
gegebenen Rahmen bzw. <10ms bei 3,3V - das sollte meiner Meinung nach Ok 
sein. Man merkt allerdings, dass der PCA ohne einen Power-cycle nach dem 
Flashen des tiny anders - oder nicht - reagiert.
1
-- System Initialized (DEBUG MODE) ---                                                                                                                                                 
2
F_CPU: 16000000 Hz, TWI Freq Set: 100kHz, TWI0.MBAUD = 15                                                                                                                               
3
                                                                                                                                                                                        
4
--- Testing PCA9557 Output Switching (State Machine) ---                                                                                                                                
5
Setting Pin 4 to Input (High-Z)...                                                                                                                                                      
6
TWI Start: Bus not idle (0x2), forcing idle�-T���CTWI ERROR!TWI ERROR! Flags: ARBLOST  MSTATUS=0x4B                                                                                     
7
PCA9557 Init ERROR: Failed to write Config register.                                                                                                                                    
8
FATAL: PCA9557 Init Failed!                                                                                                                                                             
9
TWI Start: Bus not idle (0x2), forcing idle.                                                                                                                                            
10
PCA9557 Initialized (All pins High-Z).                                                                                                                                                  
11
                                                                                                                                                                                        
12
--- System Initialized (DEBUG MODE) ---                                                                                                                                                 
13
F_CPU: 16000000 Hz, TWI Freq Set: 100kHz, TWI0.MBAUD = 75                                                                                                                               
14
                                                                                                                                                                                        
15
--- Testing PCA9557 Output Switching (State Machine) ---                                                                                                                                
16
Setting Pin 4 to Input (High-Z)...                                                                                                                                                      
17
TWI Start: Bus not idle (0x2), forcing idle��۱�ׯ�

Ich habe das LLM gerade dazu genötigt alles in einer State-Machine zu 
steuern - falls sich jemand den Code ansieht (oder antuen möchte)..

Schöne Grüße,
Martin

von Martin M. (bdb)


Lesenswert?

Vielleicht liege ich mit dem Takt des Tiny gar nicht so falsch, wenn ich 
es richtig interpretiere ist der bei 3,3V mit maximal 10MHz 
spezifiziert.. Oh Boy..

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.