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.

UCD9090: Problem with PMBus script generated by Fusion Digital Power Designer

Part Number: UCD9090

Hi,

I have a working configuration for a UCD9090 device. To simplify production / in-field upgrades I am now trying to move the configuration to a Microcontroller.

With this I now see the device configuration failing .... when configuring a GPIO the read-back from the device returns a different value than what the generated script specifies.

This is the section of the script that fails (highlighted in red)

// Write GPIO_CONFIG_3 [MFR 43] Enable: False; Out_Enable: False; Out_Value: False; Status: False
WriteByte    0x68    0xFA    0x03    0xB0
ReadByte     0x68    0xFA    0x03
WriteByte    0x68    0xFB    0x00    0xAC
ReadByte     0x68    0xFB    0x00
// Write GPIO_CONFIG_4 [MFR 43] Enable: False; Out_Enable: False; Out_Value: False; Status: True
WriteByte    0x68    0xFA    0x04    0xA5
ReadByte     0x68    0xFA    0x04
WriteByte    0x68    0xFB    0x08    0x94
ReadByte     0x68    0xFB    0x00

It appears that the device returns 0x08 instead of 0x00, so exactly what was written (I have monitored this with an Logic Analyzer).

I am a bit puzzled about the value being written in the first place - according to the "UCD90xxx Sequencer and Health Contoller PMBus Command Reference (Rev. F)" (section 10.43) the status bit is a read only bit - why does Fusion Designer attempt to write it in the first place.

The description is also not very clear - what exactly does the bit signify?

In Fusion Designer GPIO 4 is configured as active high output (Enable Pin for Rail #1). At the time when I was re-configuring the device the output should have been low, so if anything I would have expected a '0', not a '1' as actually found.

For your reference the Fusion Designer project file and generated script can be found in attached zip file.fusion_designer.zip

The version of Fusion Digital Power Designer used is 2.0.179

Many thanks for your inputs!

Rene

  • WriteByte    0x68    0xFB    0x08    0x94

    There is nothing wrong and the mis-match is expected. The above write command is not going to write anything since it does not actually ENABLE the GPIO 4. The bit 0 and bit 1 of 0x08 was 0, which mean the pin was not enabled for GPIO function. please refer 10.43 of http://www.ti.com/lit/ug/slvu352f/slvu352f.pdf .

    it is just a status returened. Your script was generated when the GPIO4 is HIGH(RAIL 1 is enalbed). but when you import the script to the new device, the Rail 1 is not enabled, therefore when readback, it returns 0x00.

    Regards

    Yihe

  • Thanks for your quick respnse Yihe.

    Yes, I agree that the write instruction has no immediate effect.

    I am actually reading back 0x80, so the status bit is set, whereas the script has the status bit  as '0' on read back:

    WriteByte    0x68    0xFB    0x08    0x94
    ReadByte    0x68    0xFB    0x00

    If the script writes 0x08 because that was the value when the configuration was read then surely the reference value on readback should also be 0x08?

    I guess it's a tricky issue because that register mixes configuration and status bits and therefore the value depends on the status of the system when applied.

    As a consequence the read-back/verify option is not usable unless you ensure that the configuration is read when the system is in the same state as when you down the track want to apply the new configuration.

    Regards,

    Rene

  • instead of using PMBus script file, please use data flash script file. you will not see this mis-match.
    Thanks
    yihe