2013/02/11からのアクセス回数 11082
Raspberry Piではできないアナログ処理をPSoC1で補えたらと考えて、PSoC1に再挑戦することにしました。 トラ技で最初にPSoCの連載が始まった頃に少し使って見たのですが、何も記録に残していなかったので、 まったく記憶にありません。
PSoC Designerもバージョンを重ねて、使い勝手も変わったので手順をおさらいしながら始めることにしました。
昨年のトラ技オフ会でお会いした大野さんの「アナログ・マイコン!?PSoCに目覚める本」をベースに進めることにしました。
PSoCに書き込むための実験ベンチをブレッドボードに作って置くと書き込みやちょっとした実験をするときに便利です。
大野さんの本では、MiniProgとの結線にワイヤー線を使っていますが、ハンダ付けを省略するために、桑野さんの「PSoCマイコン・トレーニングキット」に紹介されている方法で実験ベンチを作りました。
先の実験ベンチには桑野さんの本の図1-1で紹介されている以下のLED点滅実験回路が組み込まれています。
PSoCのプログラムをするPSoC Designerも「PSoCマイコン・トレーニングキット」の時からバージョンアップを重ね、5.2となっています。
使い方も変っているので、大野さん方式でLED点滅のプログラムを作ってみます。
PSoC Designerでの処理は、以下の順で進めます。
最初にLED点滅のプロジェクトを作成します。File->New Project…を選択し、Name:にPWMLEDと入力してOKを押し、DeviceからCY8C29466-24PXIを選択してOKを押します。
大野さんの本を読むと、PSoCをかなり使いこなしているなぁと感じる部分が多々あります。
プロジェクトの作成後の初期画面は、以下の様にいくつもの設定画面が配置されています。これでは1個の画面のサイズが小さくなってしまい、設定値の入力時にもスクロールが必要です。
大野さん方式では、Window->Auto Hide Allメニューを選択して、縦のタブに画面を隠し、必要に応じて画面を表示します。 *1
最初にGlobal Resourcesタブを選択してVC1~VC3の周波数の設定をします。
24MHzのシステムクロックをVC1にセットし、VC2=VC1, VC3=VC1/240とします。
User Modules画面からPWMsを開き、PWM16をダブルクリックするとPWM16がチップ画面の左上に配置されます。配置場所は、マウスで変更することができます。 これでPWM16_1という名前で1個目が配置されました。
同様にPWM16_2を配置します。
モジュールの設定は、モジュールをマウスで選択し、Parameters-モジュール名タグをクリックして入力します。
PWM16_1, PWM16_2の設定は以下の様にセットします。
PWM16モジュールの設定で、PWM16モジュールと行出力が結線されます。
最初にPWM16_1の出力線をグローバル出力線と結線します。マウスを行出力線RO0[3]の上に持って行くと、 赤くなりますので、ここでダブルクリックをするとRow_0_Output_3のダイアログが表示されます。
入出力セレクタをダブルクリックしてRow_0_Output_3を選択し、次に論理演算ユニットをダブルクリックしてAを選択、 最後に上から2番目の出力バッファをダブルクリックしてGlobalOutEven_3を選択します。
最後の設定が、グローバル出力線とピンを接続する部分です。 最初にGOE[3]をPort0[3]に接続します。GOE[3]の出力線にマウスを移動すると赤くなりますので、 ここでダブルクリックして出力ピンをセットします。ここでは、Port_0_3を選択します。
同様にRO0[0]をPort_0_4に接続します。
PWM16モジュールの開始をmain.cに追加します。
Wrokspace ExplorerのPWMLED->Sources以下のmain.cをダブルクリックして、
main.cのmain関数を以下の様に修正します。
void main(void) { // M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts // Insert your main routine code here. PWM16_1_Start(); PWM16_2_Start(); }
プログラムの作成には、BuildメニューからGenerate/Build 'PWMLED' Projectを選択します。
無事プログラムが作成されるとOutputに以下の様なメッセージが出力されます。
PSoC MiniProg1をブレッドボードに接続し、USBコネクターに差します。
ProgramメニューからProgram Partを選択すると設定画面が表示されます。
Port SelectionでMiniProg1が選択されているのを確認して、書き込みボタンを押します。書き込みには40秒ほどかかります。 無事書き込みが終わったら、電源ボタンを押してPSoCに電源を送ります。
無事2個のLEDが点滅しました。
皆様のご意見、ご希望をお待ちしております。