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.

UCD90320: SMBus Data Flash Script and Driver

Part Number: UCD90320
Other Parts Discussed in Thread: UCD9090, , UCD90160A, UCD9090A

Hello - I have 2 questions regarding new issues that the UCD90320 device raises that we don't see with UCD9090/A or UCD90160A

1.We have a script that we wrote to program ucd device configurations. It  uses the SMBus Data Flash Script (DFS) to program the Data Flash. This script works with UCD9090/A and UCD90160A devices. Our script first verifies the device ID in the DFS file and the device, then erases the data flash, writes the the data via commands E2/E3 according to the DFS file and then verifies the FLASH data according to the DFS file. The  script did the FLASH erase by disabling the write protect and then erasing the FLASH. The DFS file also has these same commands at the beginning. These commands begin with 04 indicating they are Data Flash Control Register commands.

The ucd90320 DFS file has no E2 commands that begin with 04 indicating that there are no Data Flash Control Register commands. What are the commands to erase the Data Flash? I tried just issuing all the commands in the DFS file but all the verifies fail. Are there any other difference in the DFS file that I need to know about? Is there any documentation on programing the Data Flash using the DFS file? 

2. The UCD90320 introduces commands that exceed 32 bytes. Our ucd9000.c driver uses the smbus  functions: i2c_smbus_read_block_data() and i2c_smbus_write_data_block to handle block commands. These functions are limited to 32 byte transfers and do not work for the commands that exceed 32 bytes. What does TI recommend to use in the ucd9000.c driver to handle these 32+ commands?

  • wHi

    #1. For UCD90320, the erasing is handed internally therefore the DFS file does not have to include those erase command.

    #2. Since UCD90320 has more features than older UCD90 device, we have to expand the command payload. UCD90 devices are PMBus compliant which supports up to 256 bytes for block command. If you i2c driver is based on the SMBus(which is limited to 32byte)s, a new driver to support PMBus is required

    Regards

    Yihe

  • Regarding the answer for item 1. We have a proprietary script that is used to upgrade the Data Flash on a UCD9090A or UCD90161A when a new Data Flash Script(DFS) file is found.

    The steps are:

    1. Verify that the device ID (reg FDh) matches the device ID string in the DFS file.

    2. Clear the Data Flash write protect  and Erase the Data Flash

    3. Perform the BlockWrites in the DFS file

    4. Perform the Verifies in the DFS file.

    If all steps are successful, the unit is power-cycled. 

    In the previous answer, it says that the erasing is done internally. How is the erasing triggered? Is the write protect also done internally? How is it triggered?

    Is there a command that I can write to registers E2h and E3h? On the UCD9090 and 90160 the commands are:

    Clear data flash write protect:

    E2 - 0x0400000104

    E3 - 0x00008820

    Erasing the data flash:

    E2 - 0x0414000104

    E3 - 0x00000100

    These don't work on the UCD90320. One reason being that E2 is 6 bytes and is 5 bytes in the UCD9090A and UCD90160A.

    In order for us to programmatically upgrade the Data Flash, we need to deterministically erase the FLASH.

    How can our script trigger the Data Flash erasure and clear the write protect.

    Thank You

    Tom

  • Hello

    UCD9090A/90160 aretotal different device as UCD90320. The DFS file are also different. What customer shall do is to follow the DFS file respectively. The procedures defined in the UCD9090A/160 are not applied on UCD90320.

    As described in the section 8.5 of UCD90320 data sheet, UCD90320 uses dual-bank mechanism to provide a fail-safe state. so one bank is erased whenever a programming is finished. so that there is always a blank bank for the new programming. customer do not need to worry about the erase.

    Hope this helps.

    Regards

    Yihe