Raspberry Piを補完するものとしてFPGAを使えないかと、ALTERAのMAX10を搭載したCQ出版企画な基板を使ってアレコレしている。なんとかGPIOピンを使ったデジタル入出力はできた。次はSPI通信をしたいところだ。
参考書、2週目
マルツパッケージ MAX10 FPGA入門基板 好評発売中です | マルツセレクト
主にリアルタイム性の面でRaspberry Piを補完するべくFPGAの勉強を始めたことを先日の記事「MAX10でFPGAを始めた…Raspberry Piを補完したい – 或る阿呆の記」に書いた。使用しているのはCQ出版の企画もので、基板と教材セットでオールインワンという初心者には有難いもの(けっこうなはんだ付けがいるが…マルツでバラで買うと部品が実装されているものもあるようだ)。
まずは実際に手を動かしつつ、あまりにもわからないことは飛ばし飛ばしで卒読し、2週目にとりかかった。参考書は2週目からが本番だ。1週目は何もわからぬままとにかく進むという感じであったが、2週目になると曲がりなりにも一度とおした甲斐があり、それなりにわかる。少なくとも中盤のAD変換くらいまではだいたいわかる。そこを超えると、またちょっと壁を感じる。3週目になればわかるだろうか。
だが、後半はちょっとわかる気がしない。ビギナー向けといいながら、サンプルがやけに難しいのは世にある入門書の常であるが、本書の場合は特に中盤と後半の間に谷があるタイプのようだ。
Raspberry Piを使ったサンプルは、何故かqtを使ってGUIプログラミングなども織り交ぜられているため、学習すべき内容が多岐に渡り、すぐには手を出しづらい。さらにSPI通信も通常使われるメインのSPI機能モジュールではなく、補助(Auxiliary)周辺機能を使っていて、これは一般によく使われるライブラリWiringPiなどでサポートされていないために、レジスタを直に叩いている(pigpioではサポートされているらしい「Raspberry Pi用pigpio Library – その1:腰も砕けよ 膝も折れよ:So-net blog」)。
私としては兎にも角にもまずはRaspberry Piとの通信を実現したいのである。本書のサンプル内容はやや重い。自分で多少アレンジしてやる必要があるだろう。
ひとまずGPIOでデジタル入出力
書籍の内容を本当に理解していれば、多少手を加えることもできるはず。ということで、本書の7章、つまり一番最初のLチカのプログラムを元に、多少手を加えることにした。
7章の内容は、フルカラーLEDにR,G,Bをそれぞれ与えてやり、2*2*2=8色で点滅させるというものだった。このR,G,Bの出力を外部に引き出し、Raspberry PiのGPIOピンで受けて、LEDのR,G,Bの割合を表示するという、シンプルなものを作ってみた。

内容的には、7章の内容と、MAX10基板とRaspberry Piのピンアサインを押さえておけばできてしまう内容であるが、では一周目に7章を終えた私にできたかと言えば、厳しかったろう。やはりとにかく一回最後までやってみる、ということは人間の学習の過程として大事である。
Raspberry PiのGPIOピンを使ったデジタル入力のプログラムは、以前書いた記事「Raspberry Pi のGPIO経由で入力信号を連続的に取得 – 或る阿呆の記」の内容。なんでもメモっておくものだ。
なお、MAX10基板とRaspberry Piの接続には、拡張基板としてマルツで販売されているMAX10-EBを使った。
MAX10-EB 拡張ボード MTG-MAX10-EBの通販ならマルツオンライン
別に必須というわけではないのだが、半田ジャンパで使うピンをセレクトできるし、見た目にもスマートなので、Raspberry Piと連携させるなら素直に使うと良いと思う。
更新滞り
ところで、前の更新から一週間以上空いてしまった。書くことがないわけではなかったのだが、ここのところ文章を書く気が起きなかったのだ。雑文でも、文章を書くとはそれなりに神経を使う作業である。文字を打つ(私にとって文字とは書くものではなく打つものである)ことは自分にとって大切なことなので、面倒がらずに続けていきたいのだが…。
関連記事
Raspberry Pi の記事
- [2018年8月4日] Raspberry Piとかやり始めた時に知っておきたかった電子工作系のネットショップ
- [2017年11月18日] Raspberry Piに固定IPアドレスを付与する時の設定
- [2017年10月3日] とにかくRaspberry Piにpython3 + numpy + matplotlibをインストールする(pyenv使用)
- [2017年9月12日] ADボードUSB-AI16-16EをRaspberry Piで使う
- [2017年9月7日] Raspberry Piで無線LANに接続する手順
- ---本記事---
- [2017年7月27日] MAX10でFPGAを始めた…Raspberry Piを補完したい
- [2017年6月15日] Raspberry Piでも使いやすいGPSモジュールNEO6Mの基板で10-100kHzのPPS信号
- [2017年4月20日] PiVPNでエラーが出たのでインストールしなおした
- [2017年3月13日] Raspberry PiをOpenVPNサーバーにした…とても簡単で有難い
- [2016年12月7日] GPSでよくみるPPS信号とはなにか
FPGA の記事
- ---本記事(カテゴリー内最新)---
- [2017年8月2日] MAX10 FPGA入門のためにアレコレ調べている
- [2017年7月27日] MAX10でFPGAを始めた…Raspberry Piを補完したい
- [2017年7月26日] Pin Plannerでプルアップ抵抗のOn/Off列が見つからない時の対応
- [2017年7月26日] ALTERAのQsysでHDL生成したら Warning (20028): Parallel compilation is not licensed and has been disabled と警告された時の対応
- [2017年7月22日] USB-Blasterのドライバーが見つからない時の対応
スポンサーリンク