Article header library 110733  6

PSoC 3 開発キット CY8CKIT-030 MCUを使ったGPIO制御でLチカ!

MCUを使ったGPIO制御でLチカ!

Article header l%e3%83%81%e3%82%ab 318x140  1

今回はソフトウェアを使ったLチカ!です。SWを押すとLEDが点灯、はなすと消灯します。前回までとは異なり、SW入力の状態をブログラムで判断し、GPIOからHigh/Lowを出力させます。

回路イメージ

Article header  363x319  1

PSoCのI/Oは今まで使用している通り、
 SW側:Digital Input , Drive Mode:Pull-up設定
 LED側:Digital Output設定 として使います。

SWが押されると ”Low”、はなすと ”High”として認識します。次にSWの状態をプログラムで判断処理します。SWをはなした状態、つまり、SW_Read=1の条件が成立するとGPIOからはLowを出力、LEDは消灯。逆にSWを押すとSW_Read=1の条件が不成立となりGPIOからはHighを出力、LEDが点灯するようにプログラムを作成します。言葉では説明が難しいので回路イメージを右図に示します。今回の資料も「スイッチでLチカ!」を元に記載していますので過去の資料も合わせてご覧ください。
  
スイッチでLチカ!をご覧になっていない方はこちら
 

PSoC Creatorの設計

まず準備段階として「スイッチでLチカ!」で使用したコンポーネントを準備します。この時、SWとLEDの間にある配線は削除してください。

では作業をご紹介します。
■コンポーネントの設定
 今回のプログラム制御ではSWとLED間のハードウェア結線を行わないため、HW Connection のチェックボックスをクリアします。
 SWのコンポーネントは入力設定なので Digital Input チェックボックスの下にあるHW Connection、
 LED のコンポーネントは出力設定なので Digital Output チェックボックスの下にあるHW Connectionのチェックボックスを それぞれクリアしてください。設定が終わったらOKボタンを押し設定画面を終了させます。

Article header hwconnection%e3%81%ae%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%92%e5%a4%96%e3%81%99 697x385  1

 

Article header main 379x282  1

■main()の編集
 TopDesign.cyschからmain.cタブを選択し編集作業を行います。プログラム制御をするため以下のコードを追加して下さい。

 /*追加コード*/
  if(SW_Read()) { 
    LED_Write(0);
  } else {
    LED_Write(1);
  }
 ※用意されているAPIを利用しています。
  uint8 Pin_name_Read( void )    ・ピンコンポーネントの現在の状態を読み込む
  void Pin_name_Write( uint8 value ) ・ピンコンポーネントに値を書き込む

 追加後、ファイルをセーブします。

 

Article header  379x241  1

■プロジェクトのビルド
 Build ->Build プロジェクト名 を実行して、プロジェクトのビルドを行って下さい。
  “---- Build Succeeded: **/**/**** **:**:** ---”
 と表示されたらBuild成功です。

  SWとLEDの間を未配線でビルド成功するので、ちょっと不思議な感覚です。

 

Article header  300x323  1

■書込み
 最後にDebug ->Programを実行しデバイスに書込み終了です。

 正常に書き込みが完了すると、
  Device ‘**************’ was successfully programmed
 と表示されますので確認してください。

 SWを押してLEDが点灯すればOKです。

ちょっと役立つ情報をご紹介

最後に役立ちそうな情報をご紹介します。
■Special IO(SIO)の設定方法
 一部のI/OはデジタルのGPIOとは別にSpecial IOと呼ばれるI/Oが用意されています。
 SIOはPinsコンポーネントのInputタブもしくはOutputタブで設定で、SIOにアサインすることを強制できます。

Article header sio 700x440  2

Article header hotswap 300x178  1

■SIOの使い道
 SIOは5.5VトレラントになっていますのでPSoCのVddよりも高い電圧、5.5Vまでの入力が可能です。Hot Swapを有効にする設定をすれば使用できます。
 この他にもThresholdをVrefとHysteresisにチェックをつけ、VDACなどを接続することによりComparatorとして使用できます。Hysteresisにチェックをつけることにより閾値から±50[mV]以内の変化の影響を取り除くことができるようになります。

だんだん難しくなってきましたが、どうでしたか?次回も別の機能をご紹介しつつ、Lチカ!を実現します。

■評価キットはこちらから購入できます
 PSoC 3 開発キット: CY8CKIT-030

関連タグ