- 締切済み
PICでAD変換すると電圧降下がおきます。
現在PIC24FJにてAD変換をしようとしています。 AD変換の入力端子は、3.3Vで常時プルアップ(10KΩ)されています。 しかし、AD変換実行している時だけ、アナログ電圧が3.3Vから0V付近へ落ちてしまい、AD変換終了後は3.3Vに戻るというような現象が発生してしまいます。 AD変換のステータス自体は正常に完了したことになっており、デジタル値も実際の電圧(0V付近)が取得できています。 このような現象は、対処方がわからず困っています。 どなたかアドバイスをいただければ助かります。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nanashisan_
- ベストアンサー率20% (55/275)
インピーダンスが高すぎるのでしょう。
- koujikuu
- ベストアンサー率43% (429/993)
No.2 続き ( PIC24FJ64GA002 32MHz にて確認 ) 10kΩでA/D変換してみましたが、アクイジション時間が通常の倍以上必要でした こちらを参考にプログラムを見直して下さい http://blog.livedoor.jp/mplab/archives/1050103576.html テストプログラム #include <adc.h> // PLIB #define ConfigPort ( ENABLE_AN0_ANA ) #define Configscan ( ADC_SCAN_AN0 ) #define ADConfig1 ( ADC_MODULE_ON &ADC_IDLE_CONTINUE & ADC_FORMAT_INTG & ADC_CLK_AUTO & ADC_AUTO_SAMPLING_OFF ) #define ADConfig2 ( ADC_VREF_AVDD_AVSS & ADC_SCAN_OFF & ADC_INTR_EACH_CONV & ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF ) #define ADConfig3 ( ADC_CONV_CLK_SYSTEM & ADC_SAMPLE_TIME_12 & ADC_CONV_CLK_2Tcy ) // 10k-12 1k-6 sample time void adc_ini(void){ SetChanADC10(ADC_CH0_POS_SAMPLEA_AN0); OpenADC10(ADConfig1, ADConfig2, ADConfig3, ConfigPort, Configscan); EnableADC1; // ADC 有効 ADC_MODULE_ON } unsigned int adc10(void){ AD1CON1bits.SAMP = 1; // ADC 変換開始 while( BusyADC10() != 1 ); // AD1CON1bits.DONE return ReadADC10(0); }
お礼
テストまでしていただき、ありがとうございます。 こちらでもアクイジションタイムを伸ばしたり、条件を色々変えたりしてみたのですが、アナログ信号が0Vに落ちてしまう現象は直りませんでした。
- koujikuu
- ベストアンサー率43% (429/993)
デジタルI/OモードのままA/D変換してませんか? データシートに以下の注釈があります デジタルモード:A/D入力マルチプレクサの入力はAVss(GND)へ接続される デジタル入力として設定されているピンはアナログ入力を変換しません。デジタル入力として定義されたピン(ANx ピンを含む) にアナログレベルの電圧がかかると、入力バッファがデバイスの仕様を超える電流を消費する可能性があります ANSELx 又は、AD1PCFG 設定を確認して下さい PIC24F 日本語データシート http://www.microchip.co.jp/download/index.php?PageNumber=4&Mode=4&Order=8&PageSize=15&CategoryID=8143159b1f8d4037fe71ab10805adec1cd2fd97c&Keyword=
補足
さっそくのご回答ありがとうございます。 何度もレジスタの状態を確認しましたが、確かにアナログ入力になっています。
- cwdecoder
- ベストアンサー率20% (200/997)
そのポートはプルアップしているだけで、他にはどこにも繋がっていないのでしょうか。 3.3V | | 10k | | ポート こんな感じですか?
補足
さっそくのご回答ありがとうございます。 はい。その通りです。他にはどこにも繋げていません。
お礼
ご回答ありがとうございます。 やはり、インピーダンスの問題でしょうか? 以前、同じPICで同じプルアップ10KΩで問題なかったので、インピーダンスの問題ではないと思っていました。 そのあたり再度確認してみます。ありがとうございました。