PSoC™ Creator [Hands On I2C編]
PSoC™を初めて使用する組込ソフトウェア技術者向けにPSoC™ Creatorの基本的な機能の使用方法を説明します。
今回は「CY8CKIT-149」に搭載された、I2CとLED1を用いて、LED点灯を制御するアプリケーションを構築する手順を Hands-On 形式で説明します。
アプリケーション仕様
Hands On で使用する評価ボードは、
・評価ボード名称:CY8CKIT-149
・搭載デバイス:CY8C4147AZI-S475
です。
PCのI2C制御プログラムから、評価ボードのI2Cに対して制御データを出力して、LEDの点灯、消灯を行います。
※I2C制御プログラムは、「Bridge Control Panel」を使用します。このプログラムは、「インストール編」の手順で、PSoC™ Creatorをインストールすると自動的にインストールされます。
PSoC™ Creatorワークフロー
プロジェクトの作成
PSoC™ Creatorを立ち上げプロジェクトを作成します。
プロジェクト作成の詳細はプロジェクト作成編を参照してください。
①PSoC™ Creatorを起動します。
②File>New>Projectを選択します。
③Target DeviceをPSoC 4>PSoC 4100S Plusを選択します。
④Nextを選択します。
⑤プロジェクトを生成するワークスペース、パスおよびプロジェクト名を指定します。
Workspace name : workspace
Location : C:¥PSoC
Project name : Design07
⑥ Finish を選択します。
コンポーネントの設定
コンポーネントの挿入
使用するコンポーネントを回路図に挿入していきます。
Component Catalogから下記の各コンポーネントを選択して回路図にドラッグ&ドロップします。
①Communications > I2C > EZI2C Slave (SCB mode)
②Ports and Pins > Digital Output Pin
EZI2C (EZI2C_1)
①回路図の「EZI2C_1」をダブルクリックします。
②名称(Name)を「I2C」に変更します。
③「OK」を選択します。
LED (Pin_1)
①回路図の「Pin_1」をダブルクリックします。
②名称(Name)を「LED」に変更します。
③HW connectionの「✔」を外します。
④LEDを正論理でドライブするため、
初期値 (Initial drive state) は「 Low (0)」 に
設定します。
⑤「OK」を選択します。
ピンの割り当て
設定した各コンポーネントにPinを割り当てていきます。
各Pin配置は「PSoC™評価ボード説明」の「ピン配置」の項をご参照ください。
①「Pins」をダブルクリックします。
②コンポーネントのPorts/Pinsを設定します。
I2C : scl P3[0](pin18)
I2C : sca P3[1](pin19)
LED : P3[4](pin22)
アプリケーションの生成
ここまでの作業でPSoC™ Creatorがアプリケーションのスケルトンコード(空のmain関数、startup、必要なドライバなどのソースコード)を生成するために必要な情報がすべて入力されました。
メニューから
Build > Generate Application
を選択して、アプリケーションを生成します。
【ショートカット】
あるいは、コマンドアイコンからGenerate Application を選択してアプリケーションを生成することも可能です。
ソースコードの記述
①「main.c」をダブルクリックしてファイルを開く。
②ソースコードを作成します。最初に記述されていたテキストを全て消去してください。
下記のソースコードをコピーして貼り付けてください。
#include "project.h"
int main(void)
{
uint8 i2cbuf[1] = { 0 } ;
CyGlobalIntEnable; /* Enable global interrupts. */
I2C_Start() ;
I2C_EzI2CSetBuffer1(1, 1, i2cbuf) ; /* bufsize, rwBoundary, *buf */
for(;;)
{
if (i2cbuf[0]) { /* if non-0 is written, light LED */
LED_Write(1) ;
} else {
LED_Write(0) ;
}
}
}
プロジェクトの書き込み
①プロジェクトを書き込むため、評価ボードをPCへ接続します。
②「Build」をクリックしプロジェクトをビルドします。
無事ビルドが完了すると、Output領域に「Build Succeeded」がレポートされます。
③「Program」をクリックし、ターゲットボードに書き込みを行います。
Output領域に「Device ‘デバイス名’ was successfully programmed 」がレポートされれば書き込み完了です。
動作確認
PCのI2C制御プログラムの起動
Windowsメニューから“Cypress”フォルダの“Bridge Control Panel”を選択して起動します。
ここで KitProg/xxxx を選択して、Connected が緑色で表示されていることを確認してください。
LED消灯
Editor ペインにて
w 08 00 00 p
と入力した状態で
Send ボタンを押すと
モニタペインに
w 08+ 00+ 00+ p
と通信状態が表示されます。
+ はスレーブ側から ACK が
送られたことを示します。
今回は
スレーブアドレス: 08
レジスタ・コマンド: 00
データ値: 00
p: (ストップコンディション)
を出力しているので、ボード上
のLEDは消灯します。
LED点灯
次に Editor ペイン内を
w 08 00 01 p
と変更して、
Send ボタンを押します。
今回は
データ値: 01
を出力しているので、ボード上
のLEDは点灯します。
担当エンジニアからの一言
今回は、I2Cを使用したアプリケーションの作成を説明しました。
E2PROMやセンサーなどのデバイスとの通信に、広く普及しているI2Cのインターフェイスを、コンポーネントのI2Cで、簡単に動作させることができるため、とても便利です。
これまでの説明が、PSoC™ Creatorを使用する開発の参考となれば幸いです。
PSoC™ Creatorはこちらから