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.

TPS65987DDJ: Flash burning using I2C

Part Number: TPS65987DDJ
Other Parts Discussed in Thread: TPS65988, TPS65987

Hi,

We have just received our product prototype which uses TPS65987DDJ on it.

We have a Linux Board connected to the PD through I2C2 lines.

I wrote a custom user space driver for it and so far I could verify following:

1. I can read/write any registers of TPS65987DDJ for example:

TPS_REG_MODE (0x03) returns "PTCH"

TPS_REG_DEVICE_INFO (0x2f) returns "TPS65988 HW0030 FWF807.12.00 ZAce1"

2. I can execute Tasks such as DISC, FLad etc. But whenever I try that the output returns with "Task rejected" message (0x3).

I think that much summary is sufficient. What I want is that I want to program whole flash content (which is all 0xFF right now) including header using FLemFLwd and FLvy task commands. But all I got is "Task rejected" message. I went through "SLVAE21A - TPS65987 and TPS65988 SPI Flash Firmware Update Over I2C", I believed that I did the same but no luck.

First of all, in order to use Flash commands, in the technical manual written that you have to unlock first. SLVAE21A  never referred to this requirement. When I try to unlock with the task LOCK and UnlockCode=0, the command is also rejected. I'm stuck here.

I created the full flash hex content in C using Application Customization Tool, but I don't know how to burn this configuration to the flash over the PD? Your helps are highly appreciated. 

Thank you.

  • Hi Mehmet,

    2. I can execute Tasks such as DISC, FLad etc. But whenever I try that the output returns with "Task rejected" message (0x3).

    Some of the Commands require that you are in "APP" mode. Being in "Patch" mode could be preventing the tasks from executing.

    First of all, in order to use Flash commands, in the technical manual written that you have to unlock first. SLVAE21A  never referred to this requirement. When I try to unlock with the task LOCK and UnlockCode=0, the command is also rejected. I'm stuck here.

    I think the TRM is referring to this bit.

    You can change this in the APP Config GUI. It looks like it defaults to off.

    TPS_REG_MODE (0x03) returns "PTCH"

    Do you know why the device is in PTCH mode? Are you loading a configuration to the PD controller from the EC primarily or from the EEPROM? Is there a configuration currently loaded to the EEPROM?

    Thanks and Regards,

    Chris

  • Hi Chris,

    Yes like you mentioned, Flash update commands are not functional in "PTCH" mode.

    ADCIN1 pin connected to 0.54V means "BP_ECWait_External / Infinite Wait" mode. 

    And external flash is fully empty (not configured), therefore the PD waits in "PTCH" mode.

    To switch the PD from "PTCH" mode to "APP" mode, on the Linux side, I had to use "PTCs", "PTCd" and finally "PTCc" commands.

    Once it switches to the "APP" mode it starts accepting "FLem", "FLad", "FLwd" and finally "FLvy" commands.

    I could fully program external flash in that way. And like you suggested, by default "LOCK" command is not needed during the operation.

    Thanks for your helps.

    Fide.

  • Hi Mehmet,

    Glad we resolved your issue, closing this thread now.

    Thanks and Regards,

    Chris