PIC初心者用掲示板

PICの初心者用の質問箱です。
何でもお気軽にどうぞ!

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 5940. AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/24 17:25


5940. AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/24 17:25
16F873を使って10BIT AD変換してますが、返る値がちょっと変なんです。 ボリュームを上げると0H〜7fHまではスムースに帰ってくるのですが、その次が一気に100Hという値まで飛んでしまうのです。返る値が300Hあたりでも2dfHから一気に300Hまで飛んでしまいます。表現がうまく言えてないかも知れませんが、このような症状で原因がわかる方いらっしゃいますか?
+Vrefは2.48Vなんですが、これが原因なのでしょうかね〜??

5941. Re: AD変換がうまく出来ない? [松本] 2005/08/24 18:13
http://www.picfun.com/pic18/pic18xx14.html
>16F873を使って10BIT AD変換してますが、返る値がちょっと変なんです。 ボリュームを上げると0H〜7fHまではスムースに帰ってくるのですが、その次が一気に100Hという値まで飛んでしまうのです。返る値が300Hあたりでも2dfHから一気に300Hまで飛んでしまいます。表現がうまく言えてないかも知れませんが、このような症状で原因がわかる方いらっしゃいますか?
>+Vrefは2.48Vなんですが、これが原因なのでしょうかね〜??

ボリュームを替えても同じですか?

5943. Re: AD変換がうまく出来ない? [cam009] 2005/08/24 19:31
当方、16F876で10BIT AD変換しました(プログラムはCCSCコンパイラで作成)が、特にそういうことはありませんでした。(ただ、安物のボリュームを使用すると下位ビットがフラフラと安定しません。特にボリュームの金属筐体に手を触れるといっそうフラフラが大きくなります。) なお、+Vrefは5v電源への直付けです。
 よくわかりませんが
1.アセンブラの場合、AD変換後のADRESH,ADRESLからのデータ取り出し処理あたりがおかしい?
2.アセンブラの場合、AD変換結果の右詰、左詰指定がおかしい?
3.Cコンパイラを使用している場合は、変換結果をint型(8bit)指定の変数に格納している?
 などをチェックしたらどうでしょう。

5945. Re: AD変換がうまく出来ない? [JO_O2005/08/24 20:23
毎度JOです。

>+Vrefは2.48Vなんですが、これが原因なのでしょうかね〜??
PICの10BIT ADCは +Vref>2.5V がメーカー保証となっています、
2.5V以下の変換データーも今回のように「階段状」になってました、やはり+Vrefは2.5V以上で使用されたほうがいいのでは・・・

5947. Re: AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/24 23:03
>ボリュームを替えても同じですか?

同じでした〜 ;;

5948. Re: AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/24 23:06
>毎度JOです。
>
>>+Vrefは2.48Vなんですが、これが原因なのでしょうかね〜??
>PICの10BIT ADCは +Vref>2.5V がメーカー保証となっています、
>2.5V以下の変換データーも今回のように「階段状」になってました、やはり+Vrefは2.5V以上で使用されたほうがいいのでは・・・
>

やはり2.5V以下だと階段状になるんですかぁ〜・・
とりあえず、2.5V以上に上げてみます。;;

ありがとうございました。

5950. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/24 23:27
PICのA/D変換機は逐次比較型の方式がとられて
います。
確か、Vrefの下限値はその分解能(精度)
の面からの制約であり、突然変換値がステップ上
に変化するとのことはないと認識しております。
A/D変換後のデジタルデータはどのように確認されて
いるのでしょうか?(LED10bit?/232Cでパソコン表示?)
まずは、電圧計とにらめっこしながらデジタルデータと
比較してみてはいかがでしょうか?

皆様からのご指摘事項以外に蓄積時間を可変して
みると言う手もあります。

5951. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/24 23:47
>やはり2.5V以下だと階段状になるんですかぁ〜・・
>とりあえず、2.5V以上に上げてみます。;;
>
>ありがとうございました。

873のデータシート上は
Vref(+) - Vref(-)--> 2V Min.となっています。
Vref(-)はGNDにつながれているのであれば
2.48Vでも大丈夫です。

5952. Re: AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/25 00:05
>PICのA/D変換機は逐次比較型の方式がとられて
>います。
>確か、Vrefの下限値はその分解能(精度)
>の面からの制約であり、突然変換値がステップ上
>に変化するとのことはないと認識しております。
>A/D変換後のデジタルデータはどのように確認されて
>いるのでしょうか?(LED10bit?/232Cでパソコン表示?)
>まずは、電圧計とにらめっこしながらデジタルデータと
>比較してみてはいかがでしょうか?
>
>皆様からのご指摘事項以外に蓄積時間を可変して
>みると言う手もあります。
>

ご回答ありがとうございます^^
デジタルデータの確認は液晶にADRESL ADRESH 
あと、 10Bitに合成したデータをおのおの
直接表示しています。(うまく行かなかったのでデバック用にこうしたのですが、、^^;)
上がってくる値を直接見てるのですが、、、
電圧計とにらめっこしていると、電圧はスムースに上がって行きます。
7FHから100H上がる間ボリュームをゆっくり回しているのですが値は100Hのままで(たぶん 80HからFFHの間ずーと100Hと値が返っているもよう)
それを超えると101H〜 正常に上がって行きます。
ん〜 こまったもんだ、、、
蓄積時間の変更ですね、それもトライしてみます。
ありがとうございました^^

5953. Re: AD変換がうまく出来ない? [ふーか] 2005/08/25 00:15
>確か、Vrefの下限値はその分解能(精度)
>の面からの制約であり、突然変換値がステップ上
>に変化するとのことはないと認識しております。

それは誤りです。

この件についてはトラ技2003年11月号にも記事が
載っていますが、Vrefの値(とPICの種類)によっては
変換結果が階段状になります。
そしてPIC16F87Xはまさにそうなる品種です。

5954. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/25 00:41
>電圧計とにらめっこしていると、電圧はスムースに上がって行きます。
>7FHから100H上がる間ボリュームをゆっくり回しているのですが値は100Hのままで(たぶん 80HからFFHの間ずーと100Hと値が返っているもよう)
>それを超えると101H〜 正常に上がって行きます。
>ん〜 こまったもんだ、、、
>蓄積時間の変更ですね、それもトライしてみます。
>ありがとうございました^^

00H --> 0V
7FH --> 0.308V
100H --> 0.62V
となっているのでしょうか?
データは右寄せで使っているとしたら
ADRESLのMSB(最上位ビット)とADRESHの
LSB(最下位ビット)がおかしいですね
ちなみに
17FH --> 1FFH 辺りも同様な現象起きませんか?
もし起きるようでしたら、ADRESLとADREHの合成
でバグがあるような気がするのですが・・・

5955. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/25 01:05
>それは誤りです。
>
>この件についてはトラ技2003年11月号にも記事が
>載っていますが、Vrefの値(とPICの種類)によっては
>変換結果が階段状になります。
>そしてPIC16F87Xはまさにそうなる品種です。

勉強不足失礼しました。(_ _)
元々変換後のデータはデジタル値なので階段状なの
ですが、今回の場合
Vref=2.48V/10bitなので
1LSB=約2.5mVなのですが、どの程度
の高さの階段になるのでしょうか?
マイクロチップのERRATA情報がなく、残念ながらトラ技
もその号は持ち合わせがないのですが・・・
差しさわりがなければ教えて下さい。
(PIC16F87Xは良く使うもので・・・)

5956. Re: AD変換がうまく出来ない? [JO_O2005/08/25 04:57
毎度JOです。
(1) 条件1  Vref+ − Vref- > 2V 
まりリファレンス電圧差が2V以上必要ということです。
(2) 条件2 Vdd+0.3V > Vref+ > 2.5V
つまりVref+は必ず2.5V以上でないとだめということです。
http://www.picfun.com/moduleframe.html

この階段状になったグラフをネットで見た事があったのですが、捜す事ができませんでした

5957. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/25 08:31
J○さん
勉強になりました。

>(2) 条件2 Vdd+0.3V > Vref+ > 2.5V
>つまりVref+は必ず2.5V以上でないとだめということです。

何か理由があって2.48Vを使用されているようなので
4.0V<Vdd<4.5Vで使えば良いとの事ですね。
しかし、階段上?の問題は非常に興味があります。
今回の件がこれだとすると
正常だと130LSB進むはずが
7FH(約0.3V)-->100H(約0.62)で1LSBしか進まない
との事ですか・・・
質問ばかりですみませんが、これは
16F87X固有の問題で、16F87XAは関係ないのでしょうか?

5958. Re: AD変換がうまく出来ない? [DANGAN4] 2005/08/25 08:56
”液晶表示”で 確認されているとの事ですが、
A/D変換自体ではなく A/D変換値 → キャラクタ文字 への変換での問題の可能性は考えられませんか?

例えば ADRESH,ADRESL の値を直接 PORTB や PORTC に出力させてみると A/D変換の生の値を確認できると思われます。

5959. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/25 09:08
少々しつこくて申し訳ありません。
階段状とは
http://ww1.microchip.com/downloads/en/DeviceDoc/80052b.pdf

OFFSET ERRORのことでしょうか?
+-1LSB --> +-2LSB

5960. Re: AD変換がうまく出来ない? [JO_O2005/08/25 09:18
毎度JOです。
今回の現象はPICの機種により差があるようです。
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
データーシートのP194にパラメーターA21があります、
最小がVDD-2.5Vとなっており16F87XAも同じのようです、

5967. Re: AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/25 12:43
御返信ありがとうございます^^
>17FH --> 1FFH 辺りも同様な現象起きませんか?
上記値ではおきませんね〜 正常に動いています。
他に起きる場所は2dfH−>300Hでおきてます。
現在回路を2.5V出るように改良しています。
うう〜 ;;
うまく行ったら御報告します。
ありがとうございました^^

5970. Re: AD変換がうまく出来ない? [CHOBI] 2005/08/25 14:35
実験してみました。
873の場合
http://park23.wakwak.com/~chobi/873.pdf
873Aの場合
http://park23.wakwak.com/~chobi/873A.pdf

873では皆様ご指摘の通り、2.5V >= Vrefでは
不適切なAD変換値を出力しました。
873Aでは改善されているようです。

5971. Re: AD変換がうまく出来ない? [なやめるPIC初心者] 2005/08/25 14:55
>実験してみました。
ぬぉぉぉぉ〜!!!
検証ありがとうございます。 ;;
2.5V以上に改良しようと思ったんですけど
実は大変だったのですぅ。。。。
最初のPIC工作でこんなトラップにはまってしまうなんて、、、、
PICを変えたほうが全然早いですね〜^^;

CHOBI様及び皆様、御協力ありがとうございました^^