FrontPage

2013/02/11からのアクセス回数 10440

PSoC1に挑戦

Raspberry Piではできないアナログ処理をPSoC1で補えたらと考えて、PSoC1に再挑戦することにしました。 トラ技で最初にPSoCの連載が始まった頃に少し使って見たのですが、何も記録に残していなかったので、 まったく記憶にありません。

PSoC Designerもバージョンを重ねて、使い勝手も変わったので手順をおさらいしながら始めることにしました。

アナログ・マイコン!?PSoCに目覚める本

昨年のトラ技オフ会でお会いした大野さんの「アナログ・マイコン!?PSoCに目覚める本」をベースに進めることにしました。

実験ベンチ

PSoCに書き込むための実験ベンチをブレッドボードに作って置くと書き込みやちょっとした実験をするときに便利です。

大野さんの本では、MiniProgとの結線にワイヤー線を使っていますが、ハンダ付けを省略するために、桑野さんの「PSoCマイコン・トレーニングキット」に紹介されている方法で実験ベンチを作りました。

PSoC_base.png

LED点滅実験

先の実験ベンチには桑野さんの本の図1-1で紹介されている以下のLED点滅実験回路が組み込まれています。

fig_1_1.png

PSoC Designerを使う

PSoCのプログラムをするPSoC Designerも「PSoCマイコン・トレーニングキット」の時からバージョンアップを重ね、5.2となっています。

使い方も変っているので、大野さん方式でLED点滅のプログラムを作ってみます。

PSoC Designerでの処理は、以下の順で進めます。

  1. 新しいプロジェクトを作成
  2. グローバル設定
  3. 2個のPWM16モジュールを配置
  4. PWM16モジュールの設定
  5. 行出力線にPWMの出力結線し、これとグローバル出力線を結線
  6. グローバル出力線とピンを接続
  7. main.cの修正
  8. プロジェクトのビルド(コード生成とコンパイルを一緒に行う)
  9. プログラムをPSoCに書き込む

プロジェクトの作成

最初にLED点滅のプロジェクトを作成します。File->New Project…を選択し、Name:にPWMLEDと入力してOKを押し、DeviceからCY8C29466-24PXIを選択してOKを押します。

大野さんの本を読むと、PSoCをかなり使いこなしているなぁと感じる部分が多々あります。

プロジェクトの作成後の初期画面は、以下の様にいくつもの設定画面が配置されています。これでは1個の画面のサイズが小さくなってしまい、設定値の入力時にもスクロールが必要です。

initial_screen.jpg

大野さん方式では、Window->Auto Hide Allメニューを選択して、縦のタブに画面を隠し、必要に応じて画面を表示します。 *1

auto_hide.jpg

グローバル設定

最初にGlobal Resourcesタブを選択してVC1~VC3の周波数の設定をします。

24MHzのシステムクロックをVC1にセットし、VC2=VC1, VC3=VC1/240とします。

GlobalSetting.png

PWM16モジュールの配置

User Modules画面からPWMsを開き、PWM16をダブルクリックするとPWM16がチップ画面の左上に配置されます。配置場所は、マウスで変更することができます。 これでPWM16_1という名前で1個目が配置されました。

place_PWM16.jpg

同様にPWM16_2を配置します。

PWM16モジュールの設定

モジュールの設定は、モジュールをマウスで選択し、Parameters-モジュール名タグをクリックして入力します。

Parameters_PWM16_1.png

PWM16_1, PWM16_2の設定は以下の様にセットします。

PWM16Setting.png

PWM16と行出力線、グローバル出力線の配線

PWM16モジュールの設定で、PWM16モジュールと行出力が結線されます。

最初にPWM16_1の出力線をグローバル出力線と結線します。マウスを行出力線RO0[3]の上に持って行くと、 赤くなりますので、ここでダブルクリックをするとRow_0_Output_3のダイアログが表示されます。

入出力セレクタをダブルクリックしてRow_0_Output_3を選択し、次に論理演算ユニットをダブルクリックしてAを選択、 最後に上から2番目の出力バッファをダブルクリックしてGlobalOutEven_3を選択します。

RowSetting.png

グローバル出力線とピンを接続

最後の設定が、グローバル出力線とピンを接続する部分です。 最初にGOE[3]をPort0[3]に接続します。GOE[3]の出力線にマウスを移動すると赤くなりますので、 ここでダブルクリックして出力ピンをセットします。ここでは、Port_0_3を選択します。

同様にRO0[0]をPort_0_4に接続します。

GOE_PinSetting.png

main.cの修正

PWM16モジュールの開始をmain.cに追加します。

Wrokspace ExplorerのPWMLED->Sources以下のmain.cをダブルクリックして、

Workspace_Explorer.png

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に以下の様なメッセージが出力されます。

Output.png

プログラムをPSoCに書き込む

PSoC MiniProg1をブレッドボードに接続し、USBコネクターに差します。

ProgramメニューからProgram Partを選択すると設定画面が表示されます。

Program_Part.png

Port SelectionでMiniProg1が選択されているのを確認して、書き込みボタンを押します。書き込みには40秒ほどかかります。 無事書き込みが終わったら、電源ボタンを押してPSoCに電源を送ります。

無事2個のLEDが点滅しました。

Running.png

コメント

選択肢 投票
おもしろかった 24  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


*1 以下の画面では、チップ画面とUser Modulesの画面が表示されています。

添付ファイル: fileRunning.png 1607件 [詳細] fileProgram_Part.png 1568件 [詳細] fileOutput.png 1478件 [詳細] fileWorkspace_Explorer.png 1504件 [詳細] fileGOE_PinSetting.png 1431件 [詳細] fileRowSetting.png 1490件 [詳細] filePWM16Setting.png 1578件 [詳細] fileParameters_PWM16_1.png 1576件 [詳細] fileGlobalSetting.png 1496件 [詳細] fileplace_PWM16.jpg 1623件 [詳細] fileauto_hide.jpg 1553件 [詳細] fileinitial_screen.jpg 1608件 [詳細] filefig_1_1.png 1722件 [詳細] filePSoC_base.png 1515件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-09-25 (月) 13:18:01 (212d)
SmartDoc