Cypress PSoC 4100S/4000S内蔵タッチセンサ:第4世代CapSenseの使い方、4回目は、CapSenseとペアで用いるEZ-I2Cコンポーネントを説明します。
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画面で動作確認ができます。
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に記載例があります。
※上記ソースコードは、CapSenseがブロッキングスキャンで記述されていることに注意してください(ブロッキングスキャンについては、その3後半参照)。
CapSenseの使い方(その4:EZ-I2Cコンポーネント)まとめ
PSoC Creatorの第4世代CapSenseコンポーネントとペアで用いられるEZ-I2Cコンポーネントを説明しました。
- EZ-I2Cコンポーネントは、CapSenseコンポーネント出力のリアルタイムモニタ時に利用。
- リアルタイムモニタは、ユーザ開発タッチパッドやスライド・バーのCapSenseプロパティ設定に役立つ。
- EZ-I2Cコンポーネントは、SCBコンポーネント利用法:I2C通信の1種。
- CapSenseコンポーネントとEZ-I2Cコンポーネント間のデータ送受はRAM利用。
補足: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が有力です。この詳細については、次回評価ボードの解説時に説明します。