2026-04-04
2:46 AM
- last edited on
2026-04-23
12:40 AM
by
Maxime_MARCHETT
Hi,
Im using the L9963E for a Battery Management System. I noticed that the device has a register called "FSMstatus". I don't understand if reports the current status or the previous status. For example, if the device is in SLEEP, in order to read the FSMstatus register, I have to wake it up, and the device goes to the NORMAL state. Now the FSMstatus reports the SLEEP or NORMAL state?
Unfortunately I cannot try the code.
Solved! Go to Solution.
2026-04-24 12:44 AM
Hi Lorenzo.
L9963E does not have any register called "FSMstatus"
FSMstatus is actually the name of a field of the FSM register [address 0x12]
This register contains the current state of the device.
Regarding exiting from Sleep state, take a look to page 15 of the datasheet:
So, for example, two SPI transactions are required to exit the sleep state.
Probably, you "may" be able to read a sleep state if enough SPI signals are sent faster than the Twakeup.
A good solution to keep trace of the state of your device is to create a "current_FSM" variable in your code, mirroring the FSM of your IC.
Obviously, you have to maintain it updated, reading periodically the FSM register. But you can also change it manually when a GO2SLP command is sent.
If you need help on coding your L9963E application, you may download the AutodevKit Studio IDE.
It contains a lot of C examples which triggers every L9963E BMS functionality.
To understand more, take a look to the AEK_BMS_Getting started GUIDE
Best regards,
Simone
AEK_Team
2026-04-04 12:52 PM
can anyone please :folded_hands: help me out..i am new to this L9961 chip i connected chip to esp8266 i2c got add 0x49 but i cant get voltages or anything from chip n 0x00 register gives 0x41 always.i did put 5v to pin 15 n also high to pin 14 n gnd pin 1-27-13 also n did short c5 c4 for 4s pack n did wiring for cells as per datasheet n tested VB to both external vcc 5v n pack 14v n also connected ntc,pin 11 high but nothing i just want a simple code to get voltages of cells ,current n charge accumulated.i previously used ina219 easily.i am not even a coder if someone can help me with example code for esp32 that will help a lot i did search on google but couldn't find anything.thanks i will appreciate any kind of help 🥹
2026-04-24 12:44 AM
Hi Lorenzo.
L9963E does not have any register called "FSMstatus"
FSMstatus is actually the name of a field of the FSM register [address 0x12]
This register contains the current state of the device.
Regarding exiting from Sleep state, take a look to page 15 of the datasheet:
So, for example, two SPI transactions are required to exit the sleep state.
Probably, you "may" be able to read a sleep state if enough SPI signals are sent faster than the Twakeup.
A good solution to keep trace of the state of your device is to create a "current_FSM" variable in your code, mirroring the FSM of your IC.
Obviously, you have to maintain it updated, reading periodically the FSM register. But you can also change it manually when a GO2SLP command is sent.
If you need help on coding your L9963E application, you may download the AutodevKit Studio IDE.
It contains a lot of C examples which triggers every L9963E BMS functionality.
To understand more, take a look to the AEK_BMS_Getting started GUIDE
Best regards,
Simone
AEK_Team
2026-04-26 2:29 AM
Hi Simone,
thank you for all the information. Eventually I figured it out that the best way to handle the L9963E's FSM is by code and validate it by reading the FSMStatus field, as you suggested.
Thank you for sharing the material on AutodevKit, which I didn't know anything about; it will be helpful as I continue with the development.