マイコン 工作入門 インドア・プレーン 玄箱PRO   アキバ界隈   100均   イベント

2007年07月13日 アーカイブ

2007年07月13日

USBSPYDER08を使ってみよう(部品外付けで動作させる-前編) (連載3回)

 前回はUSBSPYDER08単体でプログラムを書いてみました。
 今回から二回にわたって、USBSPYDER08に直接部品をつないで動作させます。

= USBSPYDER08に部品をつなぐ =

 第1回目で紹介したようにUSBSPYDER08には8ピンのヘッダが実装されていて、USBSPYDER08に搭載された8ピン・マイコンのすべての端子の信号を引き出すことができます。
 今回は、このピンヘッダに直接部品をつないで動作させます。接続するのは、圧電スピーカです。

 圧電スピーカは、矩形波のパルスを与えるだけで音を出すことが出来る便利な素子です。
 今回使用した圧電スピーカは、TDKのPS1240P02ATという製品です。発振回路のないタイプの圧電スピーカであれば、他の製品も使用することができます。圧電スピーカと2.2kΩの抵抗を直列に接続して、マイコンの8ピンと7ピンの間につなぎました。
 
usbspyder08-3-01.png
 
 USBSPYDER08のピンヘッダに接続するため、4Pシングル・イン・ライン(SIL)コネクタをマイコンの5ピンから8ピンまでの端子に接続し、圧電スピーカは、SILコネクタに取り付けています。

 圧電スピーカを駆動するための信号は、マイコンの8ピンから出力されます。
 そして、本来であれば、圧電スピーカのもう片方の端子はVDDまたはVSSなどの固定電位に接続します。そのため、ここで7ピンを使用する必要はまったくないのですが、4PのSILコネクタを使うとVDDもVSSも取り出すことができないため、このような接続にしています。
 
USBSPYDER08用発音アダプタ完成写真
 
 USBSPYDER08のピン・ヘッダのうち、マイコンに近い側のピンにこのアダプタを取り付けます。
これで準備完了です。
 
USBSPYDER08用発音アダプタ取り付け写真

= アプリケーションのコンセプト =

 これから作成しようとするのは、二つの周波数の音を周期的に切り替えるアプリケーションです。
 うまく調整すると、救急車のサイレンのような音が出てくるはずです。

= 新規プロジェクトを作成する =

 前回同様、今回もProcessor Expertのビーンを利用してプログラムを書きます。

 まず、CodeWarriorとProcessorExpertを使って、新しいプロジェクトを作成します。今回は、"C:\Projects\CW\SPY2"という場所に"SPY2.mcp"というプロジェクトを作成します。その他の設定は前回と同じです。

= プログラム可能パルス発生器ビーンを設定する =

 次に、ビーンを設定します。

 最初のビーンは、前回も使用したプログラム可能パルス発生器(Programmable Pulse Generator : PPG)ビーンです。前回はLEDを駆動するパルスを作成するためにこのビーンを使用しましたが、今回はこのビーンで圧電スピーカを駆動するパルスを作成します。

 周波数を固定していた前回と違い、今回は実行時に音の周波数を変更する必要があります。
 
周期属性ダイアログを呼び出す
 
 周波数を可変できるは、"ADVANCED"(高度な機能)に分類される属性なので、"Bean Inspecter"の下にある"ADVANCED"のボタンをクリックしてから周期属性(Period Property)のダイアログを呼び出します。

周期属性を設定する

 実行中にパルスの周期をある範囲から選択できるようにするため、"Runtime setting type:"(実行時設定タイプ)に"from time interval"(時間間隔から設定する)を設定します。そして、初期値と設定可能な下限値と上限値を設定します。
 ここでは、以下のように設定しました。

初期値と設定可能な下限値と上限値を設定
 
 ここで設定するのはあくまでも周期の下限と上限なので、周波数の単位(Hz)で設定するときには注意が必要です。設定ができたら"OK"ボタンをクリックします。

 "Starting pulse width"(最初のパルス幅)には、50%デューティのパルスを出すために周期の初期値で設定した1msの半分の0.5msを設定します。
 
PPGビーンの属性の設定完了
 
 PPGの設定の最後は、メソッドの選択です。
 メソッドは、ビーンを操作するための関数群のことで、ユーザのプログラムはメソッドを使ってビーンの動きを決めます。ビーンは、数多くのメソッドを装備していますが、使用しないものまでメソッドのコードを生成するとメモリ領域を圧迫してしまいます。このため、不要なメソッドのコードを生成させないことが重要になってきます。
 このアプリケーションでは、PPGの周波数を変更する機能だけを使用するため、"SetFreqHz"(周波数をHz単位で設定する)だけを使います。

 中央の"Bean Inspector"(ビーンの検査官?)の"Methods"(メソッド)タブをクリックするとメソッドの一覧が現れます。"SetFreqHz"だけを"generate code"(コードを生成しろ)に設定し、それ以外は"don't generate code"(コードを生成するな)に設定します。
 
PPGビーンのメソッドの設定
 
 以上でPPGビーンの設定は完了です。

= PTA1に単独入出力ビーンをつなぐ =

 最初に回路図で示したように、圧電スピーカの端子はマイコンの8ピンと7ピンに接続されています。
 8ピンにはPPGビーンをつなぎましたが、7ピンは接続されていません。そこで、7ピンには常時VSSレベルを出力する"BitIO"(単独入出力)ビーンを接続します。

右下にある"Bean Selector"(ビーンの選択)サブウィンドウから、
"Digital input/output" (ディジタル入出力)-
"Standard I/O" (標準的な入出力)-
"Individual pins" (単独の端子)
をダブルクリックで選択していき、
BitIO(単独入出力)ビーンを呼び出します。 

BitIOビーンの呼び出し

 
 このビーンでは属性を二か所設定します。一つ目は、"Pin for I/O"(ビーンが接続される端子)です。
ここに7ピンを示す"PTA1_KBIP1_ADP1_ACMPMINUS"を設定します。
 二つ目は、"Direction"(入出力の方向)です。このアプリケーションでは、出力専用として使用するので、"Output"を設定します。
 
BitIOビーンの属性の設定
 
= Cpuビーンのメソッドを有効にする =

 ビーンを設定した後で作成するユーザプログラムでは、Cpuビーンに属する"Delay100US"(100usec単位で遅延させる)というメソッドを使用します。
 そのため、あらかじめこのメソッドのコードを生成させるように設定しておきます。

 左の"Project Panel"(プロジェクト・パネル)で"Cpu:MC9S08QG4CPA"をクリックし、中央の"Bean Inspector"(ビーンの検査官)の"Methods"(メソッド)タブをクリックします。そして、"Delay100US"を"generate code"(コードを生成させる)に設定します。
 
Cpuビーンのメソッドの設定
 
= スタック領域を拡張する =

 ProcessorExpertでMC9S08QG4のプロジェクトを作成したときのスタック容量は、32バイトになっています。PPGビーンの周波数を変えるプログラムを記述すると、時間を計算するためにスタックを消費するので、初期値の32バイトでは不足してしまいます。
 そこで、64バイトに拡張しておきます。

中央の"Bean Inspector"(ビーンの検査官)の、
"Build options"(構築時オプション)タブをクリックします。
そして、"Generate PRM file"(リンク・ファイルを生成する)-
"Stack specification"(スタックの仕様)-
"Stack size"(スタック容量)
を"40"(16進数の40)に設定します。

 
スタック容量の設定


 
 以上でビーンの設定はおしまいです。
 ビーンの設定が終わったら、メニュー・バーから"Project" - "Make"を選択するか、F7ボタンを押してコードの生成とコンパイルを行います。これで、プログラムのひながたができました。


 次回は、音を出すプログラムを完成させます。

田中範明



2007 7/18 17:30 最初の写真「USBSPYDER08用発音アダプタ完成写真」のコメントで、4Pを6Pと間違っていたので、修正写真に差し替え。

タグ:    

投稿日時: 2007年07月13日 13:12 | | コメント (0) | トラックバック (0)