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

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

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

Q&A

解決済

2回答

2566閲覧

PICマイコン A/D変換

raspypy

総合スコア247

0グッド

0クリップ

投稿2019/08/05 05:05

##やりたいこと
PICマイコンで、電源電圧の監視を行いたいと思います。

##困っていること
回路構成(PIC電源と、A/D監視用電源を同じにしてしまいました。)にミスがあり、
このミスをプログラムで解決できないかと考えています。

データシートのA/D変換の章を読んでいるのですが、
「定電圧リファレンス」を基準にA/D変換できるような記述がありました。
これは、どういうことなのでしょうか。

PIC電源と、A/D監視用電源を同じ電源にしてしまいましたが、
A/Dの基準電圧を、定電圧リファレンスとすると、
この「定電圧」と、A/D監視用電源を比較することで、マイコンの電源電圧を監視できるのでしょうか。

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

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

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

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

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

ozwk

2019/08/05 05:12

データシートへのリンクを貼ってください
coco_bauer

2019/08/05 05:19

具体的に、現状の回路がどのような配線になっているのか、本来は回路をどのような配線にしようと思ったのかを明らかにしてください。また「A/D監視用電源」とは、どのような意味なのでしょうか?「A/Dの基準電圧」についても説明してください(通常、GNDを基準(0V)としていると思うのですが)。
raspypy

2019/08/05 06:10

・PICのデータシート http://akizukidenshi.com/download/pic16f1823.pdf ・現状の回路 電源: 単3×2個 電源-PICマイコン電源端子 電源を10kΩ-10kΩで分圧し、これをPICマイコンのAD端子へ接続 ・現状回路の問題点 上記回路では、電源電圧が低下すると、AD端子の電圧も低下してしまいます。 電源電圧を基準電圧としてA/D変換しているので、電源電圧の監視ができません。 ・本来の回路 まだ正解が分かっておりませんが、基板の変更ができないため、 部品レベルでの変更orプログラムによる解決を目指しています。 部品レベルの変更案としては、 10kΩ-10kΩの分圧の部分を、10kΩ-ツェナーダイオードの構成にすれば、 ツェナー電圧を判定電圧にできるかな…と思っていますが、間違えていますでしょうか。 プログラムの変更案としては、 分からず、ここで質問させていただいた次第です。
coco_bauer

2019/08/05 07:39

まずは、PIC16F1823というPICマイコン(以下、マイコンと略します)について確認しましょう。 マニュアルの6ページ(各ページの下のほうに小さな文字で"Page 6"などというようにページ数が書かれています)のFigure 2(図2)にあるように電源(VDD)とグラウンド(VSS)以外の12本のピンは、様々な用途(モード)に使われます(14ピンのDIPパッケージのマイコンを想定しています)。 例えば、13番ピンは、RA0/AN0/CPS0/C1IN+/DACOUT/TX(1)/CK(1)/ICSPDAT/ICDDATという 9種類の用途に使われる可能性があるという訳です。 8ページのTable 2、15~17ページのTable 1-3、に各ピンのモードと、入出力する際の信号の種別といった詳細が書かれています。 ADコンバータの入力に使えるのは、RA0~RA7(13,12,11,3,10,9,8,7番ピン)の8本あります。 各ピンのモードの設定は、APFCONと呼ばれるレジスタによって行います。(18ページから始まるTable 3-8) ここまで読んでもらうと、「これをPICマイコンのAD端子へ接続」では、どのような配線になっているのか判らないということを理解してもらえると思います。候補が8本もあるのですから。 ちょっと大変だとおもいますが、じっくりとマニュアルを読み込んでください。 配線図を質問に追加してもらえると良いです。
coco_bauer

2019/08/05 07:51

PIC16F1823のA/Dコンバータは10ビットの分解能(1/1024まで判定できる(ほぼ0.1%))です。 なので、電源を分圧している抵抗には高精度のものをつかってください。誤差1%の抵抗で分圧すると最大2%の分圧誤差が生じますから、A/Dコンバータの出力が20ぐらい狂う可能性があります。誤差0.1%の高精度抵抗を使えば、狂いが2ぐらいに収まります。 マイコンは、1.024V,2.048V または 4.096Vに設定できる定電圧リファレンスを内蔵しています。これをADCのリファレンスに使うことが可能です。
raspypy

2019/08/05 11:07

説明不足ですみません。 電源電圧を分圧した電圧は、AN0端子に接続しています。 ①「定電圧リファレンス」は、電源電圧が変化しても、1.024V、2.048V、4.098Vの大きさは変化しないのでしょうか? ②定電圧リファレンスを例えば2.048Vに設定したとして、電源電圧を分圧した電圧をAN0端子でAD変換していますが、どのように電源電圧の低下(電源電圧が2.9V以下になったことを検知したい)を検知できるのでしょうか?
coco_bauer

2019/08/05 14:33

回路図を質問に追加してください! どのように接続されているのか判らない回路について説明する能力が私にはありませんので。 (がんばって、神様か、超能力者を探してください)
guest

回答2

0

ベストアンサー

A/Dの基準電圧を、定電圧リファレンスとすると、
この「定電圧」と、A/D監視用電源を比較することで、マイコンの電源電圧を監視できるのでしょうか。

ちょっと文章の意味がよく分かりませんが、
「定電圧リファレンス」と「A/D監視用電源(電源電圧に比例)」があるとき、
「A/Dの基準電圧を定電圧リファレンスにしてA/D監視用電源の電圧を測る」ことで電源電圧が分かります。

なお、それよりも「A/Dの基準電圧を電源電圧として定電圧リファレンスの電圧を測る」の方が、「A/D監視用電源」を用意する必要がなくて楽です。
電源電圧を求めるには除算が必要になりますが、閾値との大小だけ分かればよいなら計算は不要です。

投稿2019/08/05 12:01

ikadzuchi

総合スコア3047

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

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

raspypy

2019/08/05 14:06

回答ありがとうございます。 >なお、それよりも「A/Dの基準電圧>を電源電圧として定電圧リファレン>スの電圧を測る」の方 この方法について教えてください。 例えば、私の現在の回路ですと、 ①電源電圧は、単3×2本 3.0V ②AN0ポートで電圧監視している分圧した電圧は、1.5V ①、②共に電池の電圧低下に比例してしまうので、AD変換した値で残電圧を判定しても、同じ電圧(単3×2本)を基準にしているので、判定できません。 今の回路のまま、リファレンス電圧を使用すれば、電源電圧の低下を検知できるのでしょうか? 私の理解が正しければ、仰っている内容は、次の理解で正しいでしょうか? 例えば、リファレンス電圧を、2.048Vに設定した場合、分圧した電圧をAN0ポートで見ているので、AD変換した値は、(1.5V/2.048V)x1023=749 2.048Vが、電源電圧に比例せずに一定であるので、分圧した電圧(AN0ポートで監視している電圧)から電源電圧の判定できる。
ikadzuchi

2019/08/06 00:41

> 仰っている内容は それが「A/Dの基準電圧を定電圧リファレンスにしてA/D監視用電源の電圧を測る」ですね。 「A/Dの基準電圧を電源電圧として定電圧リファレンスの電圧を測る」の方は、 [定電圧リファレンス]/[電源電圧]の値が出ます。 例えば電源電圧3.0Vで1.024Vの定電圧を測ると(1.024V/3.0V)*1024=350 電源電圧が2.5Vに下がると(1.024V/2.5V)*1024=419 電源電圧が2.0Vに下がると(1.024V/2.0V)*1024=524 となります。(なお細かいですが計算式は×1024です。×1023ではありません)
raspypy

2019/08/06 08:34

前者 「A/Dの基準電圧を定電圧リファレンスにしてA/D監視用電源の電圧を測る」の設定は、 FVRCON = 0b10000010; //11=4.096; 10=2.048; 01=1.024V と設定すれば、電源電圧が減少しても、2.048Vは変化しないので、AN0ポートに入力している電源電圧を分圧した電圧(1.5V)を監視することで、電源電圧の低下を検知できると考えています。考え方は合っていますでしょうか? 後者 「A/Dの基準電圧を電源電圧として定電圧リファレンスの電圧を測る」 こちらは、どのようにレジスタを設定すればできるのでしょうか? この方法だと、AN0ポートに入力している分圧電圧も必要なくなるのですね。
ikadzuchi

2019/08/06 15:43

前者、はい、合っています。 後者、ADCの設定レジスタで何を基準に何を測るかの設定があると思います。具体的な設定値までは分かりません。
raspypy

2019/08/07 00:37

ありがとうございました。 解決できました。
guest

0

そのPICがなにか、の記述がないため、一般的なはなしとなりますが、
そのADの基準電圧源をその定電圧リファレンスなるものに設定すると電源電圧の監視が可能になると思われます。
ましかし、そのADの電圧入力は基準電圧源に合わせて、電源電圧から分圧させないといけません。
データシートをよく読んで、どれだけの分圧が必要かを算出して、回路の修正をしましょう

投稿2019/08/05 05:35

y_waiwai

総合スコア87747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問