質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

2回答

1003閲覧

16F1705でADCを固定参照電圧で行いたい。

sin_a

総合スコア1

0グッド

0クリップ

投稿2022/03/04 09:34

16F1705でADCを固定参照電圧で行いたい。

ADPREF=00;設定では、ADCが正常に動作していることを確認しています。
固定参照電圧で行いたく下記に変更
ADCON1bits.ADPREF=11; //内部の固定参照電圧(FVR) モジュールに接続する
FVRCONbits.FVREN=1;  //固定参照電圧を有効にする
FVRCONbits.ADFVR=10; //ADC FVR バッファゲインは2 倍

(設定後の時間バッファもFVRRDYで確認しています。)
の設定変更追加しました。
上手く、ADCできません。

何か?他に注意する点や設定点がありますか?
プログラム全体は、ADPREF=00;の設定で動いているので省略しています。
必要なら記載します。
データシートの図20-1には、ADPREFが00と01しか記載がありません?
REGISTER 20-2 には記載があります。使えると思っていますが?

後は何の設定をしたら良いか?
ちなみに、電圧を何ボルト入れても最大値です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

pic16f1705 + xc8v2 + mcc にてテスト

mcc 初期設定は、ADC : Vref+ VDD , FVR 4.096V で DAC出力 を A/D変換しています

テストプログラム

void dac_test(void){ uint16_t i; printf(" DAC TEST !! \r\n"); for ( i=0 ; i<256 ; i++ ){ if ( i != 0 && ( i % 16 ) == 0 ){ printf("\r\n"); } DAC_SetOutput( i ); printf("%04X ", ADC_GetConversion( channel_DAC ) ); } printf("\r\n"); } void adc_fvr_test(void){ printf(" Vref+ : VDD \r\n"); dac_test(); __delay_ms(1000); ADCON1bits.ADPREF = 3; // FVR 4.096V printf(" Vref+ : FVR 4.096V \r\n"); dac_test(); __delay_ms(1000); FVRCONbits.ADFVR = 2; // FVR 2.048V printf(" Vref+ : FVR 2.048V \r\n"); dac_test(); }

UART出力

Vref+ : VDD DAC TEST !! 0002 0005 0009 000D 0011 0015 0019 001D 0021 0025 0029 002D 0031 0035 0039 003D 0041 0045 0049 004D 0051 0055 0059 005D 0061 0066 0069 006D 0071 0075 0079 007D 0081 0085 0089 008D 0091 0095 0099 009D 00A1 00A5 00A9 00AD 00B1 00B5 00B9 00BD 00C1 00C5 00C9 00CD 00D0 00D4 00D8 00DC 00E1 00E5 00E9 00ED 00F1 00F5 00F9 00FD 0101 0105 0109 010D 0111 0115 0119 011D 0120 0124 0128 012C 0131 0135 0139 013C 0141 0145 0149 014D 0150 0154 0158 015C 0160 0164 0168 016C 0170 0174 0178 017C 0180 0184 0188 018C 0190 0194 0198 019C 01A1 01A5 01A9 01AD 01B0 01B4 01B8 01BC 01C1 01C4 01C8 01CC 01D1 01D5 01D9 01DD 01E0 01E4 01E8 01EC 01F1 01F4 01F8 01FC 0201 0205 0208 020C 0211 0215 0219 021D 0220 0224 0228 022C 0231 0235 0239 023D 0241 0245 0249 024D 0250 0254 0258 025C 0261 0265 0269 026D 0270 0274 0278 027C 0281 0284 0288 028C 0291 0294 0298 029C 02A1 02A4 02A8 02AC 02B1 02B5 02B9 02BD 02C1 02C5 02C9 02CD 02D0 02D4 02D8 02DC 02E2 02E4 02E8 02EC 02F1 02F5 02F9 02FD 02FF 0304 0308 030C 0311 0315 0319 031D 0320 0324 0328 032C 0331 0335 0338 033C 0341 0345 0349 034D 0350 0354 0358 035C 0361 0365 0369 036D 0370 0374 0377 037D 0381 0385 0389 038D 0390 0393 0399 039D 03A0 03A4 03A8 03AC 03B1 03B5 03B9 03BD 03C1 03C6 03C8 03CC 03D1 03D5 03D9 03DD 03E1 03E6 03E8 03EC 03F1 03F6 03F8 03FC Vref+ : FVR 4.096V DAC TEST !! 0002 0006 000B 0010 0014 0019 001E 0023 0028 002C 0031 0036 003B 0040 0044 0049 004E 0053 0058 005D 0061 0066 006B 0070 0075 0079 007E 0083 0088 008D 0092 0096 009B 00A0 00A4 00A9 00AE 00B3 00B8 00BC 00C2 00C5 00CA 00CF 00D4 00D9 00DE 00E2 00E6 00EC 00F0 00F6 00FB 00FF 0105 0108 010D 0113 0116 011D 0121 0125 012A 012E 0133 013A 013D 0143 0148 014A 0150 0156 015B 015F 0163 0169 016E 0171 0178 017B 0180 0186 018A 018E 0192 0198 019E 01A3 01A7 01AC 01AF 01B3 01BA 01BD 01C4 01C7 01CB 01D3 01D6 01DB 01E1 01E4 01EA 01F0 01F3 01F8 01FC 0201 0208 020B 0212 0216 0218 021E 0223 0228 022E 0231 0236 023B 023D 0246 0249 024E 0255 0258 025E 025F 0265 026D 0271 0274 027B 027C 027F 028A 028C 0293 0296 029B 02A2 02A2 02AB 02AE 02B2 02B7 02BD 02C1 02C5 02CB 02CF 02D6 02DA 02E0 02E5 02E4 02EF 02F1 02F8 02FE 0301 0304 0309 030D 0314 0319 031C 0323 0326 0329 032E 0334 033B 033D 0344 0349 034A 0350 0358 035B 0361 0367 0368 036E 036E 0378 037F 0381 0389 038B 0390 0393 0399 03A0 03A6 03A8 03AF 03B3 03B3 03BD 03C0 03C5 03CB 03CD 03D4 03D3 03DB 03E4 03E6 03EA 03F3 03F4 03F6 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF Vref+ : FVR 2.048V DAC TEST !! 0004 000C 0015 001E 0028 0032 003B 0045 004E 0058 0061 006A 0074 007D 0087 0091 009B 00A4 00AE 00B8 00C1 00CC 00D4 00DE 00E9 00F1 00FC 0104 010E 0119 0121 012B 0134 013C 0145 0150 015A 0164 016D 0177 0182 0187 0193 019B 01A4 01B0 01B7 01C3 01CB 01D4 01DF 01E9 01F1 01FC 0206 020B 021A 0221 022C 0235 023E 0249 0250 0259 0267 026E 0276 0281 0289 0293 029C 02A7 02B3 02B9 02C4 02CE 02D3 02DD 02E8 02F2 02FE 0305 0310 0316 031E 032B 0334 033E 034A 034F 035A 0362 036D 037A 0382 0389 0397 039C 03A2 03B3 03B9 03C4 03CF 03D6 03E3 03E8 03F2 03FE 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF 03FF

投稿2022/03/06 06:10

koujikuu

総合スコア401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sin_a

2022/03/06 10:42

ご回答ありがとうございます。 がんばって理解して、一度テストしてみます。 PICは、アッセンブリの時代から少し趣味程度にやっているぐらいです。 C語環境も最近で、覚えることばかりです。 簡単なテスト機を製作しようと検討して、現在奮闘中です。 MCCは、勉強中で導入前です。人間が古く中々敷居が高いです。(^^♪ 皆さんPIC環境で導入されているみたいで、早々に検討したいです。 やはり、実機テストより良いのでしょうね!
koujikuu

2022/03/07 07:34

MCC で自動作成されるコードを参考にした方が良いと思います。
guest

0

データシートの図20-1には、ADPREFが00と01しか記載がありません?

古いデータシートはそうなってるね。

TABLE 14-1: PERIPHERALS REQUIRING THE FIXED VOLTAGE REFERENCE (FVR)

に書いてある設定が出来ていないのでは?

投稿2022/03/04 22:50

nac_tnk

総合スコア463

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sin_a

2022/03/05 08:41

早々の返信ありがとうございました。 自分の勉強不足と理解不足で再質問させてください。 TABLE14-1:は、configunの設定ですね? FOSC=INTOSC BOREN=ON の設定で良いですか? 後は、 VREGCONbitos.VREGPM=1; を追加で良いですか? 現在、PICがない場所です。 早急にテストをしたいのですが、できません。 テスト前のコメントで申し訳ありません。
sin_a

2022/03/05 11:42

CONFIG1設定 FOSC=INTOSC BOREN=ON VREGCONbitos.VREGPM=1; で設定しましたが、症状変わらず。最大値のまま? PICも他の物に変更しましたが、変化なし。 ADPREF=0b00;設定では、正常動作です。 設定が違ってますか?
nac_tnk

2022/03/06 01:54

設定が間違えている、というよりもつまらないミスが入り込んでいるのではないかな。 テストコードを示した方が良いように思います。 ※例えば、 「0b11」とすべきところを「11」にしていたり、 「VREGCONbits」とすべきところを「VREGCONbitos」としていたり、 一度設定したレジスタを書きか押していたり。
sin_a

2022/03/06 10:45

そうですね!一度じっくりやり直してみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問