ModusToolbox 2.0でEZI2Cを介したPSoC 6の CapSenseのデータ出力 – KBA229699 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by NoTa_4591161 Version: **
Translation - English: Output PSoC 6 CapSense Data Through EZI2C in ModusToolbox 2.0 – KBA229699
質問:
ModusToolbox® 2.0でEZI2Cを介してどのようにPSoC® 6のCapSense®のデータを出力すればよいのでしょうか?
回答:
CapSense Tunerツールを使用する代わりに、以下を実行してEZI2Cを使用してCapSenseデータをI2Cマスターに出力します。
1. カスタマイズされたI2Cデータバッファを定義します。バッファタイプは、配列または構造体になります。
2. バッファ内の各シフトレジスタを定義して、各レジスタにロードされるCapSenseパラメーターを指定します。例えば:
struct
{
uint16 rawcount[2];
uint16 baseline[2];
uint16 diffcount[2];
uint8 idac[2];
uint8 compidac[2];
}csd_param;
3. 以下のAPIを使用して、プライマリスレーブアドレス要求でI2Cマスターに認識されるようI2Cデータバッファーを設定します。
void Cy_SCB_EZI2C_SetBuffer1(CySCB_Type const *base, uint8_t *buffer, uint32_t size, uint32_t rwBoundary,
cy_stc_scb_ezi2c_context_t
*context)
4. 実行中にI2CのデータバッファにCapSenseデータを手動でロードします。
rawcount、baseline、diffcount、modulation IDAC、Compensation IDACなどのセンサーパラメーターを取得する手順を実装すとためのコードを使用します。以下は、rawcountとIDACを取得する2つのコードスニペットです。
Sensor Rawcounttの取得
uint32_t Cy_CapSense_getraw(
uint32_t widgetId,
uint32_t sensorId,
const cy_stc_capsense_context_t * context)
{
uint32_t result = 0uL;
if (widgetId < context->ptrCommonConfig->numWd)
{
if (sensorId < context->ptrWdConfig[widgetId].numSns)
{
result = context->ptrWdConfig[widgetId].ptrSnsContext[sensorId].raw;
}
}
return result;
}
ウィジェットIDACの取得
uint32_t Cy_CapSense_getidac(
uint32_t widgetId,
uint32_t sensorId,
const cy_stc_capsense_context_t * context)
{
uint32_t result = 0uL;
if (widgetId < context->ptrCommonConfig->numWd)
{
if (sensorId < context->ptrWdConfig[widgetId].numSns)
{
result = context->ptrWdConfig[widgetId].ptrWdContext[widgetId].idacMod[0];
}
}
return result;
}