レビュー
» 2006年07月05日 04時20分 公開

電子工作をはじめよう:初めてのマイコン フリースケール「DEMO9S08QG8」を試す

フリースケール・セミコンダクタ・ジャパンの「DEMO9S08QG8」は、電子工作入門者に最適な8ビットマイコン評価ボードだ。

[瓜生聖,ITmedia]
フリースケール代表取締役社長 高橋恒雄氏(写真=奥)と九十九電機代表取締役社長 鈴木淳一氏(写真=手前)

 電子工作をやってみたい――「DEMO9S08QG8」は、そんな人に最適なマイコン評価ボードだ。同製品は、フリースケール・セミコンダクタ・ジャパン(以下、フリースケール)と九十九電機の協業により、ツクモロボット王国で販売が開始された。発売当時は、5月の連休を前にして初期入荷した60台すべてが即日完売という、この手の商品ではまれに見る売れ行きを見せている。実売6000円前後と手ごろな価格ながら、この1台でさまざまなテストを行える手軽さが魅力の1つだ。

 先に白状してしまうが、筆者はプログラミングこそ20数年の経験があるが、決してハードウェアには明るくない。ハードウェア絡みのプログラミングといえば大学時代に吉野家の牛丼1杯で友人の卒論の3軸ロボットアームの制御プログラムを請け負ったくらいだ。だが、そのような筆者にとってもこの「DEMO9S08QG8」は非常に興味深い。例えて言えばプログラミング版電子ブロックのような楽しみ方のできる製品になっている。

DEMO9S08QG8とは

 そもそもDEMO9S08QG8は何を目的にしたものか。これは簡単に言えば8ビットマイコンHC(S)08ファミリのMC9S08QG8の挙動・プログラミングを学習するためのキットだと考えて差し支えない。PCとの接続にはUSBを使用し、それだけで給電からフラッシュメモリ内のプログラムの書き換え、USB/BDMインタフェースによるデバッグまで可能になる。さらに、開発ツールとして「Code Warrior Development Studio for HC(S)08 Special Edition」が標準で同梱されている。

 また、基板上には押しボタンスイッチと光センサ、LEDなど入出力が可能なデバイスがいくつか搭載されているほか、拡張用として使用できるRS-232Cコネクタ、32ピンI/Oポートも用意されている。ヘッダピンを実装すればBDMポートも使用可能だ。つまり8ビットマイコンのMC9S08QG8を試すための機能を一通りそろえているわけだ。

ボタンとLEDを各3つずつ搭載するほか、照度センサーも備える。またインタフェースとして、USBとRS-232Cコネクタ、32ピンI/Oポート、BDMポートも用意されている

まずは開発環境をインストール

 DEMO9S08QG8は、PCからはUSB MultiLinkとして認識される。これはDEMO9S08QG8上に実装されているHC(S)08のモニタモードにUSBからアクセスできるデバッグ用のインタフェースだ。そのため、実際にはこのデバイスの先にMC9S08QG8があるという図になる。開発環境として「Code Warrior Development Studio for HC(S)08 Special Edition」が同梱されているので、まずはこれをPCにインストールしよう。

マニュアルは英語だがインストールは画面の指示に従うだけなので迷うことはない

 さて、開発環境のインストールが完了したら、PCを再起動してからUSBケーブルでPCとDEMO9S08QG8を接続する。ハードウェアの追加ダイアログが開くので、指示に従ってドライバをインストールすればUSB MultiLinkとして認識される。正常に動作するとDEMO9S08QG8の基板上のLEDのうち、USB、OUT USB PWR、VDDが点灯し、LED2が点滅し始める。

 なおDEMO9S08QG8には工場出荷時にテスト用のプログラムがあらかじめ書き込まれている。試しにSW1を押してみるとLED1が点灯するはずだ。これはトグルになっているので再度SW1を押すとLED1は消灯する。

 このテスト用プログラムのソースコードは添付CD-ROMにzip形式で収録されている。ローカルドライブに展開してからCodeWarriorのプロジェクトファイルDemo_S08QG8_Test.mcpをダブルクリックするとCodeWarriorが起動するので中を覗いてみよう。左のFilesウィンドウからdemo9S08QG8.cを開けばSW1の割り込みハンドラでLED1を反転させていることが分かる。

出荷時に書き込まれたテストプログラムは、ボタン(SW1)を押すことでLED1の点灯/消灯を制御する。ソースコードはdemo9S08QG8.cだ

デモプログラムの準備

 添付のCD-ROMにはデモ用のプログラムも収録されている。そもそもDEMO9S08QG8の使い方としては、PC上でプログラミングを行い、それをMC9S08QG8に転送し、デバッグ/実行を行うというのが一般的だ。ここではプログラミングが終わった後の一連の流れを確かめるためにデモ用プログラムを転送してみることにしよう。なお、プログラムを転送すると工場出荷時に書き込まれていたプログラムは上書きされる。

 このデモ用のプログラムはRS-232Cを使って操作するので、先に通信端末を用意しておく。PCとDEMO9S08QG8をRS-232Cケーブルでつなぎ、TeraTerm Proやハイパーターミナルなどの通信ソフトでCOMポートに接続する。なお、PC側のRS-232Cコネクタはオス、DEMO9S08QG8側はメスなので、ケーブルは両端がオス・メスになっているものが必要になる点に注意してほしい。通信ソフトは4800bps、8ビット、ストップビット1、パリティなしに設定する。

シリアルケーブルを接続し、TeraTermなどの通信ソフトを用意する

 RS-232Cの準備ができたら先ほどと同じフォルダにDEMO9S08QG8_APP.zipがあるので、これを解凍してDEMO9S08QG8_App.mcpをダブルクリックして開く。プロダクト名のすぐ下のプルダウンメニューが「P&E Multilink/Cyclone Pro」になっていることを確認し、再生マークと虫の絵が描かれたDebugアイコンをクリックする。

 すると「True-Time Simulator & Real-Time Debugger」が起動し、ICDコネクションマネージャが表示される。インタフェースやポートが正常に表示されていればConnectをクリックして先に進もう。Flashメモリヘの書き込みを行うかどうか尋ねてくるので「Yes」をクリックして書き込みを行う。書き込み完了後、プログラムを実行するには「Run/Start」ボタンをクリックすればよい。通信ソフトにメニューが表示されれば起動成功だ。

DEMO9S08QG8_App.mcpを開き、プルダウンメニューを「P&E Multilink/Cyclone Pro」にしてDebugアイコンをクリックするとICDコネクションマネージャが起動する。
ICDコネクションマネージャ内容を確認してConnectを押し、Flashメモリにサンプルプログラムを上書きする。完了後Run/Startボタンをクリックすると、ターミナルにサンプルプログラムのメニューが表示される

サンプルプログラムによるデモを実行

 DEM09S080G8_APPにはクロックや割り込みの設定などを変更したり、テストしたりするための7つのメニューが用意されている。各パラメータの内容を以下に列挙したので、値を変更してどんな挙動をするか試してみるといいだろう。ただし、パラメータをいじっても目に見えて挙動が変わる項目は多くない。

1: ICS setup

  • ICS(lnternal Clock Source:内部クロック・ソース)モジュールの設定

2: TMP PWM setup

  • TPM(Timer/PWM Module:タイマ/PWMモジュール)のクロックソースの設定。TCLKを選択した場合には外部からクロック信号を入力する必要がある

3: MTIM setup

  • MTIM(Modulo Timer Module:モジュロタイマモジュール)の設定。割り込みか発生するたびにLED1が点灯・消灯を綴り退す

4: RTI setup

  • RTI(RealTime Interrupt:リアルタイム割り込み)の設定。RTIは内部の1kHzクロックソースを使用し、ICSの内部基準クロックから独立している。TPMとMTIMを動作させてRTIのクロックを測定したり、RTIをスタート・ストップすることができる

5: STOP test

  • 各ストップモードに入る。モードによってはRTIが有効なときにRTIタイムアウトで復帰する

6: ACMP test

  • ACMP(Analog Comparator:アナログ・コンパレータ)テストにより、ACMPがフォトセンサと電位差計の電圧を比較する

7: ADC test

  • フォトセンサと電位差計の電圧、バンドギャップを測定する

 繰り返しになるが、DEMO9S08QG8はUSB1本で給電からプログラムの書き込み、デバッグまでできてしまうという手軽さと、最初から開発環境が同梱されているという「始めやすさ」が最大の特徴だ。初めて“ハード”に手を出そうとしている人にも敷居の低いパッケージなので是非チャレンジしてほしい。

 また、拡張用のポートも用意されており、直接ボードに実装できる3次元加速度センサーなどの各種モジュールも販売されている。フリースケールの話では、3次元加速度センサーとネットワークを利用した広域リアルタイム地震計などのアイデアもあったそうで、応用例は非常に幅広い。先日行われた電子工作コンテストでもユニークな作品が数多く登場している。腕に覚えのある人も試してみてはいかがだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう