1 Reply Latest reply on May 8, 2020 12:41 AM by JuyoungJ_06

    Community Translation - Mutual Capacitance Calculation of a CapSense Sensor Through Firmware - KBA222425

    NoTa_4591161

      Hi,

       

      I would like to translate KBA222425 into Japanese.

       

      Thanks,

      Kenshow

       

      Original KBA:

      Mutual Capacitance Calculation of a CapSense Sensor Through Firmware - KBA222425

       

      Translated by Kenshow

      ==============================

       

      タイトル:ファームウェアによるCapSenseセンサーの相互容量計算 - KBA222425

       

      バージョン:**

       

      質問:

      CapSenseコンポーネントのバージョン3.0以降のファームウェアを使用して、CapSenseセンサーの相互静電容量をどのように計算しますか?

       

      回答:
      Rawカウントは相互静電容量(Cm)の直接的な測定値です。得られたrawカウントを使用して、次の手順に従ってセンサーの相互静電容量を計算できます。

       

      1. CapSenseコンポーネントを開始します。すべてのCapSenseウィジェットをスキャンして処理します

       

      2. 変調器クロックの周波数、サブコンバージョンの数、およびトランスミッタクロックの周波数を使用して、最大カウントを計算します。

       

      Max_count = Modulator_clock_frequency * Number_of_sub_conversions) / Transmitter_clock_frequency

       

      3. 最大カウント(ステップ1で取得)とCapSenseコンポーネントによって処理されたrawカウントを使用して、ハードウェアrawカウントを計算します。

       

      Raw_count_hardware = Max_count – Raw_count

      4. 最大カウント(ステップ1から)、ハードウェアrawカウント(ステップ2から)、IDAC電流、周波数、およびトランスミッタクロック信号の振幅を使用して、相互静電容量を計算します。

       

      Raw_count_hardware = 2 * Max_count * 相互容量 * Transmitter_voltage * Transmitter_clock_frequency) / IDAC_current

       

      include "project.h"

       

      #define TRANSMITTER_VOLTAGE (5u) /* 単位 - 電圧 */

      #define IDAC_GAIN (300u) /* 単位 ナノアンペア/ビット */

       

      int main(void)

      {

          

      CyGlobalIntEnable; /* グローバル割り込みを有効にします。 */

       

      uint32 raw_count, modulator_clock_divider, sense_clock_divider, sub_conversions, IDAC_code, hardware_raw_count, max_count, mutual_capacitance;

       

      /* CapSenseコンポーネントを開始します */

      CapSense_Start();

       

      /* すべてのCapSenseウィジェットをスキャンします */

      CapSense_ScanAllWidgets();

       

      for(;;)

      {

      /* CapSenseスキャンが完了したかどうかを確認します */

      if (!CapSense_IsBusy())

      {

      /* すべてのCapSenseウィジェットを処理します */

      CapSense_ProcessAllWidgets();

       

      /* ボタン0の最大カウントの計算 */

       

      /* 変調器クロック分周器の値を取得するAPI = HF_CLK_FREQ / MOD_CLK_FREQ  */

      CapSense_GetParam (CapSense_MOD_CSX_CLK_PARAM_ID , &modulator_clock_divider);

       

      / *センスクロック分周器の値を取得するAPI = MOD_CLK_FREQ / SNS_CLK_FREQ * /

      CapSense_GetParam (CapSense_BUTTON0_SNS_CLK_PARAM_ID, &sense_clock_divider);

       

      /* サブコンバージョンの数を取得するAPI */

      CapSense_GetParam (CapSense_BUTTON0_RESOLUTION_PARAM_ID , &sub_conversions);

      max_count = sense_clock_divider * sub_conversions ;

       

      /* ボタン0のハードウェアrawカウントの計算 */

       

      /* rawカウントの値を取得するAPI */

      CapSense_GetParam (CapSense_BUTTON0_RX0_RAW0_PARAM_ID , &raw_count);

      hardware_raw_count = max_count-raw_count ;

       

      /* ボタン0の相互容量の計算 */

       

      /* IDACコードを取得するためのAPI */

       

      CapSense_GetParam (CapSense_BUTTON0_RX0_IDAC_COMP0_PARAM_ID , &IDAC_code);

      mutual_capacitance = (hardware_raw_count * IDAC_code * IDAC_GAIN * sense_clock_divider * modulator_clock_divider) / (2 * max_count * TRANSMITTER_VOLTAGE * CYDEV_BCLK__HFCLK__MHZ);

       

      /* すべてのCapSenseウィジェットをスキャンします */                  

      CapSense_ScanAllWidgets();

      }

      }

      }

       

      相互容量は、次の条件下で数千フェムトファラッドの範囲になると予想されます。

       

       HF_clock_fequency = 48 MHz

          Modulator_clock_frequency = 48 MHz

          Sense_clock_frequency = 300 kHz

          Transmitter_voltage = 5 V

          IDAC_gain = 300 nA/ bit

          IDAC code= 32

          Number_of_sub_conversions = 100

       

          Modulator_clock_divider = 1

          Sense clock divider = 160

       

       Max_count = (48 * 100* 160 ) / 1 * 48  = 16000

       

      例として、取得したrawカウントが6200の場合、

       

       Raw_count_hardware = 16000 – 6200 = 9800

       

        相互容量 = (9800*300*20*160) / ( 2*16000*5*48 ) = 1225 fF

       

      ==============================

      7-May-2020

      Kenshow