This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TPS6594-Q1: The register values are wrong

Part Number: TPS6594-Q1
Other Parts Discussed in Thread: TPS6594EVM, SCALABLE-PMIC-GUI

Dear Expert,

      We found that the LDO1_RV_SEL is enable by default on the datasheet and also on the    https://www.ti.com.cn/product/zh-cn/TDA4VM?keyMatch=TDA4VM&tisearch=search-everything&usecase=GPN.But When I read the  LDO1_RV_SEL value by IIC after powered up withou any setting,  the value is 0x00. Other xx_RV_SEL values are also 0x00.

         All the regeisters' vlues we have get by IIC are as follows:

         BUCK1_CTRL 0x7F
         BUCK2_CTRL 0x6
         BUCK3_CTRL 0x0
         BUCK4_CTRL 0x0
         BUCK5_CTRL 0x0
         LDO1_CTRL 0x0
         LDO2_CTRL 0x0
         LDO3_CTRL 0x0
         LDO4_CTRL 0x0

     

       What wrong with this case?

  • Hi,

    What is the full part number of the device you are using and reading these values from?

    Thanks,

    Daniel W

  • Dear Expert,

         My devices is "TPS65941212 + TPS65941111".

          And my IIC interface is as follow.

  • Hi,

    Please see in the user guide for these devices, "When the PMICs transition from the FSM to the PFSM, several initialization instructions are performed to disable the residual voltage checks on both the BUCK and LDO regulators and set the FIRST_STARTUP_DONE bit"

    So the device will disable residual voltage after initial powerup.

    Thanks,

    Daniel W

  • Dear Expert,

      Thanks for your reply. I have one more question that how could I disable the residual voltage check when powerup?

  • Hi,

    In order to disable the startup residual voltage check, the residual voltage checks would need to be disabled within the NVM.

    Thanks,

    Daniel W

  • Dear Expert,

    In order to disable the startup residual voltage check, the residual voltage checks would need to be disabled within the NVM.

     Thank you for your reply. How  could I change the NVM configuration by IIC?

  • Hi Menghai,

    The NVM can be changed using the scalable pmic gui

    https://www.ti.com/tool/SCALABLE-PMIC-GUI

    Along with the TPS6594EVM

    https://www.ti.com/tool/TPS6594EVM

    Thanks,

    Daniel W

  • Dear Expert,

        Than you for your reply.

         Now,I want to let the PMIC enter STANDBY Mode so it can skip the residual voltage check when transiting to ACTIVE Mode again. But I found that the VOUT_LDOVINT of the Primary PMIC was still output 1.8V to the secondary PMIC. As a result, the secondary PMIC would not go into STANDBY Mode.How coud I make the  tow PMICs go into STANDBY Mode at the same time and transit to ACTIVE Mode synchronously?

  • Hi Menghai,

    Both pmics will enter standby when primary pmic enable is pulled low because the primary pmic will communicate the trigger to the secondary pmic.

    Thanks,

    Daniel W

  • Hi Daniel,

            Now the PMIC entered STANDBY MODE but the power consumption is about 24mA greater than cutting off the VCCA. What was the curent consumption of PMIC in STANDBY MODE?

  • Hi Menghai,

    You can check if the devices are in standby by probing the outputs. Typical standby current consumption is 50uA per pmic. Are there any other devices connected to VCCA?

    Thanks,

    Daniel W

  • Hi, Daniel,

        When I read the register RTC_CTRL_2 without any config the return value is 0x00. Than I try to set this register to 0x60, but when I read after writing, the return value is still 0x00. 

    But according to the user manual, it is not this value.What's wrong?

  • Hi Menghai,

    What state is the device in when you are trying to read and write this register? What interrupts are active on the device?

    Thanks,

    Daniel W

  • Hi,Daniel

            I think it is in the ACTIVE mode because my TDA4 has been powered up. I read all the registers of the device by the R5F IIC interface as follow, and my code also is pasted.

    Wdg_Main:DEV_REV u8RdDataReg0x01=0x0 ret=1
    Wdg_Main:NVM_CODE_1 u8RdDataReg0x02=0x3c ret=1
    Wdg_Main:NVM_CODE_2 u8RdDataReg0x03=0x7f ret=1
    Wdg_Main:BUCK1_CTRL u8RdDataReg0x04=0x7f ret=1
    Wdg_Main:BUCK1_CONF u8RdDataReg0x05=0xff ret=1
    Wdg_Main:BUCK2_CTRL u8RdDataReg0x06=0x6 ret=1
    Wdg_Main:BUCK2_CONF u8RdDataReg0x07=0xa ret=1
    Wdg_Main:BUCK3_CTRL u8RdDataReg0x08=0x0 ret=1
    Wdg_Main:BUCK3_CONF u8RdDataReg0x09=0xd1 ret=1
    Wdg_Main:BUCK4_CTRL u8RdDataReg0x0A=0x0 ret=1
    Wdg_Main:BUCK4_CONF u8RdDataReg0x0B=0x0 ret=1
    Wdg_Main:BUCK5_CTRL u8RdDataReg0x0C=0x0 ret=1
    Wdg_Main:BUCK5_CONF u8RdDataReg0x0D=0x0 ret=1
    Wdg_Main:BUCK1_VOUT_1 u8RdDataReg0x0E=0x0 ret=1
    Wdg_Main:BUCK1_VOUT_2 u8RdDataReg0x0F=0x0 ret=1
    Wdg_Main:BUCK2_VOUT_1 u8RdDataReg0x10=0x0 ret=1
    Wdg_Main:BUCK2_VOUT_2 u8RdDataReg0x11=0x0 ret=1
    Wdg_Main:BUCK3_VOUT_1 u8RdDataReg0x12=0x0 ret=1
    Wdg_Main:BUCK3_VOUT_2 u8RdDataReg0x13=0x0 ret=1
    Wdg_Main:BUCK4_VOUT_1 u8RdDataReg0x14=0x0 ret=1
    Wdg_Main:BUCK4_VOUT_2 u8RdDataReg0x15=0x0 ret=1
    Wdg_Main:BUCK5_VOUT_1 u8RdDataReg0x16=0x0 ret=1
    Wdg_Main:BUCK5_VOUT_2 u8RdDataReg0x17=0x0 ret=1
    Wdg_Main:BUCK1_PG_WINDOW u8RdDataReg0x18=0x0 ret=1
    Wdg_Main:BUCK2_PG_WINDOW u8RdDataReg0x19=0x0 ret=1
    Wdg_Main:BUCK3_PG_WINDOW u8RdDataReg0x1A=0x0 ret=1
    Wdg_Main:BUCK4_PG_WINDOW u8RdDataReg0x1B=0x0 ret=1
    Wdg_Main:BUCK5_PG_WINDOW u8RdDataReg0x1C=0x0 ret=1
    Wdg_Main:LDO1_CTRL u8RdDataReg0x1D=0x0 ret=1
    Wdg_Main:LDO2_CTRL u8RdDataReg0x1E=0x0 ret=1
    Wdg_Main:LDO3_CTRL u8RdDataReg0x1F=0x0 ret=1
    Wdg_Main:LDO4_CTRL u8RdDataReg0x20=0x0 ret=1
    Wdg_Main:LDORTC_CTRL u8RdDataReg0x22=0x0 ret=1
    Wdg_Main:LDO1_VOUT u8RdDataReg0x23=0x0 ret=1
    Wdg_Main:LDO2_VOUT u8RdDataReg0x24=0x0 ret=1
    Wdg_Main:LDO3_VOUT u8RdDataReg0x25=0x0 ret=1
    Wdg_Main:LDO4_VOUT u8RdDataReg0x26=0x0 ret=1
    Wdg_Main:LDO1_PG_WINDOW u8RdDataReg0x27=0x0 ret=1
    Wdg_Main:LDO2_PG_WINDOW u8RdDataReg0x28=0x0 ret=1
    Wdg_Main:LDO3_PG_WINDOW u8RdDataReg0x29=0x0 ret=1
    Wdg_Main:LDO4_PG_WINDOW u8RdDataReg0x2A=0x0 ret=1
    Wdg_Main:VCCA_VMON_CTRL u8RdDataReg0x2B=0x0 ret=1
    Wdg_Main:VCCA_PG_WINDOW u8RdDataReg0x2C=0x0 ret=1
    Wdg_Main:GPIO1_CONF u8RdDataReg0x31=0x0 ret=1
    Wdg_Main:GPIO2_CONF u8RdDataReg0x32=0x0 ret=1
    Wdg_Main:GPIO3_CONF u8RdDataReg0x33=0x0 ret=1
    Wdg_Main:GPIO4_CONF u8RdDataReg0x34=0x0 ret=1
    Wdg_Main:GPIO5_CONF u8RdDataReg0x35=0x0 ret=1
    Wdg_Main:GPIO6_CONF u8RdDataReg0x36=0x0 ret=1
    Wdg_Main:GPIO7_CONF u8RdDataReg0x37=0x0 ret=1
    Wdg_Main:GPIO8_CONF u8RdDataReg0x38=0x0 ret=1
    Wdg_Main:GPIO9_CONF u8RdDataReg0x39=0x0 ret=1
    Wdg_Main:GPIO10_CONF u8RdDataReg0x3A=0x0 ret=1
    Wdg_Main:GPIO11_CONF u8RdDataReg0x3B=0x0 ret=1
    Wdg_Main:NPWRON_CONF u8RdDataReg0x3C=0x0 ret=1
    Wdg_Main:GPIO_OUT_1 u8RdDataReg0x3D=0x0 ret=1
    Wdg_Main:GPIO_OUT_2 u8RdDataReg0x3E=0x0 ret=1
    Wdg_Main:GPIO_IN_1 u8RdDataReg0x3F=0x0 ret=1
    Wdg_Main:GPIO_IN_2 u8RdDataReg0x40=0x0 ret=1
    Wdg_Main:RAIL_SEL_1 u8RdDataReg0x41=0x0 ret=1
    Wdg_Main:RAIL_SEL_2 u8RdDataReg0x42=0x0 ret=1
    Wdg_Main:RAIL_SEL_3 u8RdDataReg0x43=0x0 ret=1
    Wdg_Main:FSM_TRIG_SEL_1 u8RdDataReg0x44=0x0 ret=1
    Wdg_Main:FSM_TRIG_SEL_2 u8RdDataReg0x45=0x0 ret=1
    Wdg_Main:FSM_TRIG_MASK_1 u8RdDataReg0x46=0x0 ret=1
    Wdg_Main:FSM_TRIG_MASK_2 u8RdDataReg0x47=0x0 ret=1
    Wdg_Main:FSM_TRIG_MASK_3 u8RdDataReg0x48=0x0 ret=1
    Wdg_Main:MASK_BUCK1_2 u8RdDataReg0x49=0x0 ret=1
    Wdg_Main:MASK_BUCK3_4 u8RdDataReg0x4A=0x0 ret=1
    Wdg_Main:MASK_BUCK5 u8RdDataReg0x4B=0x0 ret=1
    Wdg_Main:MASK_LDO1_2 u8RdDataReg0x4C=0x0 ret=1
    Wdg_Main:MASK_LDO3_4 u8RdDataReg0x4D=0x0 ret=1
    Wdg_Main:MASK_VMON u8RdDataReg0x4E=0x0 ret=1
    Wdg_Main:MASK_GPIO1_8_FALL u8RdDataReg0x4F=0x0 ret=1
    Wdg_Main:MASK_GPIO1_8_RISE u8RdDataReg0x50=0x0 ret=1
    Wdg_Main:MASK_GPIO9_11 u8RdDataReg0x51=0x0 ret=1
    Wdg_Main:MASK_STARTUP u8RdDataReg0x52=0x0 ret=1
    Wdg_Main:MASK_MISC u8RdDataReg0x53=0x0 ret=1
    Wdg_Main:MASK_MODERATE_ERR u8RdDataReg0x54=0x0 ret=1
    Wdg_Main:MASK_FSM_ERR u8RdDataReg0x56=0x0 ret=1
    Wdg_Main:MASK_COMM_ERR u8RdDataReg0x57=0x0 ret=1
    Wdg_Main:MASK_READBACK_ERR u8RdDataReg0x58=0x0 ret=1
    Wdg_Main:MASK_ESM u8RdDataReg0x59=0x0 ret=1
    Wdg_Main:INT_TOP u8RdDataReg0x5A=0x0 ret=1
    Wdg_Main:INT_BUCK u8RdDataReg0x5B=0x0 ret=1
    Wdg_Main:INT_BUCK1_2 u8RdDataReg0x5C=0x0 ret=1
    Wdg_Main:INT_BUCK3_4 u8RdDataReg0x5D=0x0 ret=1
    Wdg_Main:INT_BUCK5 u8RdDataReg0x5E=0x0 ret=1
    Wdg_Main:INT_LDO_VMON u8RdDataReg0x5F=0x0 ret=1
    Wdg_Main:INT_LDO1_2 u8RdDataReg0x60=0x0 ret=1
    Wdg_Main:INT_LDO3_4 u8RdDataReg0x61=0x0 ret=1
    Wdg_Main:INT_VMON u8RdDataReg0x62=0x0 ret=1
    Wdg_Main:INT_GPIO u8RdDataReg0x63=0x0 ret=1
    Wdg_Main:INT_GPIO1_8 u8RdDataReg0x64=0x0 ret=1
    Wdg_Main:INT_STARTUP u8RdDataReg0x65=0x0 ret=1
    Wdg_Main:INT_MISC u8RdDataReg0x66=0x0 ret=1
    Wdg_Main:INT_MODERATE_ERR u8RdDataReg0x67=0x0 ret=1
    Wdg_Main:INT_SEVERE_ERR u8RdDataReg0x68=0x0 ret=1
    Wdg_Main:INT_FSM_ERR u8RdDataReg0x69=0x0 ret=1
    Wdg_Main:INT_COMM_ERR u8RdDataReg0x6A=0x0 ret=1
    Wdg_Main:INT_READBACK_ERR u8RdDataReg0x6B=0x0 ret=1
    Wdg_Main:INT_ESM u8RdDataReg0x6C=0x0 ret=1
    Wdg_Main:STAT_BUCK1_2 u8RdDataReg0x6D=0x0 ret=1
    Wdg_Main:STAT_BUCK3_4 u8RdDataReg0x6E=0x0 ret=1
    Wdg_Main:STAT_BUCK5 u8RdDataReg0x6F=0x0 ret=1
    Wdg_Main:STAT_LDO1_2 u8RdDataReg0x70=0x0 ret=1
    Wdg_Main:STAT_LDO3_4 u8RdDataReg0x71=0x0 ret=1
    Wdg_Main:STAT_VMON u8RdDataReg0x72=0x0 ret=1
    Wdg_Main:STAT_STARTUP u8RdDataReg0x73=0x0 ret=1
    Wdg_Main:STAT_MISC u8RdDataReg0x74=0x0 ret=1
    Wdg_Main:STAT_MODERATE_ERR u8RdDataReg0x75=0x0 ret=1
    Wdg_Main:STAT_SEVERE_ERR u8RdDataReg0x76=0x0 ret=1
    Wdg_Main:STAT_READBACK_ERR u8RdDataReg0x77=0x0 ret=1
    Wdg_Main:PGOOD_SEL_1 u8RdDataReg0x78=0x0 ret=1
    Wdg_Main:PGOOD_SEL_2 u8RdDataReg0x79=0x0 ret=1
    Wdg_Main:PGOOD_SEL_3 u8RdDataReg0x7A=0x0 ret=1
    Wdg_Main:PGOOD_SEL_4 u8RdDataReg0x7B=0x0 ret=1
    Wdg_Main:PLL_CTRL u8RdDataReg0x7C=0x0 ret=1
    Wdg_Main:CONFIG_1 u8RdDataReg0x7D=0x0 ret=1
    Wdg_Main:CONFIG_2 u8RdDataReg0x7E=0x0 ret=1
    Wdg_Main:ENABLE_DRV_REG u8RdDataReg0x80=0x0 ret=1
    Wdg_Main:MISC_CTRL u8RdDataReg0x81=0x0 ret=1
    Wdg_Main:ENABLE_DRV_STAT u8RdDataReg0x82=0x0 ret=1
    Wdg_Main:RECOV_CNT_REG_1 u8RdDataReg0x83=0x0 ret=1
    Wdg_Main:RECOV_CNT_REG_2 u8RdDataReg0x84=0x0 ret=1
    Wdg_Main:FSM_I2C_TRIGGERS u8RdDataReg0x85=0x0 ret=1
    Wdg_Main:FSM_NSLEEP_TRIGGERS u8RdDataReg0x86=0x0 ret=1
    Wdg_Main:BUCK_RESET_REG u8RdDataReg0x87=0x0 ret=1
    Wdg_Main:SPREAD_SPECTRUM_1 u8RdDataReg0x88=0x0 ret=1
    Wdg_Main:FREQ_SEL u8RdDataReg0x8A=0x0 ret=1
    Wdg_Main:FSM_STEP_SIZE u8RdDataReg0x8B=0x0 ret=1
    Wdg_Main:LDO_RV_TIMEOUT_REG_1 u8RdDataReg0x8C=0x0 ret=1
    Wdg_Main:LDO_RV_TIMEOUT_REG_2 u8RdDataReg0x8D=0x0 ret=1
    Wdg_Main:USER_SPARE_REGS u8RdDataReg0x8E=0x0 ret=1
    Wdg_Main:ESM_MCU_START_REG u8RdDataReg0x8F=0x0 ret=1
    Wdg_Main:ESM_MCU_DELAY1_REG u8RdDataReg0x90=0x0 ret=1
    Wdg_Main:ESM_MCU_DELAY2_REG u8RdDataReg0x91=0x0 ret=1
    Wdg_Main:ESM_MCU_MODE_CFG u8RdDataReg0x92=0x0 ret=1
    Wdg_Main:ESM_MCU_HMAX_REG u8RdDataReg0x93=0x0 ret=1
    Wdg_Main:ESM_MCU_HMIN_REG u8RdDataReg0x94=0x0 ret=1
    Wdg_Main:ESM_MCU_LMAX_REG u8RdDataReg0x95=0x0 ret=1
    Wdg_Main:ESM_MCU_LMIN_REG u8RdDataReg0x96=0x0 ret=1
    Wdg_Main:ESM_MCU_ERR_CNT_REG u8RdDataReg0x97=0x0 ret=1
    Wdg_Main:ESM_SOC_START_REG u8RdDataReg0x98=0x0 ret=1
    Wdg_Main:ESM_SOC_DELAY1_REG u8RdDataReg0x99=0x0 ret=1
    Wdg_Main:ESM_SOC_DELAY2_REG u8RdDataReg0x9A=0x0 ret=1
    Wdg_Main:ESM_SOC_MODE_CFG u8RdDataReg0x9B=0x0 ret=1
    Wdg_Main:ESM_SOC_HMAX_REG u8RdDataReg0x9C=0x0 ret=1
    Wdg_Main:ESM_SOC_HMIN_REG u8RdDataReg0x9D=0x0 ret=1
    Wdg_Main:ESM_SOC_LMAX_REG u8RdDataReg0x9E=0x0 ret=1
    Wdg_Main:ESM_SOC_LMIN_REG u8RdDataReg0x9F=0x0 ret=1
    Wdg_Main:ESM_SOC_ERR_CNT_REG u8RdDataReg0xA0=0x0 ret=1
    Wdg_Main:REGISTER_LOCK u8RdDataReg0xA1=0x0 ret=1
    Wdg_Main:MANUFACTURING_VER u8RdDataReg0xA6=0x0 ret=1
    Wdg_Main:CUSTOMER_NVM_ID_REG u8RdDataReg0xA7=0x0 ret=1
    Wdg_Main:SOFT_REBOOT_REG u8RdDataReg0xAB=0x0 ret=1
    Wdg_Main:RTC_SECONDS u8RdDataReg0xB5=0x0 ret=1
    Wdg_Main:RTC_MINUTES u8RdDataReg0xB6=0x0 ret=1
    Wdg_Main:RTC_HOURS u8RdDataReg0xB7=0x0 ret=1
    Wdg_Main:RTC_DAYS u8RdDataReg0xB8=0x0 ret=1
    Wdg_Main:RTC_MONTHS u8RdDataReg0xB9=0x0 ret=1
    Wdg_Main:RTC_YEARS u8RdDataReg0xBA=0x0 ret=1
    Wdg_Main:RTC_WEEKS u8RdDataReg0xBB=0x0 ret=1
    Wdg_Main:ALARM_SECONDS u8RdDataReg0xBC=0x0 ret=1
    Wdg_Main:ALARM_MINUTES u8RdDataReg0xBD=0x0 ret=1
    Wdg_Main:ALARM_HOURS u8RdDataReg0xBE=0x0 ret=1
    Wdg_Main:ALARM_DAYS u8RdDataReg0xBF=0x0 ret=1
    Wdg_Main:ALARM_MONTHS u8RdDataReg0xC0=0x0 ret=1
    Wdg_Main:ALARM_YEARS u8RdDataReg0xC1=0x0 ret=1
    Wdg_Main:RTC_CTRL_1 u8RdDataReg0xC2=0x0 ret=1
    Wdg_Main:RTC_CTRL_2 u8RdDataReg0xC3=0x0 ret=1
    Wdg_Main:RTC_STATUS u8RdDataReg0xC4=0x0 ret=1
    Wdg_Main:RTC_INTERRUPTS u8RdDataReg0xC5=0x0 ret=1
    Wdg_Main:RTC_COMP_LSB u8RdDataReg0xC6=0x0 ret=1
    Wdg_Main:RTC_COMP_MSB u8RdDataReg0xC7=0x0 ret=1
    Wdg_Main:RTC_RESET_STATUS u8RdDataReg0xC8=0x0 ret=1
    Wdg_Main:SCRATCH_PAD_REG_1 u8RdDataReg0xC9=0x0 ret=1
    Wdg_Main:SCRATCH_PAD_REG_2 u8RdDataReg0xCA=0x0 ret=1
    Wdg_Main:SCRATCH_PAD_REG_3 u8RdDataReg0xCB=0x0 ret=1
    Wdg_Main:SCRATCH_PAD_REG_4 u8RdDataReg0xCC=0x0 ret=1
    Wdg_Main:PFSM_DELAY_REG_1 u8RdDataReg0xCD=0x0 ret=1
    Wdg_Main:PFSM_DELAY_REG_2 u8RdDataReg0xCE=0x0 ret=1
    Wdg_Main:PFSM_DELAY_REG_3 u8RdDataReg0xCF=0x0 ret=1
    Wdg_Main:PFSM_DELAY_REG_4 u8RdDataReg0xD0=0x0 ret=1
    Wdg_Main:u8RdDataReg0x04=0x7f ret=1
    Wdg_Main:u8RdDataReg0xA1=0x0 ret=1
    Wdg_Main:u8WrDataReg0xA1=0x9b ret=1
    Wdg_Main:u8RdDataReg0xA1=0x0 ret=1
    Wdg_Main:u8RdDataReg0xC3=0x0 ret=1
    Wdg_Main:u8WrDataReg0xC3=0x60 ret=1

    //if (u16Timer2S == 1000/10)
        {
            ret = WdgReadData(0x01,&u8RdData,1);
            printf("Wdg_Main:DEV_REV u8RdDataReg0x01=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x02,&u8RdData,1);
            printf("Wdg_Main:NVM_CODE_1 u8RdDataReg0x02=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x03,&u8RdData,1);
            printf("Wdg_Main:NVM_CODE_2 u8RdDataReg0x03=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x04,&u8RdData,1);
            printf("Wdg_Main:BUCK1_CTRL u8RdDataReg0x04=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x05,&u8RdData,1);
            printf("Wdg_Main:BUCK1_CONF u8RdDataReg0x05=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x06,&u8RdData,1);
            printf("Wdg_Main:BUCK2_CTRL u8RdDataReg0x06=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x07,&u8RdData,1);
            printf("Wdg_Main:BUCK2_CONF u8RdDataReg0x07=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x08,&u8RdData,1);
            printf("Wdg_Main:BUCK3_CTRL u8RdDataReg0x08=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x09,&u8RdData,1);
            printf("Wdg_Main:BUCK3_CONF u8RdDataReg0x09=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0A,&u8RdData,1);
            printf("Wdg_Main:BUCK4_CTRL u8RdDataReg0x0A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0B,&u8RdData,1);
            printf("Wdg_Main:BUCK4_CONF u8RdDataReg0x0B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0C,&u8RdData,1);
            printf("Wdg_Main:BUCK5_CTRL u8RdDataReg0x0C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0D,&u8RdData,1);
            printf("Wdg_Main:BUCK5_CONF u8RdDataReg0x0D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0E,&u8RdData,1);
            printf("Wdg_Main:BUCK1_VOUT_1 u8RdDataReg0x0E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x0F,&u8RdData,1);
            printf("Wdg_Main:BUCK1_VOUT_2 u8RdDataReg0x0F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 2000/10)
        {
            ret = WdgReadData(0x10,&u8RdData,1);
            printf("Wdg_Main:BUCK2_VOUT_1 u8RdDataReg0x10=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x11,&u8RdData,1);
            printf("Wdg_Main:BUCK2_VOUT_2 u8RdDataReg0x11=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x12,&u8RdData,1);
            printf("Wdg_Main:BUCK3_VOUT_1 u8RdDataReg0x12=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x13,&u8RdData,1);
            printf("Wdg_Main:BUCK3_VOUT_2 u8RdDataReg0x13=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x14,&u8RdData,1);
            printf("Wdg_Main:BUCK4_VOUT_1 u8RdDataReg0x14=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x15,&u8RdData,1);
            printf("Wdg_Main:BUCK4_VOUT_2 u8RdDataReg0x15=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x16,&u8RdData,1);
            printf("Wdg_Main:BUCK5_VOUT_1 u8RdDataReg0x16=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x17,&u8RdData,1);
            printf("Wdg_Main:BUCK5_VOUT_2 u8RdDataReg0x17=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x18,&u8RdData,1);
            printf("Wdg_Main:BUCK1_PG_WINDOW u8RdDataReg0x18=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x19,&u8RdData,1);
            printf("Wdg_Main:BUCK2_PG_WINDOW u8RdDataReg0x19=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1A,&u8RdData,1);
            printf("Wdg_Main:BUCK3_PG_WINDOW u8RdDataReg0x1A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1B,&u8RdData,1);
            printf("Wdg_Main:BUCK4_PG_WINDOW u8RdDataReg0x1B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1C,&u8RdData,1);
            printf("Wdg_Main:BUCK5_PG_WINDOW u8RdDataReg0x1C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1D,&u8RdData,1);
            printf("Wdg_Main:LDO1_CTRL u8RdDataReg0x1D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1E,&u8RdData,1);
            printf("Wdg_Main:LDO2_CTRL u8RdDataReg0x1E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x1F,&u8RdData,1);
            printf("Wdg_Main:LDO3_CTRL u8RdDataReg0x1F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 3000/10)
        {
            ret = WdgReadData(0x20,&u8RdData,1);
            printf("Wdg_Main:LDO4_CTRL u8RdDataReg0x20=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x22,&u8RdData,1);
            printf("Wdg_Main:LDORTC_CTRL u8RdDataReg0x22=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x23,&u8RdData,1);
            printf("Wdg_Main:LDO1_VOUT u8RdDataReg0x23=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x24,&u8RdData,1);
            printf("Wdg_Main:LDO2_VOUT u8RdDataReg0x24=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x25,&u8RdData,1);
            printf("Wdg_Main:LDO3_VOUT u8RdDataReg0x25=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x26,&u8RdData,1);
            printf("Wdg_Main:LDO4_VOUT u8RdDataReg0x26=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x27,&u8RdData,1);
            printf("Wdg_Main:LDO1_PG_WINDOW u8RdDataReg0x27=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x28,&u8RdData,1);
            printf("Wdg_Main:LDO2_PG_WINDOW u8RdDataReg0x28=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x29,&u8RdData,1);
            printf("Wdg_Main:LDO3_PG_WINDOW u8RdDataReg0x29=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x2A,&u8RdData,1);
            printf("Wdg_Main:LDO4_PG_WINDOW u8RdDataReg0x2A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x2B,&u8RdData,1);
            printf("Wdg_Main:VCCA_VMON_CTRL u8RdDataReg0x2B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x2C,&u8RdData,1);
            printf("Wdg_Main:VCCA_PG_WINDOW u8RdDataReg0x2C=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 4000/10)
        {
            ret = WdgReadData(0x31,&u8RdData,1);
            printf("Wdg_Main:GPIO1_CONF u8RdDataReg0x31=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x32,&u8RdData,1);
            printf("Wdg_Main:GPIO2_CONF u8RdDataReg0x32=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x33,&u8RdData,1);
            printf("Wdg_Main:GPIO3_CONF u8RdDataReg0x33=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x34,&u8RdData,1);
            printf("Wdg_Main:GPIO4_CONF u8RdDataReg0x34=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x35,&u8RdData,1);
            printf("Wdg_Main:GPIO5_CONF u8RdDataReg0x35=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x36,&u8RdData,1);
            printf("Wdg_Main:GPIO6_CONF u8RdDataReg0x36=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x37,&u8RdData,1);
            printf("Wdg_Main:GPIO7_CONF u8RdDataReg0x37=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x38,&u8RdData,1);
            printf("Wdg_Main:GPIO8_CONF u8RdDataReg0x38=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x39,&u8RdData,1);
            printf("Wdg_Main:GPIO9_CONF u8RdDataReg0x39=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3A,&u8RdData,1);
            printf("Wdg_Main:GPIO10_CONF u8RdDataReg0x3A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3B,&u8RdData,1);
            printf("Wdg_Main:GPIO11_CONF u8RdDataReg0x3B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3C,&u8RdData,1);
            printf("Wdg_Main:NPWRON_CONF u8RdDataReg0x3C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3D,&u8RdData,1);
            printf("Wdg_Main:GPIO_OUT_1 u8RdDataReg0x3D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3E,&u8RdData,1);
            printf("Wdg_Main:GPIO_OUT_2 u8RdDataReg0x3E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x3F,&u8RdData,1);
            printf("Wdg_Main:GPIO_IN_1 u8RdDataReg0x3F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 5000/10)
        {
            ret = WdgReadData(0x40,&u8RdData,1);
            printf("Wdg_Main:GPIO_IN_2 u8RdDataReg0x40=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x41,&u8RdData,1);
            printf("Wdg_Main:RAIL_SEL_1 u8RdDataReg0x41=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x42,&u8RdData,1);
            printf("Wdg_Main:RAIL_SEL_2 u8RdDataReg0x42=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x43,&u8RdData,1);
            printf("Wdg_Main:RAIL_SEL_3 u8RdDataReg0x43=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x44,&u8RdData,1);
            printf("Wdg_Main:FSM_TRIG_SEL_1 u8RdDataReg0x44=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x45,&u8RdData,1);
            printf("Wdg_Main:FSM_TRIG_SEL_2 u8RdDataReg0x45=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x46,&u8RdData,1);
            printf("Wdg_Main:FSM_TRIG_MASK_1 u8RdDataReg0x46=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x47,&u8RdData,1);
            printf("Wdg_Main:FSM_TRIG_MASK_2 u8RdDataReg0x47=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x48,&u8RdData,1);
            printf("Wdg_Main:FSM_TRIG_MASK_3 u8RdDataReg0x48=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x49,&u8RdData,1);
            printf("Wdg_Main:MASK_BUCK1_2 u8RdDataReg0x49=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4A,&u8RdData,1);
            printf("Wdg_Main:MASK_BUCK3_4 u8RdDataReg0x4A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4B,&u8RdData,1);
            printf("Wdg_Main:MASK_BUCK5 u8RdDataReg0x4B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4C,&u8RdData,1);
            printf("Wdg_Main:MASK_LDO1_2 u8RdDataReg0x4C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4D,&u8RdData,1);
            printf("Wdg_Main:MASK_LDO3_4 u8RdDataReg0x4D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4E,&u8RdData,1);
            printf("Wdg_Main:MASK_VMON u8RdDataReg0x4E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x4F,&u8RdData,1);
            printf("Wdg_Main:MASK_GPIO1_8_FALL u8RdDataReg0x4F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 6000/10)
        {
            ret = WdgReadData(0x50,&u8RdData,1);
            printf("Wdg_Main:MASK_GPIO1_8_RISE u8RdDataReg0x50=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x51,&u8RdData,1);
            printf("Wdg_Main:MASK_GPIO9_11 u8RdDataReg0x51=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x52,&u8RdData,1);
            printf("Wdg_Main:MASK_STARTUP u8RdDataReg0x52=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x53,&u8RdData,1);
            printf("Wdg_Main:MASK_MISC u8RdDataReg0x53=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x54,&u8RdData,1);
            printf("Wdg_Main:MASK_MODERATE_ERR u8RdDataReg0x54=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x56,&u8RdData,1);
            printf("Wdg_Main:MASK_FSM_ERR u8RdDataReg0x56=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x57,&u8RdData,1);
            printf("Wdg_Main:MASK_COMM_ERR u8RdDataReg0x57=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x58,&u8RdData,1);
            printf("Wdg_Main:MASK_READBACK_ERR u8RdDataReg0x58=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x59,&u8RdData,1);
            printf("Wdg_Main:MASK_ESM u8RdDataReg0x59=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5A,&u8RdData,1);
            printf("Wdg_Main:INT_TOP u8RdDataReg0x5A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5B,&u8RdData,1);
            printf("Wdg_Main:INT_BUCK u8RdDataReg0x5B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5C,&u8RdData,1);
            printf("Wdg_Main:INT_BUCK1_2 u8RdDataReg0x5C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5D,&u8RdData,1);
            printf("Wdg_Main:INT_BUCK3_4 u8RdDataReg0x5D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5E,&u8RdData,1);
            printf("Wdg_Main:INT_BUCK5 u8RdDataReg0x5E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x5F,&u8RdData,1);
            printf("Wdg_Main:INT_LDO_VMON u8RdDataReg0x5F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 7000/10)
        {
            ret = WdgReadData(0x60,&u8RdData,1);
            printf("Wdg_Main:INT_LDO1_2 u8RdDataReg0x60=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x61,&u8RdData,1);
            printf("Wdg_Main:INT_LDO3_4 u8RdDataReg0x61=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x62,&u8RdData,1);
            printf("Wdg_Main:INT_VMON u8RdDataReg0x62=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x63,&u8RdData,1);
            printf("Wdg_Main:INT_GPIO u8RdDataReg0x63=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x64,&u8RdData,1);
            printf("Wdg_Main:INT_GPIO1_8 u8RdDataReg0x64=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x65,&u8RdData,1);
            printf("Wdg_Main:INT_STARTUP u8RdDataReg0x65=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x66,&u8RdData,1);
            printf("Wdg_Main:INT_MISC u8RdDataReg0x66=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x67,&u8RdData,1);
            printf("Wdg_Main:INT_MODERATE_ERR u8RdDataReg0x67=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x68,&u8RdData,1);
            printf("Wdg_Main:INT_SEVERE_ERR u8RdDataReg0x68=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x69,&u8RdData,1);
            printf("Wdg_Main:INT_FSM_ERR u8RdDataReg0x69=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6A,&u8RdData,1);
            printf("Wdg_Main:INT_COMM_ERR u8RdDataReg0x6A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6B,&u8RdData,1);
            printf("Wdg_Main:INT_READBACK_ERR u8RdDataReg0x6B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6C,&u8RdData,1);
            printf("Wdg_Main:INT_ESM u8RdDataReg0x6C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6D,&u8RdData,1);
            printf("Wdg_Main:STAT_BUCK1_2 u8RdDataReg0x6D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6E,&u8RdData,1);
            printf("Wdg_Main:STAT_BUCK3_4 u8RdDataReg0x6E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x6F,&u8RdData,1);
            printf("Wdg_Main:STAT_BUCK5 u8RdDataReg0x6F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 8000/10)
        {
            ret = WdgReadData(0x70,&u8RdData,1);
            printf("Wdg_Main:STAT_LDO1_2 u8RdDataReg0x70=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x71,&u8RdData,1);
            printf("Wdg_Main:STAT_LDO3_4 u8RdDataReg0x71=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x72,&u8RdData,1);
            printf("Wdg_Main:STAT_VMON u8RdDataReg0x72=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x73,&u8RdData,1);
            printf("Wdg_Main:STAT_STARTUP u8RdDataReg0x73=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x74,&u8RdData,1);
            printf("Wdg_Main:STAT_MISC u8RdDataReg0x74=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x75,&u8RdData,1);
            printf("Wdg_Main:STAT_MODERATE_ERR u8RdDataReg0x75=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x76,&u8RdData,1);
            printf("Wdg_Main:STAT_SEVERE_ERR u8RdDataReg0x76=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x77,&u8RdData,1);
            printf("Wdg_Main:STAT_READBACK_ERR u8RdDataReg0x77=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x78,&u8RdData,1);
            printf("Wdg_Main:PGOOD_SEL_1 u8RdDataReg0x78=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x79,&u8RdData,1);
            printf("Wdg_Main:PGOOD_SEL_2 u8RdDataReg0x79=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x7A,&u8RdData,1);
            printf("Wdg_Main:PGOOD_SEL_3 u8RdDataReg0x7A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x7B,&u8RdData,1);
            printf("Wdg_Main:PGOOD_SEL_4 u8RdDataReg0x7B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x7C,&u8RdData,1);
            printf("Wdg_Main:PLL_CTRL u8RdDataReg0x7C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x7D,&u8RdData,1);
            printf("Wdg_Main:CONFIG_1 u8RdDataReg0x7D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x7E,&u8RdData,1);
            printf("Wdg_Main:CONFIG_2 u8RdDataReg0x7E=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 9000/10)
        {
            ret = WdgReadData(0x80,&u8RdData,1);
            printf("Wdg_Main:ENABLE_DRV_REG u8RdDataReg0x80=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x81,&u8RdData,1);
            printf("Wdg_Main:MISC_CTRL u8RdDataReg0x81=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x82,&u8RdData,1);
            printf("Wdg_Main:ENABLE_DRV_STAT u8RdDataReg0x82=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x83,&u8RdData,1);
            printf("Wdg_Main:RECOV_CNT_REG_1 u8RdDataReg0x83=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x84,&u8RdData,1);
            printf("Wdg_Main:RECOV_CNT_REG_2 u8RdDataReg0x84=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x85,&u8RdData,1);
            printf("Wdg_Main:FSM_I2C_TRIGGERS u8RdDataReg0x85=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x86,&u8RdData,1);
            printf("Wdg_Main:FSM_NSLEEP_TRIGGERS u8RdDataReg0x86=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x87,&u8RdData,1);
            printf("Wdg_Main:BUCK_RESET_REG u8RdDataReg0x87=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x88,&u8RdData,1);
            printf("Wdg_Main:SPREAD_SPECTRUM_1 u8RdDataReg0x88=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8A,&u8RdData,1);
            printf("Wdg_Main:FREQ_SEL u8RdDataReg0x8A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8B,&u8RdData,1);
            printf("Wdg_Main:FSM_STEP_SIZE u8RdDataReg0x8B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8C,&u8RdData,1);
            printf("Wdg_Main:LDO_RV_TIMEOUT_REG_1 u8RdDataReg0x8C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8D,&u8RdData,1);
            printf("Wdg_Main:LDO_RV_TIMEOUT_REG_2 u8RdDataReg0x8D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8E,&u8RdData,1);
            printf("Wdg_Main:USER_SPARE_REGS u8RdDataReg0x8E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x8F,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_START_REG u8RdDataReg0x8F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 10000/10)
        {
            ret = WdgReadData(0x90,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_DELAY1_REG u8RdDataReg0x90=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x91,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_DELAY2_REG u8RdDataReg0x91=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x92,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_MODE_CFG u8RdDataReg0x92=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x93,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_HMAX_REG u8RdDataReg0x93=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x94,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_HMIN_REG u8RdDataReg0x94=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x95,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_LMAX_REG u8RdDataReg0x95=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x96,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_LMIN_REG u8RdDataReg0x96=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x97,&u8RdData,1);
            printf("Wdg_Main:ESM_MCU_ERR_CNT_REG u8RdDataReg0x97=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x98,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_START_REG u8RdDataReg0x98=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x99,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_DELAY1_REG u8RdDataReg0x99=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9A,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_DELAY2_REG u8RdDataReg0x9A=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9B,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_MODE_CFG u8RdDataReg0x9B=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9C,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_HMAX_REG u8RdDataReg0x9C=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9D,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_HMIN_REG u8RdDataReg0x9D=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9E,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_LMAX_REG u8RdDataReg0x9E=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0x9F,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_LMIN_REG u8RdDataReg0x9F=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 11000/10)
        {
            ret = WdgReadData(0xA0,&u8RdData,1);
            printf("Wdg_Main:ESM_SOC_ERR_CNT_REG u8RdDataReg0xA0=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xA1,&u8RdData,1);
            printf("Wdg_Main:REGISTER_LOCK u8RdDataReg0xA1=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xA6,&u8RdData,1);
            printf("Wdg_Main:MANUFACTURING_VER u8RdDataReg0xA6=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xA7,&u8RdData,1);
            printf("Wdg_Main:CUSTOMER_NVM_ID_REG u8RdDataReg0xA7=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xAB,&u8RdData,1);
            printf("Wdg_Main:SOFT_REBOOT_REG u8RdDataReg0xAB=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 12000/10)
        {
            ret = WdgReadData(0xB5,&u8RdData,1);
            printf("Wdg_Main:RTC_SECONDS u8RdDataReg0xB5=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xB6,&u8RdData,1);
            printf("Wdg_Main:RTC_MINUTES u8RdDataReg0xB6=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xB7,&u8RdData,1);
            printf("Wdg_Main:RTC_HOURS u8RdDataReg0xB7=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xB8,&u8RdData,1);
            printf("Wdg_Main:RTC_DAYS u8RdDataReg0xB8=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xB9,&u8RdData,1);
            printf("Wdg_Main:RTC_MONTHS u8RdDataReg0xB9=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBA,&u8RdData,1);
            printf("Wdg_Main:RTC_YEARS u8RdDataReg0xBA=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBB,&u8RdData,1);
            printf("Wdg_Main:RTC_WEEKS u8RdDataReg0xBB=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBC,&u8RdData,1);
            printf("Wdg_Main:ALARM_SECONDS u8RdDataReg0xBC=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBD,&u8RdData,1);
            printf("Wdg_Main:ALARM_MINUTES u8RdDataReg0xBD=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBE,&u8RdData,1);
            printf("Wdg_Main:ALARM_HOURS u8RdDataReg0xBE=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xBF,&u8RdData,1);
            printf("Wdg_Main:ALARM_DAYS u8RdDataReg0xBF=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S == 13000/10)
        {
            ret = WdgReadData(0xC0,&u8RdData,1);
            printf("Wdg_Main:ALARM_MONTHS u8RdDataReg0xC0=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC1,&u8RdData,1);
            printf("Wdg_Main:ALARM_YEARS u8RdDataReg0xC1=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC2,&u8RdData,1);
            printf("Wdg_Main:RTC_CTRL_1 u8RdDataReg0xC2=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC3,&u8RdData,1);
            printf("Wdg_Main:RTC_CTRL_2 u8RdDataReg0xC3=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC4,&u8RdData,1);
            printf("Wdg_Main:RTC_STATUS u8RdDataReg0xC4=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC5,&u8RdData,1);
            printf("Wdg_Main:RTC_INTERRUPTS u8RdDataReg0xC5=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC6,&u8RdData,1);
            printf("Wdg_Main:RTC_COMP_LSB u8RdDataReg0xC6=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC7,&u8RdData,1);
            printf("Wdg_Main:RTC_COMP_MSB u8RdDataReg0xC7=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC8,&u8RdData,1);
            printf("Wdg_Main:RTC_RESET_STATUS u8RdDataReg0xC8=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC9,&u8RdData,1);
            printf("Wdg_Main:SCRATCH_PAD_REG_1 u8RdDataReg0xC9=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCA,&u8RdData,1);
            printf("Wdg_Main:SCRATCH_PAD_REG_2 u8RdDataReg0xCA=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCB,&u8RdData,1);
            printf("Wdg_Main:SCRATCH_PAD_REG_3 u8RdDataReg0xCB=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCC,&u8RdData,1);
            printf("Wdg_Main:SCRATCH_PAD_REG_4 u8RdDataReg0xCC=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCD,&u8RdData,1);
            printf("Wdg_Main:PFSM_DELAY_REG_1 u8RdDataReg0xCD=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCE,&u8RdData,1);
            printf("Wdg_Main:PFSM_DELAY_REG_2 u8RdDataReg0xCE=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xCF,&u8RdData,1);
            printf("Wdg_Main:PFSM_DELAY_REG_3 u8RdDataReg0xCF=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xD0,&u8RdData,1);
            printf("Wdg_Main:PFSM_DELAY_REG_4 u8RdDataReg0xD0=0x%x ret=%d\r\n",u8RdData, ret);
        }
        //else if (u16Timer2S >= 14000/10)
        {
            u16Timer2S = 0;
            ret = WdgReadData(0x04,&u8RdData,1);
            printf("Wdg_Main:u8RdDataReg0x04=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xA1,&u8RdData,1);
            printf("Wdg_Main:u8RdDataReg0xA1=0x%x ret=%d\r\n",u8RdData, ret);
            u8WrData = 0x9B;
            ret = WdgWriteData(0xA1,&u8WrData,1);
            printf("Wdg_Main:u8WrDataReg0xA1=0x%x ret=%d\r\n",u8WrData, ret);
            ret = WdgReadData(0xA1,&u8RdData,1);
            printf("Wdg_Main:u8RdDataReg0xA1=0x%x ret=%d\r\n",u8RdData, ret);
            ret = WdgReadData(0xC3,&u8RdData,1);
            printf("Wdg_Main:u8RdDataReg0xC3=0x%x ret=%d\r\n",u8RdData, ret);
            u8WrData = (u8RdData & ~(1<<3));
            u8WrData |= (3<<5);
            ret = WdgWriteData(0xC3,&u8WrData,1);
            printf("Wdg_Main:u8WrDataReg0xC3=0x%x ret=%d\r\n",u8WrData, ret);
        }
  • Hi Menghai,

    I have been in the lab all day. Please expect a response tomorrow.

    Thanks,

    Daniel W

  • Hi Menghai,

    It appears there may be an issue with the I2C communication since almost all of the device registers are reading 0x00. Are you reading these registers from the TPS65941212 device? If so, Please also read the registers from the TPS65941111 device.

    Are there any other devices on the same I2C lines as the pmics? If so are you able to communicate with them effectively?

    Thanks,

    Daniel W

  • Dear Expert,

      Now my programme only running on the MCU10 core which only has an IIC iterface to PMIC, I2C2_ID_REG whose ID is 0x12. So whether could  I acces the ctrl registers by this iterface? Or do I have to access these registers only by I2C1_ID_REG? If the later case is true, I must modify my hardware design.  

  • Hi Menghai,

    Thank you for the clarification. I2C2 can only access the page 4 watchdog registers. Main registers must be read through I2C1.

    Thanks,

    Daniel W

  • Hi,Daniel,

        Now I use the I2C1 to access the ctrl registers and read from the BUCK1_CTRL with the result 0x31. Then I write it with a value 0x21 and power off after successfuly writing. Then I power up pmic again and read BUCK1_CTRL  with the result 0x21, which mean that I can change the NVM by I2C1. What I confuse is that if I can write the BUCK1_CTRL to change some bits in the NVM ,why the BUCK1_RV_SEL function appears to be still enable? That is the case for BUCK2_CTRL, BUCK3_CTRL, BUCK4_CTRL, BUCK5_CTRL,LDO1_CTRL,LDO2_CTRL, LDO3_CTRL and LDO4_CTRL..

      Than you.

  • Hi Menghai,

    The NVM is not changed when a single register write is made. Are you cycling VCCA into the pmic or just a control pin such as  ENABLE?

    Thanks,

    Daniel W

  • Hi,Daniel,

        The PMIC VCCA is stablely supplied than I access the regsters. Than I cut off the power of the whole board manually and power up again.

  • Hi Menghai,

    When you are changing the BUCK1_CTRL register are there any other writes to change the NVM or are you just changing the register?

    This register will reset to NVM default at POR.

    Thanks,

    Daniel W

  • Hi,Daniel

       I just write the BUCK1_CTRL  register And could I change the NVM by I2C1?

  • Hi Menghai,

    The NVM can be changed over I2C1.

    However, it requires more than just writing a single value to a register.

    It can be done using the scalable-pmic-gui and a TPS6594EVM. 

    Thanks,

    Daniel W

  • Hi,Daniel,

       So could TI provide the sequence of I2C operation to change the NVM on my borad other than  using the scalable-pmic-gui and a TPS6594EVM?

  • Hi Menghai,

    The scalale-pmic-gui is the way to do this because it makes sure the NVM being written to the device is good and ensures that the NVM writing is done correctly.

    Thanks,

    Daniel W

  • Hi,Daniel,

        Thank you for your help.