Forum: Mikrocontroller und Digitale Elektronik SM-Bus (Akkupack) Fragen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Andy (Gast)


Lesenswert?

Hi zusammen,

ich bin grade drann ein Ladegerät zu Recyceln bei welchem 8 Stück 
Akkupacks aus dem Funksektor auf einmal geladen werden können.
Die Originalelektronik ist durch Überspannung (Blitz) ein Totalschaden 
da geht nix mehr... Die kommt auf den Schrott nachdem ich mir das 
Pinning abgezeichnet habe.

Die Akkus sind "Smart" im Inneren der Akkupacks ist ein bq2040 nebst 
mini EEprom drin. SMbus ist ja das gleich wie I2C, nur mit max. 100Khz 
Takt, habe ich mir angelesen. Sollte mit einem ATmega also kein Problem 
sein.

Es sind aber einige Fragen Offen:

1. Die I2C-Pins vom uC müssen ja an der Ladeschale anliegen damit dieser 
mit dem Akku kommunizieren kann. Muss ich diese uC-Seitig irgendwie 
Schützen? z.B. durch einen Serienwiderstand o.ä? Im Akku sind nämlich 
welche drin. Der Hersteller hat sich beim Fertigen des Akkupacks sehr 
genau an die Appnote im Datasheet gehalten.

2. Sehe ich das Richtig das mir das IC vorgibt mit welchem Strom geladen 
werden muss? Als Konstantstromquelle dachte ich an einen Schaltregler 
(LM2574-ADJ mit Stromshunt) damit das nicht so Heizt... Auf der Alten 
Platine War ein MAX1647 drauf, leider alle hin... :-(

3. Der bq2040 meldet mir wenn der Akku Voll ist über den I2C. Diesen 
muss ich diesen Zyklisch abfragen laut Datenblatt. Wie schnell muss ich 
dann Abschalten (den Ladestrom?), bzw. wie oft muss ich das IC abfragen?


Jeder Ladeschacht bekommt seine eigene Miniplatine mit einem ATmega 168 
drauf. I2C-Expander brauche ich da also nicht da die Bussysteme nicht 
verbunden sind. Speisung erfolgt mit 24VDC aus einem Mean-Well 
Schaltnetzteil. Jeder Controller meldet auf Anfrage des 
Displaycontrollers seinen Status.

Es Handelt sich um 4-Zellige NiMh Akkupacks.

Programmieren werde ich das ganze in Bascom, in C bin ich vor ein paar 
Wochen gerade erst eingestiegen und noch am Lernen. Da bin ich noch 
nicht so "Sattelfest". Kommt aber hoffentlich noch :-)

Grüße
Andy

von User (Gast)


Lesenswert?

Du suchst die Spezifikation des "Smart Battery Chargers":

http://sbs-forum.org/specs/sbc110.pdf

von User (Gast)


Lesenswert?

Auf Seite 21 ist der Ablauf.

von Andy (Gast)


Lesenswert?

@User,

danke das sieht sehr gut aus, werde ich mir gleich mal reinziehen.

Wegen der SM-Bus Pins vom uC zur Ladeschale habe ich aber immer noch nen 
ungutes gefühl diese so "ungeschützt" rauszuführen...

von Andy (Gast)


Lesenswert?

So,

ich schon wieder.... :-)

Ich habe mich wegen der Tatsache das ich davon schon nen haufen da habe 
als Konstantstromquelle auf den LM2574-ADJ festgelegt. Strommessung 
erfolgt über einen Shunt von 0.1Ohm GND-Seitig. Den Spannungsabfall am 
Widerstand verstärke ich mit einem OP dann auf die 1,25V die der LM2574 
an seinem ADJ Pin haben will. Ein/Ausschalten werde ich den LM2574 mit 
seinem Enable-Pin über einen SMD NPN-Transistor..

Dazu habe ich eine Frage:
Da sich durch den Shunt das Massepotential etwas anhebt, gibt das 
Probleme mit der I2C Kommunikation? Ladestrom ist ca. 150-200mA. Der 
Spannungsabfall am Shunt ist also sehr gering...


Grüße
Andy

von Helge A. (besupreme)


Lesenswert?

Dagegen muß du das I2C absichern. Es kann ja sein, daß nur (+) und die 
Datenleitungen dranstecken und Akku-Masse einen Wackelkontakt hat. Der 
geringe Spannungsunterschied ist dann mit abgefangen.

von Andy (Gast)


Lesenswert?

hmmm, da hast du recht...

Absicherung mittels serienwiderständen in den i2c Leitungen?

von Helge A. (besupreme)


Lesenswert?

Wäre mein Vorgehen, wenn ich das bauen wollte. Die können ja auch recht 
groß werden, ein paar Bits pro Sekunde reichen ja aus.

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.