2015年5月31日日曜日

road to the soldering master 6

前回、フラッシュROMへのアクセスが出来なかった。フラッシュROM単体ではどうか見てみたらアクセスできたので、今度はFPGA単独でFPGA内部のCRAMに書き込めるか見てみようとして配線をばらしていたら、FPGAのコア電圧用のレギュレータの配線が間違っていることが判明した。  他にも問題があるかも知れないので、とにかくFPGA単体での動作確認をしてみることにした。
その結果、単体ではCRAMへのコンフィグレーションデータの書込は旨く行くことが確認できた。
bitmapデータはLatticeのリファレンスデザインのデータを使った。

次に、LEDを点滅させる回路を書いて動かしてみることにした。

iCE40はOn-Chip Strobe Generatorsというパルス発生モジュールを2種(Low Power Strobe Generator と High Speed Strobe Generator)内蔵しており、この出力はクロックソースとしても使える。今回はLPSGをクロックソースとして使用した。LPSGからは10KHzのパルスが出力される。
ちなみに、HPSGは12MHzだ。また、データシートによればiCE40のF/F(フリップフロップ)のfMAXは100MHz程度のようだ。

ただし、25pin WLCSPパッケージの場合はGND端子が2pinのみだし、今回進めている実験では0.15mmのワイヤーで基板のランドまで引き回しているのでどの周波数までちゃんと動作するかは未知数だ。

合成からbitmap生成までは旨くいった。

早速、生成されたbitmapファイルをiCE40に書いてみた。


そしたら、無事LEDが点滅した。


やったー \(^_^)/
やっべ、超ウレシー

フラッシュROMを繋いだ状態でどうかも見なければならないが、旨く行かなかったのはレギュレータの配線ミスが原因だと思う。  Lチカが確認できれば後は所望の回路を記述して実装して動かしてみるだけだ。 前回、KiCADで基板設計も行ったがその後若干の修正を加えてFusionPCBに発注した。その基板を使えば次のセットは少しは作りやすくなる筈だ。

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 22

今使用しているモータードライバはDM556Dというものだが、このドライバはMicro Stepが 800 [pulse/rev] 〜 40000 [pulse/rev]の範囲で設定できる。 Mi...