Hallo, ich möchte meine LiIonen-Akku über die I2C-Schnittstelle mit einem ATmega16 verbinden und dessen Register auslesen. In der Akkuschutzschaltung wurde ein GAS-GAUGE-IC von der Firma TI verwendet. Typ ist der bq78PL116. Kann jemand mir erzählen wie ich die Ladung der Batterie mittels I2C auslese, oder eine Bsp in C wäre gut?
Diese Informationen lassen sich ohne weiteres aus dem Datenblatt ableiten. Auf Seite 17 findest du einen Verweis auf die Smart-Battery-Data Spezifikation. Seite 18 beglückt dich mit den Befehlen, die das IC beherrscht. 0x00 bis 0x3F entsprechen der SBData-Spezifikation. Ein bisschen Suchen brachte mich dann auf http://sbs-forum.org/specs/sbdat110.pdf - wo SBData beschrieben ist. Ja, es ist viel Text, aber meiner Meinung nach eigentlich gut um zu setzen. Ein Beispiel an sich habe ich nicht, da ich mich mit dem Auslesen solcher ICs noch nicht befasst habe.
Ich kann keine Einschränkungen der Transfers (*) finden, also probier es einfach mit "ganz normalem I²C" --> https://www.mikrocontroller.net/articles/AVR_TWI Ich weiß leider nicht mehr auswendig, wie es beim AVR läuft. Prinzipiell sollte es so ablaufen: 1. START setzen 2. Slave-Addresse + Write-Bit schreiben 3. Register-Adresse (z.B. 0x0F) schreiben 4. REPEATED_START setzen 5. Slave-Addresse + Read-Bit schreiben 7. STOP setzen 8. Daten lesen (*): es gibt SMBUS devices, die z.B. nur Block Transfers unterstützen.
Google gibt Dir Beispiele ohne Ende... z.B. Beitrag "AVR TWI Master und Slave Funtionen in C" Dort TWI_Master.c anschauen und einfach meiner Beschreibung folgen. Also 0. TWIM_Init(100000); 1. TWIM_Start(DeviceAdresse, TWIM_WRITE); 2. TWIM_Write(0x0F); 3. TWIM_Start(DeviceAdresse, TWIM_READ); 4. TWIM_ReadNack(); 5. TWIM_Stop();
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.