MAX17320
Recommended for New Designs
The MAX17320 is a 38µA IQ stand-alone pack-side fuel gauge IC with protector, battery internal self-discharge detection, and optional SHA-256 authentication...
Datasheet
MAX17320 on Analog.com
;Device = MAX17320 ;Title = EVKIT Configurator Profile Generated on 2025/03/14 08:48:52 [Registers] 0x180 = 0x0000 //nXTable0 Register 0x181 = 0x0000 //nXTable1 Register 0x182 = 0x0000 //nXTable2 Register 0x183 = 0x0000 //nXTable3 Register 0x184 = 0x0000 //nXTable4 Register 0x185 = 0x0000 //nXTable5 Register 0x186 = 0x0000 //nXTable6 Register 0x187 = 0x0000 //nXTable7 Register 0x188 = 0x0000 //nXTable8 Register 0x189 = 0x0000 //nXTable9 Register 0x18A = 0x0000 //nXTable10 Register 0x18B = 0x0000 //nXTable11 Register 0x18C = 0x0000 //nVAlrtTh Register 0x18D = 0x0000 //nTAlrtTh Register 0x18E = 0x0000 //nIAlrtTh Register 0x18F = 0x0000 //nSAlrtTh Register 0x190 = 0x0000 //nOCVTable0 Register 0x191 = 0x0000 //nOCVTable1 Register 0x192 = 0x0000 //nOCVTable2 Register 0x193 = 0x0000 //nOCVTable3 Register 0x194 = 0x0000 //nOCVTable4 Register 0x195 = 0x0000 //nOCVTable5 Register 0x196 = 0x0000 //nOCVTable6 Register 0x197 = 0x0000 //nOCVTable7 Register 0x198 = 0x0000 //nOCVTable8 Register 0x199 = 0x0000 //nOCVTable9 Register 0x19A = 0x0000 //nOCVTable10 Register 0x19B = 0x0000 //nOCVTable11 Register 0x19C = 0x046D //nIChgTerm Register 0x19D = 0x0000 //nFilterCfg Register 0x19E = 0x0000 //nVEmpty Register 0x19F = 0x0000 //nLearnCfg Register 0x1A0 = 0x1050 //nQRTable00 Register 0x1A1 = 0x8002 //nQRTable10 Register 0x1A2 = 0x078C //nQRTable20 Register 0x1A3 = 0x0880 //nQRTable30 Register 0x1A4 = 0x0000 //nCycles Register 0x1A5 = 0x2F20 //nFullCapNom Register 0x1A6 = 0x08CC //nRComp0 Register 0x1A7 = 0x223E //nTempCo Register 0x1A8 = 0x0000 //nBattStatus Register 0x1A9 = 0x28A0 //nFullCapRep Register 0x1AA = 0x0000 //ndQTot Register 0x1AB = 0x0000 //nMaxMinCurr Register 0x1AC = 0x0000 //nMaxMinVolt Register 0x1AD = 0x0000 //nMaxMinTemp Register 0x1AE = 0x0000 //nFaultLog Register 0x1AF = 0x0000 //nTimerH Register 0x1B0 = 0x2290 //nCONFIG Register 0x1B1 = 0x0204 //nRippleCfg Register 0x1B2 = 0x0000 //nMiscCFG Register 0x1B3 = 0x28A0 //nDesignCap Register 0x1B4 = 0x0008 //nSBSCFG Register 0x1B5 = 0x0012 //nPACKCFG Register 0x1B6 = 0x083B //nRelaxCFG Register 0x1B7 = 0x2241 //nConvgCFG Register 0x1B8 = 0x0A80 //nNVCFG0 Register 0x1B9 = 0x0182 //nNVCFG1 Register 0x1BA = 0xBE2D //nNVCFG2 Register 0x1BB = 0x0909 //nHibCFG Register 0x1BC = 0x0000 //nROMID0 Register 0x1BD = 0x0000 //nROMID1 Register 0x1BE = 0x0000 //nROMID2 Register 0x1BF = 0x0000 //nROMID3 Register 0x1C0 = 0x0000 //nChgCtrl1 Register 0x1C1 = 0x0000 //nPReserved1 Register 0x1C2 = 0x2061 //nChgCfg0 Register 0x1C3 = 0x00E1 //nChgCtrl0 Register 0x1C4 = 0x0000 //nRGain Register 0x1C5 = 0x0000 //nPackResistance Register 0x1C6 = 0x0000 //nFullSOCThr Register 0x1C7 = 0x0000 //nTTFCFG Register 0x1C8 = 0x4000 //nCGAIN Register 0x1C9 = 0x0000 //nCGTempCo Register 0x1CA = 0x71BE //nThermCfg Register 0x1CB = 0x0000 //nChgCfg1 Register 0x1CC = 0x0000 //nManfctrName Register 0x1CD = 0x0000 //nManfctrName1 Register 0x1CE = 0x0000 //nManfctrName2 Register 0x1CF = 0x01F4 //nRSense Register 0x1D0 = 0x508C //nUVPrtTh Register 0x1D1 = 0x3700 //nTPrtTh1 Register 0x1D2 = 0x5528 //nTPrtTh3 Register 0x1D3 = 0x4BB5 //nIPrtTh1 Register 0x1D4 = 0x0000 //nBALTh Register 0x1D5 = 0x2D0A //nTPrtTh2 Register 0x1D6 = 0x7A58 //nProtMiscTh Register 0x1D7 = 0x0900 //nProtCfg Register 0x1D8 = 0x644B //nJEITAC Register 0x1D9 = 0x0059 //nJEITAV Register 0x1DA = 0xB754 //nOVPrtTh Register 0x1DB = 0xC884 //nStepChg Register 0x1DC = 0xAB3D //nDelayCfg Register 0x1DD = 0x0EAF //nODSCTh Register 0x1DE = 0x4355 //nODSCCfg Register 0x1DF = 0xA00E //nProtCfg2 Register 0x1E0 = 0x0000 //nDPLimit Register 0x1E1 = 0x0000 //nScOcvLim Register 0x1E2 = 0x0000 //nAgeFcCfg Register 0x1E3 = 0xA5B9 //nDesignVoltage Register 0x1E4 = 0x0000 //nVGain Register 0x1E5 = 0x0000 //nRFastVShdn Register 0x1E6 = 0x0000 //nManfctrDate Register 0x1E7 = 0x0000 //nFirstUsed Register 0x1E8 = 0x0000 //nSerialNumber0 Register 0x1E9 = 0x0000 //nSerialNumber1 Register 0x1EA = 0x0000 //nSerialNumber2 Register 0x1EB = 0x0000 //nDeviceName0 Register 0x1EC = 0x0000 //nDeviceName1 Register 0x1ED = 0x0000 //nDeviceName2 Register 0x1EE = 0x0000 //nDeviceName3 Register 0x1EF = 0x0000 //nDeviceName4 Register
Not sure where I'm going wrong here. Any guidance is appreciated
Datasheets for reference:
https://www.analog.com/media/en/technical-documentation/data-sheets/max17320.pdf
I have found the issue. While using a logic analyzer I was able to detect that when writing to registers like the comm stat and command register, I needed to use i2c address 0x36, but when sending read and write commands to the shadow ram, it needed to use i2c address 0x0B.
I could not find this anywhere in the datasheet and only could discover this by analyzing the logic output from the GUI. If a future revision is made for the datasheet, I think it would be very helpful to make this clear for future reference.