Unable to use boot VID PID from M25P32 SPI flash

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
heanc_1330791
Level 2
Level 2

Hi,

   

I am trying to set up the FX3s USB bootloader to use custom VID and PID stored in a micron M25P32 SPI flash chip. The board is set to SPI boot with USB fallback. The flash image is working on the FX3 DVKs onboard flash (M25P40). The image is written correctly to the flash on my custom board (read back by firmware), but the bootloader fails to use the VID PID from flash. Using the oscilloscope I have observed the bootloader to read the status register and the first 4 bytes (header) of the flash image as it does on the DVK. The communication on the custom board stops after reading the header and it enumerates with default cypress VID PID. The FX3's SPI interface on the custom board is using 1.8V levels and communicating to the 3.3V flash through a MAX3378 bidirectional level shifter. I have tried eliminating the level shifter using 3.3V levels on the FX3's SPI and connecting it directly to the 3.3V flash(on the far end of the tristated level shifter), but still got the same behaviour.

   

I intend to try different types of flash memory and avoid going through the level shifter. Are there any known issues for certain flash types?

   

The image header is set to for the bootloader to use 10MHz SPI clock(Max speed of level shifter, but the bootloader doesn't get far enough to use that information). The app note warns of using pull up/down on MISO & MOSI(bootloader expects floating lines to start communication). Could the level shifter still be a problem? I would guess the bootloader would not even start communicating if the level shifter has pull up/down behaviour.

   

Thanks in advance

0 Likes
4 Replies