NHS3152デバイスを使用してDACを介して三角波を生成し、この信号をADCで測定しています。構成は次のとおりです
DAC出力は、パラメータADCDAC_IO_ANA0_5を指定したファンクションChip_ADCDAC_SetMuxDACを使用してピン ANA0_5 で設定します。
ADC入力は、パラメータADCDAC_IO_ANA0_3のChip_ADCDAC_SetMuxADCを使用してピン ANA0_3 で設定します。
ケーブルは、ANA0_5をANA0_3に物理的に接続して信号をループします。
技術的な詳細:
両方のピンの IOCON コンフィギュレーションがアナログ モード (IOCON_FUNC_1) に設定されています。
DACは SINGLE_SHOT モードで動作して、書き込みのたびに出力を更新しますが、 CONTINUOUS モードに切り替えても問題は解決せず、信号品質にわずかに影響するだけです。
ADCは連続モードで動作し、検出スレッショルドは 1500 (LOW_THRESHOLD)と 2000 (HIGH_THRESHOLD)に設定されています。
このコードは、三角波(DAC_MIN_VALUEからDAC_MAX_VALUEの範囲)のルックアップテーブル(LUT)を生成し、16ビットタイマがDACの更新を定期的にトリガします。
出力にははっきりと観測可能な三角形の信号があるにもかかわらず、ADCの割込みはトリガされず、ADCの変換結果は記録されません。
トラブルシューティング手順:
MUX選択機能(Chip_ADCDAC_SetMuxADCおよびChip_ADCDAC_SetMuxDAC)が、ドキュメント(UM10876マニュアルの9.4章、図90)で指定されている正しいチャネル(ADCのチャネル3とDACのチャネル5)を使用することを確認しました。
両ピンのIOCON設定が正しくアナログモード(IOCON_FUNC_1)に設定されていること、ANA0_5とANA0_3を接続するケーブルがコモンアースで正しく取り付けられていることを確認しました。
ADC 割り込みルーチンで ADC 変換準備完了フラグ (ADCDAC_INT_CONVERSION_RDY_ADC) のチェックを変更してテストしましたが、動作は変更されませんでした。
DACモードをSINGLE_SHOTとCONTINUOUSの間で変更しても、信号品質がわずかに異なることを除けば、問題に大きな影響はありません。
支援の要請:
次のことを理解するためにあなたの助けをいただければ幸いです。
アナログマルチプレクサを介して 2 つの異なるピンを使用する現在の構成は、ラウンドロビン スケジューラで動作することを考えると、NHS3152 上の共有 ADCDAC ブロックに対して正しいです。
このセットアップでは、ADC割り込みがトリガーされるのを妨げる可能性のある追加の制約(タイミングやコンフィギュレーションシーケンスの問題など)があります。
ADCをシングルショット・モードでテストしたり、ADCとDACの両方に同じチャンネルを使用したりするなど、別の変更を行うことで問題を解決できる可能性があります。
この構成に使用される完全なコードを添付してください。ご協力とご提案をよろしくお願いいたします。
よろしく
トーマス
提出したチケットについて最新情報をお知らせしたいと思います。主な問題は次のとおりです。
DACで生成される三角波が速すぎました。この高速信号により、ADCは値を正しくキャプチャするのに十分な時間を確保できませんでした。
割り込みハンドラの名前を間違えて使用してしまいました。ADCDAC_IRQHandler(void) ではなく ADC_IRQHandler(void) という名前にする必要があります。
周波数を下げ(または周期あたりのサンプル数を増やす)、割り込みルーチンの名前を変更した後、ADCは期待どおりに動作し始めました。