- 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_O] 2005/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_O] 2005/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_O] 2005/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様及び皆様、御協力ありがとうございました^^