自作する際に使用するIC、ソフトや装置

AVR

 ATMEL社のAVRはマイクロコントローラー(マイコン)の一種であり、PICというマイコンと共に、よく使用される。その他のマイコンとしては日立のH8など(日電、富士通、三菱、ルネサスにも高性能な物あり。このへんのICは日本も隠れた世界標準。)が有名。
 マイコンは1つのICの中にCPU, RAM, プログラム用ROM(Flash memory), GPIO(General purpose I/O), A/D converter (ADC), Timer/Counterなどが集積されており、1つのICのみで種々のことが出来る。
 この章ではAVRを使っていろいろな装置を作ったので紹介する。AVRを選択したのは、開発環境としてBASCOM-AVRというソフトがあり、BASIC言語でプログラミングが出来るからである。C言語(gcc)の開発環境もあるが、BASICよりは面倒なような気がしたので、BASCOMにした。Cを使用した場合、各種の制御方式(SPI等)の関数を作成したりする時間がもったいない。BASCOMでは最初からそれらインターフェース、PWM制御、タイマーを含む各種割り込み、液晶表示器のコマンドなどがほとんど全て揃っており、非常に強力な言語体系を持っている。さらに、倍精度浮動小数点演算までサポートしているので、新しい関数を書かなくてもBASCOMのみで何でもできてしまう。したがって、小規模システムを短時間で作成するには最も良い選択である。
 BASCOMについてはインターネットにいろいろなサイトがあり、そこで解説されているので詳細は省略する。がっちり取り組むなら、そのPDFマニュアルを読むとよい。BASCOMは4kBまでのプログラム(コンパイル後)なら無料版でコンパイルできるが、紹介した機器のプログラムはほとんどが4kBを越えている。(ちゃんとしたライセンス版でコンパイルすること。) なお、本サイトで添付したソース自身は無料のBASCOMで読める。(コンパイルは無理かも?)。BASCOMはWindowsでしか動かないが、マックOSXのBootcampでも動くので、その上でコンパイル、AVR書込も出来る。
 幾つかの回路では共立電子デジットのABL基板(AVR USBブートローダー)を使用している、この基板はAVRが搭載されてUSBインターフェースを備えており、装置の完成後、パソコン(PC)とのUSB経由のデーターやりとりが可能になり、便利である。装置へPCから測定コマンドを発行したり、装置から取得したデーターをPCへ送信するといった用途に活用できる。コマンドやデーターの通信をASCII文字列で定義(AVRのプログラミング)しておけば、PC上のLabVIEWやCプログラムで装置を制御可能である。また、デバッグ時にも変数の値を返送させることにより、わかりにくいバグを探す場合などにも便利である。共立デジットのAVR USBブートローダー基板にはMega128の他に、Mega168やMega328のものがある。

CPLD, FPGA

 紹介した幾つかの機器ではCPLDやFPGAも使用している。CPLD (Complex Programmable Logic Device) はゲートやフリップフロップ等のロジック素子を集積したもので、ユーザーが構造をプログラムできる。CPLDはゲート遅延が予測しやすいのでタイミング制御が厳しい用途に使用している。FPGA (Field Programmable Gate Array)はCPLD同様、任意のロジック回路をユーザーがプログラムできるゲートアレイである。CPLDと比べ、より大規模な回路を作成でき、また、かけ算をするMultiplierや、内部にRAMモジュールも持っている点がCPLDとは異なる。それらの詳細については、CQ出版社から、いろいろな解説書(参考文献の項参照)が出ているのでそれらを参照されたい。また、メーカーからのマニュアルも参考になる。
 CPLDとFPGAのメーカーとしてはXilinx, Alteraが有名であるが、今回はAlteraのものを使用した。ブロックダイアグラムを使って設計する際に、筆者には昔からなじみのあるTTL 74xxシリーズの論理ブロックが揃っていたためである。なお、XilinxのCPLDやFPGAを使っても同様の集積回路が実現できるので、そちらに慣れた方は、それらで作成可能である。
 Altera社のCPLD, FPGAの回路設計を行うにはAltera社のサイトからQuartusという開発環境をダウンロードする(Free)。計測器においてはタイミングが厳しい場合が多かったので、ブロック図による設計を主に使用した。場合により、Verilog設計言語の使用もした(シーケンサーなどにはこちらの方が記述しやすい)。QuartusはWindowsでしか動かないが、マックOSXのBootcampによるWindowsで動くので、筆者はマックのIntel Dual coreやQuad coreを使っている。普通のPCよりも高性能なのでコンパイル時間が短くてすむ。

回路図CAD

 Eagleを使用している。Eagleについては、回路作成編の感光基板によるプリント基板の作成ページを参照。Windows版、マック版ともに有り。

Top Pageへ