PSoC 4100S CapSenseの使い方(その4)

Cypress PSoC 4100S/4000S内蔵タッチセンサ:第4世代CapSenseの使い方、4回目は、CapSenseとペアで用いるEZ-I2Cコンポーネントを説明します。

PSoC 4100S/4000S内蔵第4世代CapSenseの使い方第4回内容
PSoC 4100S/4000S内蔵第4世代CapSenseの使い方第4回内容

EZ-I2CはCapSenseリアルタイムモニタ出力

EZ-I2Cコンポーネントは、CapSenseの入力状態をパソコン上でリアルタイムモニタする時に使います。

ユーザが開発したハードウェア:タッチパッドやスライド・バーが所望動作をしているかを確認し、必要に応じてCapSenseコンポーネントのBasicタブ以外の詳細プロパティを設定する時に役立ちます。

※CapSenseコンポーネントのプロパティ設定は、その3前半参照。

本開発の評価ボード:CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kit でこのリアルタイムモニタを試すときは、TopDesign.cysch上のCapSenseコンポーネントを右クリックし、Launch Tunerで起動されるSense Tuner画面で動作確認ができます。

Launch Tuner起動時Sense Tuner画面
Launch Tuner起動時Sense Tuner画面。CapSense指位置リアルタイムモニタが可能。

EZ-I2Cコンポーネント

デバイス間シリアル通信:Serial Communication Block(SCB)コンポーネントは、I2C(EZ-I2C含む)/SPI/UARTの3モードで動作します。EZ-I2Cコンポーネントは、このI2Cモード通信の1種で、PSoCデバイス用に簡素化したI2Cです。

PSoC Creatorのコンポーネントカタログの⊞Communicationを開くと、既にSCBの3モードで主要プロパティ設定済みのコンポーネントが見られます(補足:SCBコンポーネント3モード章の図参照)。この中からEZ-I2C Slave(SCB mode)をクリック&ドロップでTopDesign.cyschへ配置すれば、詳細なデータシートが見られます。

EZ-I2Cコンポーネントで追加するプロパティ設定は、CapSenseコンポーネントの時(その3前半参照)と同様で、Basicタブ設定のみで十分です。

CapSense → EZ-I2Cは、RAM利用

CapSenseコンポーネントとEZ-I2Cコンポーネント間は、RAMでデータを渡します。TopDesign.cyschの両コンポーネント間を接続する配線などが無いのは、このRAM経由のためです。

EZI2CのAPIを使って両コンポーネントのRAMを接続します。CapSenseコンポーネントデータシートのP8に記載例があります。

CapSence出力のEZ_I2CへRAMデータ送信記述例
CapSence出力のEZ_I2CへRAMデータ送信記述例

※上記ソースコードは、CapSenseがブロッキングスキャンで記述されていることに注意してください(ブロッキングスキャンについては、その3後半参照)。

CapSenseの使い方(その4:EZ-I2Cコンポーネント)まとめ

PSoC Creatorの第4世代CapSenseコンポーネントとペアで用いられるEZ-I2Cコンポーネントを説明しました。

  1. EZ-I2Cコンポーネントは、CapSenseコンポーネント出力のリアルタイムモニタ時に利用。
  2. リアルタイムモニタは、ユーザ開発タッチパッドやスライド・バーのCapSenseプロパティ設定に役立つ。
  3. EZ-I2Cコンポーネントは、SCBコンポーネント利用法:I2C通信の1種。
  4. CapSenseコンポーネントとEZ-I2Cコンポーネント間のデータ送受はRAM利用。

補足:SCBコンポーネントの3モード

SCBの3モードと残りリソース数
SCBの3モードと残りリソース数

評価ボード:CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping KitのCE210709_CapSense_Linear_Slider_and_Buttonsプロジェクトは、本稿で示したようにSCBをEZI2CとしてCapSenseリアルタイムモニタのTuner出力用に1個使用中です。

SCBリソースは、PSoC 4000Sは2個、PSoC 4100Sは3個あります(Resource MeterはPSoC 4000Sの例)。そこで残りのSCBを、PSoC 4000S/4100S専用タッチUIテンプレートモジュールと装置や他MCUとの通信用に使う予定です。

通信用SCBの3モード:I2C/SPI/UARTのどれを使うかは、タッチUIテンプレート発売までに決めるつもりです。但し、パソコンとの通信テスト環境が簡単に準備できるUART、またはI2Cが有力です。この詳細については、次回評価ボードの解説時に説明します。