2404041_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2404041_ja-JP

2404041_ja-JP

MCXA185 ポテンショメータの値の読み取り

MCXA185 LPADCポテンショメータの読み取り – より安定したADC値を求めて

NXP MCXA185を使って作業しており、LPADCを使ってP2_0/ADC0_A0に接続されたポテンショメーターを読み取っています。

私の現在の実装では以下を使用しています。

  • ADC0 / ADC0_A0

  • 高解像度変換モード

  • LPADCハードウェアによる128サンプルの平均化

  • 長時間のADCサンプリング時間(kLPADC_SampleTimeADCK19)

  • 1ミリ秒ごと(1000Hz)にADCの読み取り値を取得

  • ソフトウェアトリガー変換

  • 100サンプルのブロック平均

  • 結果として得られる平均値は100ミリ秒ごとに更新されます。

つまり、ブロック平均に使われる各値は、ADCハードウェアによって128回の変換で平均化されているのです。

現在のアプローチ

cmdConfig.conversionResolutionMode = kLPADC_ConversionResolutionHigh;

cmdConfig.hardwareAverageMode = kLPADC_HardwareAverageCount128;

cmdConfig.sampleChannelMode = kLPADC_SampleChannelSingleEndSideA;

cmdConfig.sampleTimeMode = kLPADC_SampleTimeADCK19;

そして1ミリ秒ごとに:

LPADC_DoSoftwareTrigger(POT_LPADC_BASE,
                        (1U << POT_LPADC_TRIGGER_ID));

while (!LPADC_GetConvResult(POT_LPADC_BASE, &result))
{
    /* Wait for conversion */
}

s_blockSum += result.convValue;
s_sampleCount++;

if (s_sampleCount >= 100U)
{
    s_lastAverage =
        (uint16_t)(s_blockSum / 100U);

    s_blockSum = 0U;
    s_sampleCount = 0U;
}

私の質問

これは安定したポテンショメータ値を得るための良い方法でしょうか、それとももっと優れたADCフィルタリング/平均化戦略があるでしょうか?

特に、以下の点について疑問に思っています。

  1. ポテンショメーターとして 128カウントのハードウェア平均+100サンプルのソフトウェア 平均を使うのは過剰でしょうか?

  2. これは実際に有用な追加のノイズ低減になれるのでしょうか?それとも単にレスポンスレイテンシを増やしているだけでしょうか?

  3. 16サンプルや32サンプルのような小さなハードウェア平均を使い、その後ソフトウェアフィルターを使う方が良いのでしょうか?

  4. ポテンショメータの場合、 IIR/指数移動平均は100サンプルブロック平均よりも優れているでしょうか?なぜなら、IIR/指数移動平均の方が、つまみの動きに素早く反応しつつ、より滑らかな値が得られるからです。

  5. kLPADC_SampleTimeADCK19は一般的なポテンショメータに適していますか、それとも別のサンプリング時間を使用すべきでしょうか?

  6. 安定性を向上させるために有効にすべき、MCXA185固有のLPADC設定はありますか?

  7. 1ms関数内でADCの結果をポーリングする方法は妥当な実装でしょうか、それともハードウェアタイマートリガーとADC FIFO/割り込み方式を組み合わせた方が望ましいでしょうか?

ピン構成

現在使用しているもの:

cfg.pullSelect          = kPORT_PullDisable;
cfg.driveStrength       = kPORT_LowDriveStrength;
cfg.passiveFilterEnable = true;
cfg.inputBuffer         = kPORT_InputBufferDisable;

ポテンショメータは電圧分圧器として接続され、ワイパーは P2_0/ADC0_A0に接続されています。

私が主に知りたいのは、以下の値です。

  • ポテンショメータが動いていないときは安定している

  • ポテンショメータを回すと反応する

  • 過度の平均化による不必要な遅延がない

  • 小さなADC/ワイパーノイズに耐性がある

現在の ハードウェア平均128+100サンプルブロック平均 のアプローチが適切かどうか、またこの用途にどのようなフィルタリング戦略を推奨するかについてフィードバックをいただけるとありがたいです。

アナログ(ADC|CMP|DAC|OpAmp)MCXA
Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: