#To read backup battery voltage, charging must be enabled i2cset -f -y 1 0x4b 0x6d 0x1c #Have to write to GPBR1, located at I2C address 0x49, register 0x91 i2cset -f -y 1 0x49 0x91 0x90 #Turn on the ADC, write 0x1 to CTRL1 i2cset -f -y 1 0x4a 0x00 0x01 #Enable ADCIN, write 0xff to SW1SELECT_LSB i2cset -f -y 1 0x4a 0x06 0xff #Enable ADCIN, write 0xff to SW1SELECT_MSB i2cset -f -y 1 0x4a 0x07 0xff #Enable VBAT prescaler, write 0x2 to BCICTL1. i2cset -f -y 1 0x4a 0x97 0x02 #Start Conversion, write 0x20 to CTRL_SW1 i2cset -f -y 1 0x4a 0x12 0x20 sleep 1 #ADC9 GPCH9_LSB=`i2cget -f -y 1 0x4a 0x49` echo "GPCH9_LSB is $GPCH9_LSB" GPCH9_MSB=`i2cget -f -y 1 0x4a 0x4a` echo "GPCH9_MSB is $GPCH9_MSB" #ADC12 GPCH12_LSB=`i2cget -f -y 1 0x4a 0x4f` echo "GPCH12_LSB is $GPCH12_LSB" GPCH12_MSB=`i2cget -f -y 1 0x4a 0x50` echo "GPCH12_MSB is $GPCH12_MSB" let ADC9=`printf %d $GPCH9_LSB`/64+`printf %d $GPCH9_MSB`*4 let ADC12=`printf %d $GPCH12_LSB`/64+`printf %d $GPCH12_MSB`*4 let VAL9=($ADC9*4399)/1000 let VAL12=($ADC12*5865)/1000 echo "ADC9 value is $ADC9 , $VAL9 millivolts Backup Battery voltage" echo "ADC12 value is $ADC12 , $VAL12 millivolts Main Battery Voltage"