PICマイコンを使って測定ツールを作ってみよう(番外編2) ―― FPGAを使って測定ツールを作ってみよう
tag: 組み込み 半導体 電子回路 ディジタル・デザイン
エレキ系DIY 2012年6月21日
筆者はこれまで,PICマイコンを使っていろいろな基板を試作してきましたが,そろそろほかのマイコンにも挑戦してみようかと思っています.一番の理由は,ディジタル・オシロスコープを作るうえで,PICマイコンでは十分な性能を確保できないと考えたからです.ディジタル・オシロスコープを実現するためにはLCD(液晶ディスプレイ)端末のようなものが必要です.ビデオ・バッファを制御できて,充実したライブラリも欲しいところです.グラフィックス処理回路を内蔵したマイコンを使う手もあるのですが,あとでたびたび回路を改造するには,CPUコアを組み込めるFPGAのほうが良いかと思い,評価ボードを探してみました.(筆者)
エレキ系DIY・連載「PICマイコンを使って測定ツールを作ってみよう」 バック・ナンバ
第1回 クロック周波数やモータの回転数を測れるカウンタを作る(前編)
第2回 クロック周波数やモータの回転数を測れるカウンタを作る(後編)
第3回 Visual BasicでPICマイコンを制御する
第4回 ネットワークでセンサ・データを集めて省電力生活を目指す
第5回 ネットワークとA-Dコンバータを利用してさまざまな場所の温度を測る
番外編1 ガイガー・カウンタを作ってみた
第6回 PIC12F1822を搭載したRS-485ネットワーク対応のセンサ基板を作成
ここでは,台湾のTerasic社が発売している「Altera DE0 Board(以下,DE0)」というFPGAボードを使います.DE0については,CQ出版からも関連書籍が刊行されています.
アプリケーション開発では,BSP(Board Support Package;各種I/Oに対応したライブラリ群,Windows APIのようなもの)が整備されているかどうかが重要です.DE0はBSPが比較的しっかりしています.ただし,デモ・プログラムが力不足で,かつBSPの説明もやや不足しているように思います.
デモ・プログラムとしては,LEDを表示したり,SDカードからデータを読み出したりするサンプルが用意されています.DE0の潜在能力は,上位機種のDE2-115に匹敵すると思うのですが,あえてそのことは明示されていません.それを確認するために,ここでは上位機種に付属するEphotoというアプリケーション・プログラムをDE0に移植してみました.
これはあくまでも個人的に行ったことであり,なんら動作を保証するものではありません.あくまでも個人の学習の範囲で使ってください.Terasic社へも問い合わせないでください.
DE0のマニュアルや最新のファームウェアなどは,同社のホームページからダウンロードできます.
Terasic社は米国Altera社のFPGAを使った評価基板を長年作り続けている台湾企業で,大手3社のうちの1社です.技術サポートがとてもよく,質問メールにはその日のうちに回答が来ます.とても親切なメーカーと思います.
●周辺機能が盛りだくさんなDE0
DE0の構成はマニュアルにもありますが,ブロック図を見るよりも実物の写真を見たほうが早いと思います(図1).
これを見ると,非常にコンパクトにいろいろな部品を基板に実装していることが分かります.スライド・スイッチが10個,押しボタンが3個,7セグメントLEDが4けた,緑色LEDが10個,32ビットの拡張コネクタが2本実装されています.さらにJTAGコネクタ端子,16×2文字のLCD接続端子,UART端子,SDカード・コネクタ,PS2KBD/マウス・コネクタ,VGAコネクタ,USB-JTAGコネクタ,電源ジャックと,よくもまあこれほど詰め込んだものです.
すべて片面に部品を実装しているので,実装コストも安価だと思われます.FPGAはEP3C16F484C6というデバイスで,Altera社のFPGAでは普及版とされているCycloneシリーズです.Digi-Keyで単品購入すると49.9ドルもします.SDRAMが8Mバイトあり,フラッシュROMは4Mバイトあります.これだけの部品をのせて119ドルですので,驚きです.おまけにUSB-Blasterの機能を内臓しているので,USBケーブル以外必要ありません.USBケーブルとACアダプタも製品には同梱されています.電源ACアダプタを使わなくても,USBケーブル経由でパソコンから電力を供給することも可能です.
詳しい仕様は,マニュアルや書籍に譲ります.
付属CD-ROMに収録されているデモ・アプリには,以下の3種類があります.
- DE0_Default
- DE0_NIOS_SDCARD
- DE0_VGA
DE0_Defaultは,工場出荷時に基板に書き込まれているデモ・アプリで,7セグメントLEDの4けたが同時に0,1,2と増えていき,横の10個の緑色LEDがナイトライダのように左右に点滅していきます.
DE0_NIOS_SDCARDは,デモ・アプリとしては一番複雑で,SDカードの中のファイルを調べ,TEST.TXTというファイルがあれば,その内容をコンソールに表示します.Nios IIというCPUをFPGAの中に作り,それ用のファームウェアを実行します.
DE_VGAは,VGAモニタを接続して色パターンを表示するデモ・アプリです.スライド・スイッチSW0を上下させると,パターンが変化します.
アプリがこれだけだと,寂しい限りです.LCD端末を作ろうと思っても作れません.同じTerasic社から170ドルのLTMという4インチLCD(タッチ・パネル付き)が発売されています.これを接続すると,もう少しましになります.DE0基板よりも高価なので,そんなにお金を払えないという人はaitendoなどで中古の安いLCDを探してみてください.在庫処分品であれば,4インチ型で300円程度と激安のものもあります.ただし,画面解像度は少し小さくて640ドット×480ドットです.またタッチ・パネル出力はアナログであり,A-Dコンバータでディジタル値に変換されていません.A-Dコンバータを別途用意する必要があります.
LTMの画面解像度は800ドット×480ドットです.A-Dコンバータも付いています.写真などは実物そっくりに映ります.きちんとした完成品なので,初心者にはこちらのほうが良いでしょう.