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.

UCD90160A: [Consultation] UCD90160RGCR FW online update hex file through SMBus/I2C

Part Number: UCD90160A
Other Parts Discussed in Thread: UCD90160

Hi TI service team,

I have one thing about UCD90160A FW online update hex file through SMBus/I2C want to consult with you.

We've followed your example code in specification and encountered problem after running erase/write configuration into memory.

After system reboot when finishing storing RAM to NVMe, all configuration won't be changed and become empty in memory with this process. 
"

Writing bin data into UCD by register 0xe2 & 0xe3.
After last step "SendByte,0x7E,0xDB" UCD will shown empty after reboot.
Manually verified checksum after bin data wrote.

"

Can you help to give advices to complete development of this FW feature ?

Thanks a lot.

Best Regards,

Paul Lei

  • Hi

    Have you tried the EVM with Fusion GUI? it shall have a log to display and you can compare the log from your own software and GUI.

    Regards

    Yihe

  • Hi Yihe,

    I don't think we need to use EVMBoard for debugging.

    We've tried on our own board which has already stuffed with UCD90160A, and we also connected with dongle/GUI to check the event logs during FW programming.

    However, we still cannot program the image that we want by following your instructions.

    "

    Writing bin data into UCD by register 0xe2 & 0xe3.
    After last step "SendByte,0x7E,0xDB" UCD will show empty after reboot.
    Manually verified checksum after bin data wrote.

    "

    Can you help to give advice to complete development of this FW feature (online update hex file through SMBus/I2C interface)?

    Thanks.

    Best Regards,

    Paul Lei

  • To be continued with previous comments, please see more information that ZT tested process and results in below:

    Is UCD90160A MSB same as UCD90160 (LSB or MSB in write data flash)?

    By the way, what's the purpose of SOFT_RESET (0xD8h)? If system is alive then we execute SOFT_RESET, system will shut down, I guess it's caused by below setting as screenshot (Using PMBus Control Pin only, maybe it will affect SOFT_RESET?).

    Additionally, I found that 0xe2/0xe3 are the action which write configuration files into NVMe, and we don't need to store them from RAM to NVMe (step4) after step1.

    I reproduce steps from reading PMbus log:

    0.erase and protect bit

    1.0xe2 0xe3 write data flash
    2.read data flash again
    3.SOFT_RESET  0xDB      SendByte

    // assume store to NVM is cmd below
    4.STORE_DEFAULT_ALL  0x11      SendByte

    Afte step 1 & 2 , our system power down aftet step 3. No chance for step 4

    Thanks.

    Best Regards,

    Paul Lei

  • Hi

    if you already erase the flash and the data are not programmed, you will get a empty device after soft reset(0xDB).

    The document share in the past is the right instructions.

    That's why i suggest that you compare your own log with the log from the GUI on the EVM to ensure that all are good.

    Regards

    Yihe 

  • Hi Yihe,

    We have found the problems that caused the FW cannot be programmed into UCD90160A, the data byte needs to use LSB not MSB form when FW programming, does it match with your understanding (in comparison with UCD90160 non-A) ?

    However, we've tried to update FW by I2C/SMBus without sending SOFT_RESET, and it is as same as the method that sending SOFT_RESET.

    What's the purpose of SOFT_RESET (0xD8h)? If system is alive then we execute SOFT_RESET, system will shut down, I guess it's caused by below setting as screenshot (Using PMBus Control Pin only, maybe it will affect SOFT_RESET?).

    Thanks.

    Best Regards,

    Paul Lei

  • Hi

    UCD90160 and UCD90160-A are the same in terms of programming. I am surprised that you expect differences.

    UCD won't read the flash data until a reset/power cycle is present

    So we implement soft-reset command to help customer to reset the UCD to use the new setting. But this step is optional and customers can do this at any time when ready to use the new configuration file. 

    Regards

    Yihe

  • Hi Yihe,

    We have encountered that has problems when using example code (UCD90160) to develop UCD90160A FW updated code.

    Just like I mentioned in previous comments:

    "We have found the problems that caused the FW cannot be programmed into UCD90160A, the data byte needs to use LSB not MSB form when FW programming, does it match with your understanding (in comparison with UCD90160 non-A) ?"

    Got it, I've checked SOFT_RESET function in specification, and it shows approximate explanation as you said.

    Additionally, SOFT_RESET is like operation command in 0x01h register to on/off system ?

    If we don't need to use this SOFT_RESET function to restart power sequence configuration, I'll by-pass this function after FW update.

    I guess new FW configuration will be activated after FW programming into SEQ memory, it will directly overwrite into operating RAM, right ?

    Thanks.

    Best Regards,

    Paul Lei

  • Hi

    SOFT_RESET is not designed to restart the power sequence. it is to reset the UCD and it is always good to turn off all the enable for issuing soft-reset command.

    When UCD reset, the flash data is copied into the RAM.

    Regards

    Yihe 

  • Hi Yihe,

    I think you mean that the function of SOFT_RESET is to (1) turn off all power supply enable signals and (2) copy flash data into RAM, then we can start new sequence FW configuration after that.

    From my tested results, RAM can get latest FW configuration after update without send SOFT_RESET to copy data from flash into it.

    After FW update, it seems that RAM/flash can acquire latest configuration after below process without send SOFT_RESET, is it same as your understanding ?

    --> 0xe2 0xe3 write data flash

    Additionally, if we turn off all enable signals in sequencer-UCD90160A, it will cause my system shut down, and we need to AC cycle to recover it.

    In summary, can I by-pass these last two steps (step3 and step4) as below steps after write data to memory ?

    0.erase and protect bit

    1.0xe2 0xe3 write data flash
    2.read data flash again
    3.SOFT_RESET  0xDB      SendByte

    // assume store to NVM is cmd below
    4.STORE_DEFAULT_ALL  0x11      SendByte

    Thanks.

    Best Regards,

    Paul Lei

  • Hi Paul, 

    Yihe is OOO and will get back to you on this when he is back. 

    Best Regards, 

    Dhanya Prem

  • Hi Dhanyasree,

    OK, I'm waiting for his confirmation of some function, then we can be more confident to keep progressing our FW development.

    Thanks.

    Best Regards,

    Paul Lei

  • Hi

    Soft reset wont' turn off the enable but since it resets the UCD and all IOs are back to default states.

    No, the new setting won't take effect until a reset. 

    as said you do not have to issue soft-reset command

    As for store default all, it is not required since 0xe2 and 0xe3 write to flash directly.

    Regards

    Yihe 

  • Hi Yihe,

    I think the system shut off which is caused by SOFT_RESET, and it reset UCD all IOs states to default.

    I originally thought that SOFT_RESET is to restart power sequencing, it seems that it's unnecessary to apply after FW programming.

    Got it, I think 0xe2/0xe3 commands are match with my tested results, so we don't need to do store default all command in extra for transfer data from RAM to flash.

    0xe2/0xe3 will directly write FW configuration to RAM/flash location. 

    Thanks for your confirmation of my confusion.

    Thanks.

    Best Regards,

    Paul Lei

  • HI

    It is great to know.

    Regards

    Yihe

  • Hi Yihe,

    Will keep progressing this FW development after this consultation thread.

    If there are any questions, I'll let you know.

    Thanks a lot.

    Best Regards,

    Paul Lei