Forum: Mikrocontroller und Digitale Elektronik Prüfung Schaltplan Power Profiler


von Eduard I. (eduard_i)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hab zwar einen PPK2, aber das passt nicht überall (z.B. uC in einem 
BMS an einem 7S-Akku). Deshalb habe ich mir auf Basis des INA239 einen 
Power Profiler gebaut. Hat jemand Lust, mal über den Schaltplan zu 
schauen? Ich bin sehr dankbar dafür.
Das QSPI und die SD-Karte sind dazu da, dass der Profiler auch eine 
Weile aufzeichnen kann ohne dass ein Laptop/PC am USB hängt. Zudem ist 
die Funktion ganz nützlich, wenn man galvanisch getrennt messen will.
Um Strom zu sparen, wird der DC/DC bei ausgeschaltetem Gerät oder langen 
Aufzeichnungsintervallen ausgeschaltet. Er kann über die RTC (PC13), den 
OK-Button oder durch einstecken der USB-Versorgung oder der 5V vom JLink 
Adapter wieder eingeschaltet werden. Der uC kann dann die Selbsthaltung 
über ENABLE DC/DC aktivieren.
Dazu wird die RTC über eine Schottky-Diode direkt von der Batterie, nach 
de Gas Gauge, gespeist.

LG, Eduard

von Eduard I. (eduard_i)


Lesenswert?

Ah, sorry, hab gerade noch einen Copy-Paste-Fehler gesehen: Beim J301 
sollte Battery, nicht OLED stehen.

von Nemopuk (nemopuk)


Lesenswert?

Brauchen deine Buttons keine Pull-Widersände?

Wenn du dem OLED di Spannungsversorgung aus schaltest, darfst du keine 
HIGH Pegel mehr auf dem I²C Bus haben. Hast du aber (wegen der Pull-Up 
Widerstände). Du könntest die beiden Leitungen per Software auf LOW 
ziehen, um die Bedingung einzuhalten. Es hängt ja sonst nichts dran.

10 kΩ Pull-Ups wären mir zu hochohmig, ich rechne immer mit 1-2 mA.

Siehe https://www.nxp.com/docs/en/user-guide/UM10204.pdf Kapitel 7.1

von Eduard I. (eduard_i)


Lesenswert?

Hallo Nepomuk,

danke fürs drüberschauen.
Zu den Pull-Ups: Das macht der Controller. Beim ButtonOK ist im 
Ausgeschalteten Zustand der Pull-Up via R302 (1k) und R303 (1M) 
vorhanden.

Die I2C-Leitungen gehen auch zur Gas Gauge. Die kann ich ja auch über 
eine PFET Parallel zur OLED-Versorgung schalten, oder?
Die Pull Ups werde ich dann zu 2k ändern, dann bin ich bei 1.5mA.

Danke und LG, Eduard

von Nemopuk (nemopuk)


Lesenswert?

Eduard I. schrieb:
> Zu den Pull-Ups: Das macht der Controller.

Ich hoffe, du hast Taster eingeplant, die keinen Wetting Current 
brauchen. Ich habe leider zu viele Geräte gesehen, deren Taster genau 
deswegen degradierten. Im Zweifelsfall empfehle ich mindestens 1 mA, 
besser mehr.

Eduard I. schrieb:
> Die I2C Leitungen kann ich ja auch über eine PFET Parallel
> zur OLED-Versorgung  schalten, oder?

Vermutlich nicht, weil die Leitungen bidirektional arbeiten. Warum 
schaltest du das Display nicht per Befehl in einen Ruhezustand?

von Eduard I. (eduard_i)


Angehängte Dateien:

Lesenswert?

Ich bin nochmals in mich gegangen. Ich brauche natürlich N-Fets, um die 
SDA und SCL-Leitung zu schalten. So wie im Anhang. Korrekt, oder?

von Anton (antang)


Lesenswert?

Alle STM32, die mir bisher unterkamen, haben die Widerstände für D+ und 
D- eingebaut. R210 und R220 sollten also 0 Ω haben.

Andererseits baue ich üblicherweise einen Serienwiderstand in die 
MISO-Leitung zwischen INA229/INA239 und der MCU ein, ich hatte schon 
Probleme mit Reflektionen. In der Gegenrichtung kann man die 
Flankensteilheit per Software einstellen.

Der ESD-Schutz für R212 und R213 ist unnötig.

D201, D202 und D203 sollten uni-direktional sein, denn der INA239 mag es 
nicht, wenn VBUS, IN+ oder IN- negativ werden.

Da fehlt eine Sicherung (analog F201) in der Leitung zu J204.4.

Ist 5A für die Sicherungen nicht etwas viel für die armen TVS-Dioden? 
Ist SMJ85CA ein Tippfehler für SMBJ85CA?

Für D+ und D- bevorzuge ich den USBLC6-2SC6 gegenüber dem USBLC6-4SC6, 
damit werden Stichleitungen reduziert. Da der STM32L476 aber eh nur 
LS/FS kann, ist das hier kein Problem.

PC13 sollte man lieber nicht benutzen, kann den LSE stören.

von Eduard I. (eduard_i)


Lesenswert?

Nemopuk schrieb:
> Vermutlich nicht, weil die Leitungen bidirektional arbeiten. Warum
> schaltest du das Display nicht per Befehl in einen Ruhezustand?

Hallo Nepomuk,

guter Punkt, ich hab gerade mal nachgeschaut. Das SSD1306 brauch <5uA im 
Sleep Mode. Du hast absolut recht, da muss ich nix schalten, bei den 6Ah 
Akku hat das kaum einen Einfluss auf die Laufzeit. Ich hatte übersehen, 
dass die Ladungspumpen im Sleep ausgeschaltet werden.

Danke für den Wink mit dem Zaunpfahl.

von Eduard I. (eduard_i)


Lesenswert?

Hallo Anton,

herzlichen Dank für Deinen wertvollen Input. Noch eine Frage:

Anton schrieb:
> PC13 sollte man lieber nicht benutzen, kann den LSE stören.
Was wäre die alternative? Ich wollte eigentlich PC13 nutzen, um den 
DC/DC per RTC starten zu können, um zum Beispiel der Gas Gauge die 
Batterietemperatur zu übergeben oder bei Messungen mit sehr langem 
Intervall zwischendurch den DC/DC auszuschalten.

Danke und Gruss, Eduard

von Anton (antang)


Lesenswert?

Mit den angegebenen Werten von R307 und R308 liefert der TPS63020 3,0 V, 
nicht wie beschriftet, 3,3 V.

Der TPS63020 möchte 3x 22 µF am Ausgang, bekommt aber nur 5x 10µF plus 
100 nF. Das Datenblatt sagt nicht, daß der DC Bias eingerechnet ist.

von Anton (antang)


Lesenswert?

Nur PC13 sollte vermieden werden.

von Anton (antang)


Lesenswert?

Korrektur: Es sind nur 4x 10µF, nicht 5x.

von Anton (antang)


Lesenswert?

Wenn Dir die Pins ausgehen, kannst Du einen INA238 statt INA239 
verwenden. Aber ENABLE_OLED hat sich ja eh als überflüssig 
herausgestellt.

von Bauform B. (bauformb)


Lesenswert?

Eduard I. schrieb:
> Anton schrieb:
>> PC13 sollte man lieber nicht benutzen, kann den LSE stören.
> Was wäre die alternative?

Ein externer 32kHz-Oszillator, z.B. OV-7604-C7 oder 
SIT1630AI-S4-DCC-32.768E.

von Eduard I. (eduard_i)


Lesenswert?

Hallo Anton,

Anton schrieb:
> Der TPS63020 möchte 3x 22 µF am Ausgang, bekommt aber nur 5x 10µF plus
> 100 nF. Das Datenblatt sagt nicht, daß der DC Bias eingerechnet ist.

Mit den 3V hast Du natürlich recht, danke. Da habe ich vergessen, die 
Beschriftung zu ändern.
Wegen den Ausgangskondensatoren... Webbench schlägt da 3X10uF/6.3V vor. 
Ich habe 4x10uF/25V vorgesehen, das wären dann Effektiv bei 3V so um die 
36.9uF, wenn wir von einem DC-Derating von 8% ausgehen. Mit
Komme ich bei einer Frequenz von 2.4Mhz und einer Eingangsspannung von 
4.2V auf 238mA Ripplestrom in der Spule. Das ergibt dann nach
eine Ausgangsripplespannung von < 350uV (Ich ignoriere jetzt mal den ESR 
der Kondensatoren, der liegt bei um die 0.72 mΩ.
Sollte doch in Ordnung sein, oder Übersehe ich da was? Natürlich ist das 
der Idealwert, das Platinendesign wird da die entscheidende Rolle 
spielen.
Im Power Save Mode wird der Rippel dann ca. die 25mV Hysterese des PSM 
sein, oder?

von Eduard I. (eduard_i)


Lesenswert?

Anton schrieb:
> Wenn Dir die Pins ausgehen, kannst Du einen INA238 statt INA239
> verwenden. Aber ENABLE_OLED hat sich ja eh als überflüssig
> herausgestellt.

Den kannte ich noch gar nicht, der ist Durchaus eine Überlegung Wert, 
vor allem da die Offsetspannung einiges geringer ist als beim INA239.
Nochmals zum PC13: Die RTC kann aber gar keinen andern Pin als den PC13 
zum Aufwecken nutzen?

LG, Eduard

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

SD-Karten haben ziemlich fiese Lastspitzen mit mehreren Hundert mA, 
gerade wenn man schnell schreibt (was du ja per SDMMC machst). Eventuell 
wäre ein größerer Pufferkondensator sinnvoll, und vielleicht ein FET mit 
geringerem R_DSON. Oder gleich ein Load-Switch.

von Marian E. (lamem_g)


Lesenswert?

Q304 und Q305 sind falsch herum ;-)

von Bauform B. (bauformb)


Lesenswert?

Eduard I. schrieb:
> Die RTC kann aber gar keinen andern Pin als den PC13
> zum Aufwecken nutzen?

Ja, das ist der einzige Pin, der aus VBAT versorgt wird (neben PC14 und 
PC15, aber die brauchst du ja anderweitig). Du kannst entweder den LSE 
oder den PC13 benutzen. Also vergiss den LSE und benutze PC13, die 32kHz 
kann man auch extern erzeugen und das zuverlässiger und genauer.

Noch besser: vergiss die ganze interne RTC und spendiere einen RTC-Chip 
mit integriertem Quarz. Der INT-Ausgang ersetzt dann den PC13. INT ist 
Open Drain, also aktiv Low. Du kannst den parallel zum OK-Button 
anschließen. Das spart auch die zwei lästigen 18pF.

Wenn der Akku abgeklemmt wird, muss die Uhr neu gestellt werden. Um das 
zu überbrücken, gibt es RTC-Chips mit integrierter Ladeschaltung für 
SuperCaps, z.B. RV-3032-C7. Der hat auch ein sehr gutes 
Preis-Leistungs-Verhältnis.

von Anton (antang)


Lesenswert?

Die offizielle Lösung für das PC13-Problem ist, den STM32L476MGYxT zu 
verwenden.

von Anton (antang)


Lesenswert?

Eduard I. schrieb:
> Anton schrieb:
>> Wenn Dir die Pins ausgehen, kannst Du einen INA238 statt INA239
>> verwenden. Aber ENABLE_OLED hat sich ja eh als überflüssig
>> herausgestellt.
>
> Den kannte ich noch gar nicht, der ist Durchaus eine Überlegung Wert,
> vor allem da die Offsetspannung einiges geringer ist als beim INA239.

Nein, INA238 und INA239 sind bis auf SPI vs. I²C identisch. Vielleicht 
schautest Du ins Datenblatt des INA228 (I²C) oder INA229 (SPI)?

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.