AN889の日記

組込みエンジニアのブログ

【TRACE32】Infineon製SPIフラッシュS25FLxのレジスター設定

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)を初期化するので、使わないでください。