Why is FX3 boot from Adesto SPI flash not possible?

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

cross mob
ChRi_1281516
Level 1
Level 1
10 sign-ins 5 sign-ins 5 replies posted

Like here we have the same issue with Adesto and older Atmel Flash chips, but I cannot see the real reason. I can program the image without problems but the FX3 won´t boot. In the datasheet is stated, the old 0x03 read command is supported with 3 bytes address and no dummy byte. So i cannot see why the Adesto/Atmel flash is not correctly working. I tried an Adesto AT25DF041B, an Atmel AT25DF041A and AT25DF021A, but non of them is working. With a Winbond W25Q80 everything is fine.

All of the criteria for SPI flash selection is matched and we use this flash chips in other applications also with 0x03 read and 0xD8 64kByte erase command. I´m confused...

0 Likes
1 Solution

Hi,

Please refer the flashprogram example code provided with the SDK in this path:"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxflashprog"

Flash program code is the main source code for the boot programmer.you can chage the state of the sector protection in the Flash program code.

The firmware enumerates as a custom device communicating with the CyUsb3.sys driver and provides a set of vendor commands that can be used to download the firmware to the EEPROM/FLASH devices.

Modify the firmware according to your requirements after that build the firmware and you will get the image file, that image  replace with cybootprogrammer.img.

cybootprogrammer.img is provided in this path:"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter".

Regards,

Anil Srinivas.

View solution in original post

0 Likes
3 Replies
alamandaa_16
Moderator
Moderator
Moderator
10 likes received First like received

Hi,

For testing your SPI connection, you can load our  SPI example firmware into the RAM of FX3 and try to write data to the devices and read back the same. The examples are available in the FX3 SDK in the following locations:

  • For SPI Read / Write:<FX3 SDK INSTALLATION PATH> \ 1.3\firmware\serialif_examples\cyfxusbspiregmode.

Can you plase do follwing steps.

step-1: Erase the data for that use erase command=0x00c4.

flash1.PNG

Step-2: Write data to the flash for that use write command=0x00c2.

flash4.PNG

Step-3:Read data from the flash for that use read command=0x00c3.

flash5.PNG

Regards,

Anil Srinivas.

0 Likes

Hi and thank you.

I tested this, but the flash chip cannot be properly programmed by the internal routines. I think I found the issue: At Adesto/Atmel FLASH chips, the sector protection is globally enabled on power up. The example and obviously the boot programmer does not take care of the state of the sector protection in the status register. So Adesto/Atmel flash chips cannot be programmed by ControlCenter.

Can you add this functionality to future versions? I programmed the chip externally and the FX3 can boot. Only programming is affected.

0 Likes

Hi,

Please refer the flashprogram example code provided with the SDK in this path:"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxflashprog"

Flash program code is the main source code for the boot programmer.you can chage the state of the sector protection in the Flash program code.

The firmware enumerates as a custom device communicating with the CyUsb3.sys driver and provides a set of vendor commands that can be used to download the firmware to the EEPROM/FLASH devices.

Modify the firmware according to your requirements after that build the firmware and you will get the image file, that image  replace with cybootprogrammer.img.

cybootprogrammer.img is provided in this path:"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter".

Regards,

Anil Srinivas.

0 Likes