SPI コントローラを作っている。 RTLは一応完成しMicronのSimulation モデルを使っての
Simulationでも動作確認できたので、Atlysボードで実機デバッグをやってみることにした。
手始めに Standard SPI モードでRDID (Read Identication)コマンドを発行してみたのだが、
読めない。。。 何度試してみてもオール0が読めてしまう。コントローラの動作周波数を1MHz程度
に下げてみたりしたのだが、やはり読めない。Readコマンドも同様で読めない。
コントローラを止めてSPI I/Fの各信号を直接ソフトウェアから制御できるようにして、ソフト的に制御
してみてもやはり読めない。
Flash ROMのDQ1と接続しているSpartan6のピンにPULLUP属性をつけた場合、オール1が読め
るので、どうやらFlash ROMのDQ1ピンがドライブされずHi-Zのままになっているようだ。
デバイスが壊れているんだろうか?? でも、FPGAのコンフィグレーションは出来ている。
そこで、iMPACTでSPI FlashのReadbackやID情報の取得が出来るか試して見たところ、
IDCODEがオール0で読めてしまい、エラーとなることがわかった。
現象的には一致している。
でも、FPGAのコンフィグレーションは出来るんだよなー。
ボードの電源をONにすると、出荷時に書き込まれている回路情報でFPGAはコンフィグレーションされ、UART I/Fに文字列が送信されたりボタン類を操作するとLEDが点滅したりする。
この機能を果たす回路情報は他ならぬFlash ROMからFPGAに読み込まれている筈だ。????
うーむ。。。解らん。
解った!!
解った!!
FPGA コンフィグレーション時にQIO-SPIモードに設定されるようだ。
QIO-SPIモードでRDIDコマンド(MIORDID)を発行したらリードできた。
なるほど、そういうことか。 やた!! 一歩前進だ。

QIO-SPIモードでRDIDコマンド(MIORDID)を発行したらリードできた。
なるほど、そういうことか。 やた!! 一歩前進だ。

0 件のコメント:
コメントを投稿