Hello MPS Support Team,
I am interfacing the MP2797 with an ESP32 over I²C and would like to implement the High-Resolution ADC scan without using the MPS Desktop Tool.
My objective is to trigger a High-Resolution ADC scan every 1 second and read:
-
PACKP voltage (Register 0x69)
-
NTC1–NTC4 high-resolution ADC values (Registers 0x8F–0x8C)
I have read the datasheet and understand the following registers:
-
ADC_STS (0x98)
-
ADC_CTRL (0x99)
-
HR_SCAN0 (0x9C)
My current sequence is:
-
Configure the required HR_SCAN registers.
-
Set ADC_CTRL[0] (ADC_SCAN_GO = 1).
-
Wait for ADC_CTRL[1] (SCAN_DONE_STS = 1).
-
Read registers 0x69 and 0x8C–0x8F.
However, the values do not update correctly when using my ESP32 firmware.
When I use the MPS Desktop Tool with the same hardware, the PACK voltage and NTC values update correctly.
Could you please clarify the following?
-
What is the complete initialization sequence required before issuing ADC_SCAN_GO?
-
Which HR_SCAN registers and bits must be enabled for PACK voltage and NTC measurements?
-
Is checking ADC_STS[12:11] (INT_SCHEDULER = Ready for feature command) mandatory before starting an ADC scan?
-
Are there any additional registers that must be configured before the High-Resolution ADC scan will update the result registers?
-
Does the MPS Desktop Tool perform any additional initialization or hidden register writes before starting an ADC scan?
-
Is there a recommended MCU polling sequence for High-Resolution ADC conversions?
-
Could you provide a minimal example showing the required I²C write/read sequence to obtain updated PACK voltage and NTC readings every second?
Any guidance or example sequence would be greatly appreciated.
Thank you.