I am working on getting our new BMS with the MP2790 up and running. The issue I am having is that I cannot set registers or trigger ADC conversions in the part using i2c. What could be the reason for this?
Here is my procedure:
using the MPS GUI:
On MPS2790 eval write cells 7-1 enabled to register 0. Then read back using GUI and get correct cells 7-1 enabled.
On my BMS board write cell 7-1 enabled to register 0. Then read back using GIU just provides the default value again.
On MPS2790 eval using GUI I can get the ADC to read and get back all cell voltages. On my board the GUI never provides cell voltages and reads back 0V.
You had mentioned that the EV2790 and the GUI worked fine the first time.
When I mentioned checking the wiring, First, I would start with the battery.
Then double check on the following:
VDDIO and VDD are powered and stable.
I2C ACKs transactions via a scope or logic analyzer. Verify that you have proper pull-up resistors are in place. Use the EVB as a reference here.
Also, double check that the I2C slave address is correct.
Be sure the RESET pin is properly deasserted. Some designs leave this pin floating, but please check the evaluation board schematic here for reference.
Cell Input Wiring for cells C0 - C7 needs to be properly connected and biased. Otherwise, ADC conversions may fail, resulting in 0 readings.
We can start with these debugging steps and go from here.
This behaviour can also be seen if you enable CRC and write it verbatim per specsheet. The specsheet on page 39 is wrong. You need to exclude the first two bytes shown in the check sequence.
It was a solder issue I had elsewhere on my board.
I had question regarding the use of the MP2790 in a series / parallel pack configuration. Should I start a new thread for this?
When using the GUI and the EVAL board I get a “FET driver failed fault” error when there is a high capacitive load or voltage present on the Pack output. In parallel pack configuration, voltage may be present on PACK output before enabling the Vpack of the battery.