PSoC 6 BLE Pioneer KitでLチカしてみた

PSoC6
スポンサーリンク

こんにちは。ささこーです。

冬休みに入って特にする事が無いので、PSoC6 BLE Pioneer Kitで遊んでみてます。完全に個人的な興味で書いている記事なので、感心のある方だけご覧ください。

 

PSoC6 BLE Pioneer Kit はデュアルコアになっていて、Cortex M4 とCortex M0+の2種類のCPUを使い分けることができるようです。Cortex M4 は重い処理用、M0+はパワフルではないが消費電力を抑えたいときに使うといいみたい。

今回はPSoC6でLチカする方法を3通り試してみました。

Cypless社から提供されている以下の動画を参考にしました。

http://www.cypress.com/video-library/PSoC/psoc-6-101-lesson-1-3-hello-world-0/604111

ハードウェアでLチカする方法

一つ目はハードウェアでLチカする方法。PSoC Creatorの強みであるブロック線図を用いた配線のみでLチカをしてみます。

まずはPSoC Creatorのプロジェクトを立ち上げる。

で、スケッチの部分にOutput Pinを配置します。

設定は以下の通り。今回はLチカするだけなので、Digital outputのままでOK、後でプログラムしやすいようにNameだけ”RED”に変えておきましょう。

次にPWMブロックを引っ張ってきます。設定はPeriod=1000, Compare=500にします。これで500ms周期でPWMを生成することができる。

最終的にはこんな感じの接続になります。

PWM_1にC1kHzに設定したclockを接続するのを忘れないようにしましょう。

で、Pioneer kitでREDが接続されているP0[3]をPWM信号のoutput pinに設定してやります。

これができたらGenerate applicationでプログラムに必要なすべてのファイルを生成します。ボタン1つで関連するファイルを全自動で作ってくれるなんてやはりPSoC便利。

出来たらmain.cファイルを少し改変します。

まず、Cy_SysenableCM4をコメントアウトします。これでCortex M4のCPUを封印する。

で、PWM_1_StartとCy_SysPm_Sleepを記述します。これでREDの点灯準備完了。コンパイルしてプログラムしてみます。

ちゃんと500ms感覚で点灯していますね。よしよし。

Coretex M0+を使ったLチカ

次にハードウェアの機能を使わずに、Cortex M0+を使ってLチカしてみます。

まずは新しいプロジェクトファイルを生成します。

で、スケッチを作成。今回はハードウェアは使用しないので、Output Pinを配置したら終わりです。HWのチェックを外さないとコンパイル時にエラーが出るので注意。

で、あとは先程同様CM4の使用をコメントアウトして、GPIOの状態を500ms周期で変更する様にプログラムするだけ。

Cy_GPIO_Write(): GPIOのピン状態の設定

CyDelay():msで遅延

 

先程同様にLチカをすることができました。

Cortex M4を使ったLチカ

最後にCortex M4を使用したLチカ。Cortex M0+を使う方法とほとんど同じなので、プロジェクトをコピーして再利用します。

まず、main_cm0p.c上でコメントアウトしていたCy_SysEnableCM4を有効化し、forループ内にあったLED点灯プログラムをコピーしました。

で、コピーしたコードをmain_cm4.cファイルのForループ内にペーストします。

以上で作業完了、先程と同じく500msでLEDが点灯している様子が確認できました。

まとめ

今回はLEDを3通りの方法でチカチカできる方法を理解しました。

 

コメント