Cx3 boot mode is selected by Pmode1 and Pmode2,however,It's not so convenient to set the pmode1 and pmode2
to Float state,especially in mass product process.Now I use a DIP swith to control this two pmode pins(see the attachment),but the switch device is always two large to place on the PCB.I‘m not sure if the CX3 device can support the IAP（In application program）,so I can upgrade the firmware by an external button.
Solved! Go to Solution.
The attachment is missed.
Please let me know what is your default PMODE settings on your board.
SPI or I2C or USB?
Please share the (PMODE part) schematic.
Hello，we now use a Dip Swith to control the two PMODE pins
and our default swith state is Pmode1=float, Pmode2=0.
Actually,we'd like to fix the Pmode1 and Pmode2 to One state,and using an external Key to realize firmware upgrade
We have the following booting options in CX3:
PMODE[2:0] Boot From
F11 USB boot
F1F I2C, On failure, USB boot is enabled
1FF I2C only
0F1 SPI, On failure, USB boot is enabled
>> our default swith state is Pmode1=float, Pmode2=0.
Is SPI, On failure, USB boot (0F1) is default boot mode?
Is the boards already have a valid firmware?
Then, the device by default boots the same firmware.
If the default firmware loaded in the SPI flash has any way to corrupt the first sector of SPI flash via vendor commands (like - vendor commands to write to SPI Flash), then the device will come up as boot looader after a reset. Becasue the default firmware is corrupted one; so it will fall back to USB bootloader mode. Then, you can update the new firmware.
I have try to pull SPI_CLK to GND ，when I plug the usb connector to PC。And It's recognized as USB mode，So I think it's a method to fall back to usb mode even I fix Pmode1=float, Pmode2=0