こんにちは@nxp
S32k31xevb-q100 用の ADC モジュールを構成しています。私は AUTOSAR ベースの MCAL レイヤー構成を使用しています。私の CASE では、割り込みを使用しないソフトウェア トリガーを使用しています。この関数に入っていますが、ADc 値が変換されていません。Adc_Sar_Ip_StartConversion (PhysicalHwUnitId、ADC_SAR_IP_CONV_CH AIN_NORMAL)。この理由は何でしょうか。
こんにちは@dhanabharathi
テスト ハードウェアは S32K31XEVB をベースにしており、結果は私の側で正確です。
参考までにプロジェクトとテスト結果を添付しました。
こんにちは@Senlent
あなたの手順に従いましたが、まだ同じ問題が続きます
こんにちは@dhanabharathi
設定に問題はないようです。ただし、コードに間違いがあるようです。
問題 1.
#define ADC_BANDGAP 5980U /* Vbandgap ~ 1.2V、14ビット分解能、VrefH 3.3V */
#それ以外
#define ADC_BANDGAP 3932U /* Vbandgap ~ 1.2V、14ビット分解能、VrefH 5V */
#endif
VREF が 5V の場合、 ADC_BANDGAP は 5980 ではなく 3932 になります。
問題 2。
if ((ResultBufferDma[0u] >> 1U != AdcReadGroupResult[0u]) || \
(ResultBufferDma[1u] >> 1U != AdcReadGroupResult[1u]) || \
(ResultBufferDma[2u] != RESULT_BUFF_VAL) || \
(AdcReadGroupResult[2u] != ADC_RESULT_BUFF_VAL) || \
(ADC_TOLERANCE((ResultBufferDma[0u] >> 1U), ADC_BANDGAP)) || \
(ADC_TOLERANCE((ResultBufferDma[1u] >> 1U), ADC_VREFH)) \
)
これらの 2 行のコードを削除する必要があります。元のデモでは 2 つのサンプリング チャネルのみが設定されていましたが、現在は 4 つのサンプリング チャネルを使用しています。この判断により、次のサンプリングが実行できなくなります。
こんにちは@Senlent 、
プロジェクトファイルを添付しました。
こんにちは@dhanabharathi
プロジェクト全体を共有してください。時間をかけてテストします。
こんにちは@Senlent
わかりました。分かりました。
VREFHが5.0Vであることを確認しました。しかし、ADC に 4.0 V を供給すると、変換結果は 5 V リファレンスの予想値から外れます。潜在的な原因(リファレンス選択、キャリブレーション、サンプリング時間、ピンルーティング)の確認をお手伝いいただけますか?
こんにちは@dhanabharath
「私のADCの読み取り値は内部の2.5Vリファレンスを使用して計算されているようです」
VREFHピンに問題がない限り、これは不可能です
ADC リファレンス電圧 VREF はソフトウェアでは変更できません。
これは、VREFH ピンと VREFL ピンの現在の外部電圧選択に関連しています。
ハードウェアで外部ADCリファレンス電圧を変更する方法について言及している場合は、
ハードウェアデザインを見直して修正する必要があります。
こんにちは@Senlent 、
いいえ、あなたの言いたいことが分かりません。
こんにちは@dhanabharathi
vrefhとvreflはADCの高低基準電圧点であり、ピンのvrefhとvreflピンに対応する。
私の説明はCAN理解できましたか?
こんにちは@Senlent 、
明確に説明しますと、私の ADC 読み取り値は内部 2.5 V リファレンスを使用して計算されているようですが、入力には 3.3 V リファレンス (5 V のポテンショメータ) が使用されています。V_measured = (ADC_value / (2^n − 1)) × Vref の計算で 5V が使用されるSO、ADC リファレンスを 2.5 V から 5 V に変更するにはどうすればよいですか?
こんにちは@dhanabharathi
何を言っているのか分かりません。VREF は修正されるべきではないでしょうか?私
それはハードウェアデザイン時に決定されるのではないですか?
ご質問を誤解している場合はお知らせください。
こんにちは@Senlent
わかりました。ありがとうございます。
もう一つ問題があります。
アナログ ピン経由でデータを読み取る場合、VREF は常に 2.5 V のみになります。3.3V または 5V の Vref が必要です。これをどこで設定する必要がありますか? Vref 電圧を設定できません。構成設定は非アクティブです。参考までに画像を添付しました
こんにちは@dhanabharathi
プロジェクトに「Rm」コンポーネントを追加して構成していません。