In the field firmware updates: Is there an obvious way to control PMOD_0,1,2 from software??

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

cross mob
maVa_1182686
Level 3
Level 3
Welcome!

Hi,

I'm trying to make the FX3 in the field programmable without having the need for the user to control jumpers.

The obvious thing that pops up in my head (having thought about it only very briefly) is controlling the PMOD signals with my FPGA.

The FX3 in my circuit is connected to a spartan 7 xilinx.

This seem doable but might introduce startup timing issues etc...

If I'm not mistaken...you CAN give a reset commando in the FX3s firmware that takes it through the bootloader again.

Surely, there must be an easy and cheap method i'm not thinking of right now to also set the PMODs from software?

Thanks!

0 Likes
1 Solution

Hello,

For controlling the PMODE pins:

The FPGA can be used to control the PMODE pins. If an High Impedance (Z) is required on any PMODE pin,  the corresponding FPGA pin which is attached to it can be configured as input on FPGA. Similar for high and low. Please note that the FPGA should be configured before the FX3/FX3S starts booting.

Hard Reset:

You can use the cold reset method, here the firmware will start from the bootloader and samples the PMODE lines, then loads the firmware from the selected boot source.

Please refer to this KBA on how to perform a cold reset: Cold Reset in FX3 - KBA225773

SPI flash write:

Yes, the SPI flash can written from the firmware. Please refer to the UsbSpiDmaMode example from the FX3 SDK.

You can refer to the ReadMe document in the project.

path: <installation directory>\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxusbspidmamode

Best Regards,

Yatheesh

View solution in original post

0 Likes
2 Replies
maVa_1182686
Level 3
Level 3
Welcome!

My pmods are now

0 Z 1 SPI; on failure, USB Boot is enabled

I assume it is possible to write to SPI flash from firmware.

If i succeed in breaking the firmware on spi flash, my boot will fail after a reset, triggering the USB boot and enabling me from writing a new firmware into the flash.

Is this possible?

If so, it makes it easy for me as I don't even have to dabble with the PMODs, they can just stay the way they are!

Is there an obvious reason why i should NOT do it like this?

0 Likes

Hello,

For controlling the PMODE pins:

The FPGA can be used to control the PMODE pins. If an High Impedance (Z) is required on any PMODE pin,  the corresponding FPGA pin which is attached to it can be configured as input on FPGA. Similar for high and low. Please note that the FPGA should be configured before the FX3/FX3S starts booting.

Hard Reset:

You can use the cold reset method, here the firmware will start from the bootloader and samples the PMODE lines, then loads the firmware from the selected boot source.

Please refer to this KBA on how to perform a cold reset: Cold Reset in FX3 - KBA225773

SPI flash write:

Yes, the SPI flash can written from the firmware. Please refer to the UsbSpiDmaMode example from the FX3 SDK.

You can refer to the ReadMe document in the project.

path: <installation directory>\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxusbspidmamode

Best Regards,

Yatheesh

0 Likes