かずの不定期便ブログ

備忘録代わりに書きます

FPGA Sipeed Tang Nano 9Kを使ってSDカードアクセス(その2。ソフト設計編)

リーズナブルFPGAシリーズのTang Nano 9Kを使ってTFカードスロットにアクセスしました(その2。ソフト設計編)

今回はソフト設計編になります。

SDカードへのアクセスメニューを追加したpicotiny

  • リーズナブルFPGAシリーズのTang Nano 9Kを使ってTFカードスロットにアクセスしました(その2。ソフト設計編)
  • exampleのソフトについて
  • FatFsドライバ
    • FatFsの展開
    • picorv32用のコードへ修正
    • fw-flash/fatfs/Makefileの追加
      • ffconf.hの修正
  • firmware.cの修正
  • 参考にさせていただいたサイト
続きを読む

ESP32でIIC OLED SSH1106に時計を表示させました

1.3インチ I2C駆動のOLEDディスプレイSSH1106を買いました。解像度は128x64です。
ESP32を使って7segフォントを使ったデジタル時計を作ってみました。

ESP32でI2C OLED SSH1106にデジタル時計を表示させる
続きを読む

Xilinx FPGA ILAを利用した簡易ロジックアナライザ―の製作(333MHz) その2

前回の記事でbit streamの作成まで終わりました。今回はその続きで、実際に信号をキャプチャするところまで記事にします。
前回の記事はこちら
spend-carefree.hatenablog.com

  • bit streamの書き込み
  • ILAの操作(信号を取り込みます)
  • PYNQがロジアナになりました
  • ILI9486へのバスアクセスの速度実験の波形取得
    • 動画表示プログラムでの波形
  • vivadoオペレーションのスクリーンショット
  • 参考にしたもの

bit streamの書き込み

  • Bitstream Generation successfully completed の画面が出たら,Open Hardware Managerを選択してVivadoとFPGAを接続する準備をします。
  • Open targetを押して、Auto connectで繋ぎます。(先ほど電源を入れていたFPGAボードをvivadoが見つけてくれます)
  • まだFPGAにbit streamを流し込んでないので、Program deviceを押して、FPGAに書き込みます。Bitsream fileとDebug probes fileのところはそのままでprogramボタンを押します。(*)
続きを読む

Xilinx FPGA ILAを利用した簡易ロジックアナライザ―の製作(333MHz)(bit stream作成まで)

  • 背景
  • 実現方法
  • ロジアナ化するための必要な要素
  • ロジアナの仕様決め
  • RTLの作成
    • クロック生成モジュール
    • メインモジュール
  • 合成制約ファイル .xdcの準備
    • 以下に今回作成したxdcファイル"logic_analyzer.xdc"を示します。
  • Vivadoでの合成作業
  • 終わりに...(記事は次回へ繋げますけど...)
    • 最大周波数を333MHzとした理由
    • 周波数選択を動的(スライドスイッチによる切替)にしなかった理由
  • vivadoオペレーションのスクリーンショット
  • 参考にしたもの

背景

タイトルの事を行おうと思ったきっかけ
前回、ILI9486のLCDを扱ったわけですが、LCDをドライブする信号を観測しようと格安ロジアナを使ってプローブしましたが、残念ながらサンプリング周波数が観測信号の速度より遅いため、観測が出来ませんでした。
高速なロジアナは高いですし、ロジアナを置くスペースも我が家にはありません。
なので、手持ちのPYNQ FPGAボードをロジアナ化しようと思いました。

実現方法

XilinxFPGAはILA(integrated Logic Analyzer)と呼ばれる内蔵ロジックアナライザを持っています。
これを使って回路のデバッグが行えます。
japan.xilinx.com
ILAにクロックを与え、ILAに信号をつなげれば、vivadoから信号を観測可能になります。ILAに供給されるクロックで信号がサンプリングされます。またサンプリングデータはFPGA内のBRAMへ格納されます。

サンプリング開始トリガとして、信号のエッジ検出だけでなく、データの条件が成立した時など色々決められます。

また、サンプリング開始トリガ位置から指定したサイクル数分、過去のデータも取り込めます。この機能により事象が発生する少し前の状態を見たいという時に使えます。

取り込んだデータはJTAG経由でvivadoへ転送されてvivadoのviewerで波形として観測が可能になっています。

今回、この機能を使ってFPGAボードを簡易ロジックアナライザとして利用したいと思います。

続きを読む

Arduino向けILI9486 LCDパネルを使ってラズパイで動画再生(ソフト作成編その2)

前回の
Arduino向けILI9486 LCDパネルを使ってラズパイで動画再生(ソフト作成編その1)」
からの続きになります。今回が最終記事です。
spend-carefree.hatenablog.com

目次

  • 動画の表示の仕方
    • 動画の準備
  • フレームレートが出ない
  • 動画表示速度の改善 その1
    • 一度に読み込む枚数の違いによる性能確認
  • 動画表示速度の改善 その2
    • マルチスレッド化
  • まとめ
  • 参考
続きを読む