Infineon製SPIフラッシュS25FLxをQSPIで使うにはレジスターでクアッドモードに設定する必要があります。
an889.hatenablog.com
このレジスター設定をローターバッファ社製デバッガーソフトウェアTRACE32でするお話です。
TRACE32でSPIフラッシュを扱う場合、付属のフラッシュプログラムを使います。
プロセッサーがZynqMP(XILINX製プロセッサーZynq™ UltraScale+™ MPSoC)の場合です。
FLASHFILE.TARGET 0xFFFC1000++0x2FFF E:0xFFFC4000++0x27FF ./spiw4b64_zynqultra.bin /KEEP /STACKSIZE 0x400 /DUALPORT
FLASHFILE.TARGET 0xFFFC1000++0x2FFF E:0xFFFC4000++0x27FF ./spi4b64_zynqultra.bin /KEEP /STACKSIZE 0x400 /DUALPORT
レジスター設定方法です。
- デュアルパラレル接続
FLASHFILE.SPI.CMD 0x06 0x06 ; Write Enable
FLASHFILE.SPI.CMD 0x01 0x01 0x00 0x00 0x02 0x02 ; Write <SR1> <SR1> <CR1> <CR1>
FLASHFILE.SPI.CMD 0x04 0x04 ; Write Disable
- デュアルスタックまたはシングル接続
FLASHFILE.SPI.CMD 0x06 ; Write Enable
FLASHFILE.SPI.CMD 0x01 0x00 0x02 ; Write <SR1> <CR1>
FLASHFILE.SPI.CMD 0x04 ; Write Disable
設定できたかどうかレジスター読出しで確認できます。
- デュアルパラレル接続
FLASHFILE.SPI.CMD 0x35 0x35 /READ 0x2
- デュアルスタックまたはシングル接続
FLASHFILE.SPI.CMD 0x35 /READ 0x1
FLASHFILE.SPI.CMD
の書式です。
- デュアルパラレル接続
FLASHFILE.SPI.CMD <cmd for flash_bottom> <cmd for flash_top> <data[0] for flash_bottom> <data[0] for flash_top> <data[1] for flash_bottom> <data[1] for flash_top> ...
- デュアルスタックまたはシングル接続
デュアルスタックで上位デバイスの設定はできません。
FLASHFILE.SPI.CMD <cmd> <data[0]> <data[1]> ...
その他注意事項です。
FLASHFILE.unlock
はCR1(Configuration register 1)を初期化するので、使わないでください。