MAX10基板とRaspberry PiでGPIO使ったデジタル入出力

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の割合を表示するという、シンプルなものを作ってみた。

LEDのRGBを表示する

内容的には、7章の内容と、MAX10基板とRaspberry Piのピンアサインを押さえておけばできてしまう内容であるが、では一周目に7章を終えた私にできたかと言えば、厳しかったろう。やはりとにかく一回最後までやってみる、ということは人間の学習の過程として大事である。

Raspberry PiのGPIOピンを使ったデジタル入力のプログラムは、以前書いた記事「Raspberry Pi のGPIO経由で入力信号を連続的に取得 – 或る阿呆の記」の内容。なんでもメモっておくものだ。

なお、MAX10基板とRaspberry Piの接続には、拡張基板としてマルツで販売されているMAX10-EBを使った。

MAX10-EB 拡張ボード MTG-MAX10-EBの通販ならマルツオンライン

別に必須というわけではないのだが、半田ジャンパで使うピンをセレクトできるし、見た目にもスマートなので、Raspberry Piと連携させるなら素直に使うと良いと思う。

更新滞り

ところで、前の更新から一週間以上空いてしまった。書くことがないわけではなかったのだが、ここのところ文章を書く気が起きなかったのだ。雑文でも、文章を書くとはそれなりに神経を使う作業である。文字を打つ(私にとって文字とは書くものではなく打つものである)ことは自分にとって大切なことなので、面倒がらずに続けていきたいのだが…。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。