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.

TPS65981: TPS65981 first-time flash programming failed verification

Part Number: TPS65981

We have put a TPS65981 on our board with a W25Q80 SPI flash chip connected.

Upon applying USB power the TPS65981 appears to work with no issues. Power rails (e.g. LDO_3V3) are at the right levels.

The aim is to program the flash through the TPS65981 using an Aardvark connected to the I²C bus and the Application Customisation Tool. Initial checks work fine - the device is seen at address 0x27 as expected, register 0x3 says BOOT and the SPI read works. However when I Flash App Firmware to Device it fails with "SPI Flash to Device failed verification".

I believe that this flash chip is the same that is used on the TPS65981 EVM and our board has a very similar configuration. with the same pull-up resistors. I have checked that these resistors are correct and the corresponding pin voltages look good.

The datasheet for the W25Q80 says that there are multiple means of write protection. I have check that the /WP pin is pulled high, i.e. not write protected. The factory default for the Status Register Protect bits is both low, which means that it would be in software write protect. Does the TPS65981/Application Customisation Tool actively disable software write protect? Is is possible to access the Status Register on the flash chip through the TPS65981?

If you have any more suggestions on how to debug this it'd be appreciated. In the meantime I'll try getting a serial decoder on the flash pins to see if I can find out what's going on.

  • By chance I found this answer on the forum:

    https://e2e.ti.com/support/interface/usb/f/1008/t/509156

    Though we did not put an SPI header on the board (to save precious space) we soldered some flying wires to the relevant pins on the flash RAM, linked those up to the Aardvark and programmed the flash that way. This appeared to work, judging by the LEDs we've got on GPIOs, but I've not thoroughly tested voltages etc. yet. What I did find is that I still could not program the flash via the TPS65981 - the same ""SPI Flash to Device failed verification" failed message appeared.

    I'll continue my investigation next. I'll try getting a serial decoder on there. My current firmware only negotiates 100mA for safety, I was wondering if that was too little but apparently the W25Q80 only requires 5mA. Any other suggestions?

  • Hi Andrew,

    I'm sorry you're having problems. Can I ask a few question which will better help me solve your problems?
    1. Are you test on TPS65981EVM or your own design board?
    2. Can it work on TPS65981EVM by using Aardvark or FTDI with the Application Customization Tool? If so, it means that the tool can work. If not, the driver for Aardvark or FTDI might be not correct.
    3. If the answer for question 2 is yes, then could you try to connect W25Q80 with FTDI to see if it works?
    4. If the answer for question 2 is no, then could you install the Application Customization Tool on another computer and see if it works?

    Best Regards,
    Hao
  • Thanks for your reply Hao

    We are using the TPS65981 on our own board, which is currently going through bring-up.

    Everything works fine on the TPS65981EVM. I wired the Aardvark to the EVM and our board in exactly the same way - only connecting the I²C lines (SDA, SCK and GND).

    As we don't have FTDI on our own board, I guess you're suggesting that I connect the FTDI outputs from the EVM? That'll be a bit fiddly but I'll see what I can do.

  • Hi Andrew,

    Here is the FTDI board on TPS65981EVM, it has all pins that are needed. Could you please try with it and see if it works?