こんにちは、 @Senlent さん。
私も上記で述べられたのと同じ問題を抱えています。
外部発振器のクロックは25MHzです。S32K322のデータシートによると、ADCは最大80MHzをサポートしているので、プリスケーラーは2MHzに設定しています。また、サンプリング時間を1.2マイクロ秒に設定し、BCTUモードをトリガーモードに設定しました。しかし、同じADC0ペリフェラルでBCTU方法とノーマルチェーン方法を同時に実行しても、依然としてノイズの多いデータが得られます。同じADC0ペリフェラルで両方を安全に動かす回避策や代替方法はありますか?
こんにちは、 @praveen_ext さん。
トリガーモードでは、状況は異なります。このモードでは、BCTUトリガーによる変換と通常の/注入による変換の両方が可能ですが、これらの変換はすべて同じADCインスタンスを共有するため、同じADC変換リソースが使用されます。特にPWMと同期している時間的に重要な電流センシングのCASEでは、変換が可能かどうかだけでなく、サンプリング瞬間がデターミニスティックなままであるかどうかが重要なポイントです。
共有データから判断すると、電流検出信号は概ね安定しているように見えるが、時折大きなスパイクやドロップアウトが見られる。これらは普通のランダムなアナログノイズのようには見えません。これらはイベント情報関連の異常値のように見え、コンバージョンのスケジューリング、結果処理、またはBCTUトリガーの変換と同じADCペリフェラルでの通常のチェーン変換の相互作用が原因と考えられます。
したがって、まずは問題の原因がADCインスタンスの混在使用にあるかどうかを特定することをお勧めします。
1. BCTUトリガーによる電流検出のみをトリガーモードで実行し、通常のチェーン実行は完全に無効にしてください。
2. 通常のチェーン変換のみを実行し、BCTUトリガーによる電流検出を無効にしてください。
3. 電流センススパイクがアプリケーションによって通常の連鎖変換が開始される瞬間と相関しているかどうかを確認してください。
もう一つ確認したい点ですが、あなたのチャンネルリストを見ると、ADC1-P2とADC1-P3はBCTUの電流感知チャネルと正規連鎖チャネルの両方として言及されているようです。これらのチャネルが両方の取得方法で意図的に使われているのか、それとも単なる説明や設定の不一致なのか確認いただけますか?
通常のチェーンが無効化されたときにスパイクが消えた場合、問題はADCの電気構成自体ではなく、同じADCインスタンスで2つの取得フローのタイミングやスケジューリングにある可能性が高いです。その場合、回避策として考えられるのは以下の通りです:
- 電流検出チャネルをBCTUの制御下に置くこと、
- 利用可能な場合は、より低速な電圧/温度測定を別のADCインスタンスに移動します。
- または、通常のチェーン変換をBCTU/PWM同期電流測定に干渉しない時間帯内にスケジュールする。
よろしくお願いいたします。
パベル