ユーザーマニュアルに記載されているように内部温度センサ用にADCを設定しようLPC54608が、正しい値を読み取ることができませんでした。データシートに記載されている傾きとオフセットの値も使用しました。
Hello
ADCの例をベースに使ったことがあるか確認していただけますか?もしそうなら、どの作品かを示してください。
入力ADCチャネル0と入力選択レジスタを3に設定して温度センサーを選択できるようにしましたか?
詳細については、LPC546xxユーザーマニュアルの第44.6.2章[UM10912]をご参照ください。
もしADC温度センサーをどのように設定したのか、もう少し詳しく教えていただければ教えてください。
LPC546xx製品データシート第7.22章によると、
「電源アップ後、温度センサの出力は安定した値に落ち着くまで待たなければ、正確なADC入力として使用できません。ADCによる温度センサの正確な測定のためには、ADCをシングルチャネルバーストモードに設定する必要があります。9回以上の変換バーストの最後の値が正確な結果を提供します。」したがって、温度センサがまだ安定していないか、単一チャネルバーストモードでさらに変換が必要な可能性があります。
また、外部環境に関連するADC誤差を最小限に抑えるために、ADC外部回路の最適化も検討すべきです。
この応用ノートは、アプリケーションにおけるアナログ-デジタル変換器の精度を高める方法に役立ちます
敬具、ルイス
私は以下のように設定しました。
1. ADC、VREFP、VDDA、TS、ANAをクリアし、20μs待機します。
2. ADCクロック有効化、AHBCLKCTRL0。
3. PRESETCTRL0レジスタを使ってADC0ペリフェラルリセットをクリアする
4. INSELで温度チャネルを設定する
5. ADCを有効にし、制御レジスタのCLKDIVを使用してクロックを15MHzに設定します。
5. 同期モード、12ビット分解能、BYPASS = 0、TSAMP = 0 に設定します。
6. 次にシーケンスAをSEQA_CTRLで構成します。チャネル = 1、TRIGGER = 0、TRIGPOL = 0、SYNCBYPASS = 0、BURST = 0、SINGLESTEP = 0、LOWPRIO = 0、MODE = 0、SEQA_ENA = 1
7. CALIB = 1 に設定し、CALIB = 0 になるまで待機する
8. 次にSTARTビットで変換を開始し、結果を読み取る
しかし、結果は毎回同じで、DATA VALID は設定されていません。