HI support team.
i see Max17303 datasheet said that:
Set DISOff, CHGOff to 1 to forcefully turn off DIS FET, CHG FET ignoring all other conditions if nProtCfg.CmOvrdEn is enabled.
I wrote 1 to DISOff, CHGOff bit. And set nProtCfg.CmOvrdEn = 1 but can not turn off DIS FET, CHG FET.
//Enable nProtCfg.CmOvrdEn in nProtCfg Register (1D7h)
data = MAX1730X_Read_Word_From_Register(MAX1730X_ADDR1, 0xD7);
data |= 0x0400;
MAX1730X_Write_Word_To_Register(MAX1730X_ADDR1, 0xD7, data);
//Set DISOff, CHGOff to 1 in CommStat Register (061h)
data = MAX1730X_Read_Word_From_Register(MAX1730X_ADDR0, 0x61);
data |= 0x0300;
MAX1730X_Write_Word_To_Register(MAX1730X_ADDR0, 0x61, data);
/**Diplays result**/
.....
data = MAX1730X_Read_Word_From_Register(MAX1730X_ADDR1, 0xD7);
NRF_LOG_INFO("(nProtCfg) 1D7h: 0x%04x ", data);
data = MAX1730X_Read_Word_From_Register(MAX1730X_ADDR0, 0x61);
NRF_LOG_INFO("(CommStat) 061h: 0x%04x ", data);
debug result:
You can see all i successfull write DISOff, CHGOff to 1.
D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
X | X | X | X | X | X | DISOff | CHGOff | X | X | X | X | X | NVError | NVBusy | X |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0h | 3h | 0h | 0h |
And set nProtCfg.CmOvrdEn = 1
D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
ChgWDTn | 0 | 0 | SCTest | CmOvrdEn | 1 | Reserved | Reserved | PFEn | DeepShpEn | OvrdEn | UVRdy | FetPFEn | BlockDisCEn | DeepShp2En | |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
0h | Eh | 5h | 0h |
Why i can not turn off DIS FET, CHG FET?
Do i miss any setup for register?
add part number mac17303
[edited by: QuangCa at 7:30 PM (GMT -4) on 15 Jun 2024]