Gibt es ein Standard-I2C / SM-Busprotokoll für Laptop-Akkus?

7

Ich baue einen Laptop mit einem benutzerdefinierten Akku. Ich weiß, dass das Paket über einen I2C / SM-Port auf dem Motherboard kommunizieren muss, aber ich weiß nicht, wie das BIOS / OS dies erkennen soll. Gibt es zusätzlich zu I2C eine bestimmte I2C-Adresse und ein bestimmtes Standardprotokoll für den Austausch von Informationen zum Batteriezustand? Wenn ja - wo finde ich die Dokumentation dazu? Wenn nein - ist das Protokoll nur Eigentum des BIOS-Herstellers und wird es dann vom Betriebssystem aus dem BIOS gelesen? Ich werde I2C vom Mikrocontroller, der die Batterie reguliert, bitbangen, damit ich alles tun kann, was benötigt wird.

SE
quelle

Antworten:

3

Es gibt keinen wirklichen Standard. [Bearbeiten: Da liege ich falsch - siehe andere Antwort]

Die meisten Batterien werden jedoch mehr oder weniger auf die gleiche Weise hergestellt: Sie verfügen über einen I2C-EEPROM-Chip (häufig nach Industriestandard), der alle statischen Informationen über die Batterie enthält (Modell, Seriennummer, Herstellungsdatum, Kapazität usw.). ..) und einen weiteren Chip namens "Batterie-Gasanzeige" oder "Batterie-Kraftstoffanzeige", der den tatsächlichen Ladezustand und alle dynamischen Dinge überwacht.

TI bietet eine ganze Reihe von Batterieanzeige-Chips an: http://www.ti.com/lsds/ti/power-management/battery-fuel-gauge-overview.page . Möglicherweise enthält der Akku Ihres Laptops einen solchen Chip.

Im Grunde weiß nur der Laptop-Hersteller genau, wie man mit dem Akku kommuniziert, aber alles basiert normalerweise auf allgemein verfügbaren, dokumentierten Chips (naja, es könnte auch eine zusätzliche MCU mit proprietärer Firmware geben, die sich eventuell um zusätzliche Dinge kümmert ). Wenn Sie also eine Batterie rückentwickeln müssen, haben Sie möglicherweise eine Chance, tatsächlich erfolgreich zu sein. Hier ist ein Dokument, das interessante Informationen bietet: Batterie-Firmware-Hacking

Nun zum Softwareteil: In der Tat enthält das Unternehmen, das das BIOS auf der Grundlage der vom Laptop- / Batteriehersteller bereitgestellten Informationen erstellt, alle relevanten I2C-Nachrichten im BIOS selbst, und das Betriebssystem fragt das BIOS, wann es dies wissen muss.

dim
quelle
Vielen Dank, es sieht so aus, als müsste ich ein Reverse Engineering für einen Laptop-Akku durchführen, um herauszufinden, welche Pakete tatsächlich gesendet werden, aber zumindest kann ich ziemlich sicher sein, dass es mit jedem BIOS funktioniert, da die Chips Standard sind
SE
Ich benutze keinen Standard-Laptop-Akku, der diese Chips bereits hätte
SE
Es scheint, ich hatte nicht wirklich Recht. Tom L fand eine echte Spezifikation, die mir nicht bekannt war. Du solltest seine Antwort besser akzeptieren als meine, er hat es besser verdient.
Dim
Ja, ich habe nur ein wenig durch die Spezifikation geblättert, um sicherzugehen, dass sie tatsächlich das hat, wonach ich gesucht habe.
SE
Mach dir keine Sorgen; in der Tat haben Sie teilweise recht. Viele reale Packs werden mit der genannten Spezifikation geliefert, ABER in der Spezifikation wurde auch ein "Hersteller" -Datenblock angegeben. Wenn Sie ihn nicht selbst angeben, kann dies alles sein - angefangen von einer einfachen Zeichenfolge bis hin zu einem verschlüsselten Datenblock.
Tom L.