FX3のコンフィグ
USBブートの場合、USB2.0接続でないと動作しない。
基板上の接続をUSB3.0/USB2.0ともに有効にする必要がある。
また、PMODEの設定はZ11
としてUSBブート状態にする必要がある。
参考: EZ-USB® FX3™/FX3S™ブートオプションについて(AN76405)
USB Control Centerを使用する場合
FX3 SDKをインストールするとついてくるControl Centerを使用してコンフィグ出来る。
- PMODEの設定を
Z11
にして電源ONする。 Program > FX3 > RAM
にて、RAM上に任意プログラムを書き込んで起動する。RAM
ではなく、SPI FLASH
も動作する。
この操作はGUIでの操作になるので、何度も実行するのは面倒である。
※SPIに書き込むイメージファイルは、通常のイメージファイルとは違うため、注意が必要である。
elf2img.exe -i XXXX.elf -o XXXX.img # 通常(RAM書き込み用)イメージ作成 elf2img.exe -i XXXX.elf -o XXXX.img -i2cconf 0x00 # SPI書き込み用イメージ作成
libusb-1.0付属のfxload.cを使用する場合
事前準備その1(zadigによるドライバの変更)
事前の準備として、USB boot状態のFX3のドライバをWinUSB(libusb-1.0)に変更する必要がある。
この変更にはzadigを使用する。
恒久的にドライバが変更されるため、注意すること。
具体的な操作は、zadigにて、VendorID="04B4" ProductID="00F3"
のドライバをWinUSBに変更する。
事前準備その2(libusb-1.0付属のfxloadのコンパイル)
msys2にて、コンパイル環境を構築し、pacmanにてlibusb-1.0のライブラリをインストールしておく。
その後、fxloadをコンパイルする。
git clone https://github.com/libusb/libusb.git cd libusb/examples gcc fxload.c exusb.c -o fxload.exe -lusb-1.0 -I/mingw32/include/libusb/libusb-1.0 -static
fxload.exeにてコンフィグ実行
- PMODEの設定を
Z11
にして電源ONする。 fxload.exe -t fx3 -i <fx3 image file>
実行結果
C:\Users\cosmo\Desktop>fxload.exe -t fx3 -i SlaveFifoSync\Debug\SlaveFifoSync.img found device 'Cypress FX3' [04b4:00f3] (3,8) microcontroller type: fx3 SlaveFifoSync\Debug\SlaveFifoSync. img: type Cypress IMG format open firmware image SlaveFifoSync\Debug\SlaveFifoSync.img for RAM upload normal FW binary executable image with checksum FX3 bootloader version: 0x000000A9 writing image... transfer execution to Program Entry at 0x4000c71c
一度ドライバをインストールしておけば、上記を実行するだけでFX3に任意のプログラムがロードされる。