X



トップページ電気・電子
1002コメント349KB
初めてのPIC 0x0D
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2017/10/25(水) 21:40:54.97ID:NIu5kjbi
  _       _    PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

 質問する時のコツ
  ・性格の悪い回答者はスルーしよう(相手すると逆効果)
  ・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
  ・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
  ・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
  ・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。


 必要なソフトなど(基本無料)
統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications


 必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005


 さ、質問どうぞ〜っ
  0X0C 2017/07/27〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
  0x0B 2017/05/08〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
  0x0A 2017/01/04〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
  0x09 2016/09/07〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
  0x08 2016/04/30〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
  0x07 2016/02/05〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
  0x06 2015/07/18〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
  0x05 2015/04/07〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
  0x04 2015/01/02〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108
  0x03 2014/09/22〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1411314715
  0x02 2014/05/20〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1400522979
  0x01 2013/11/17〜  ttp://ai.2ch.net/test/read.cgi/denki/1384626558
0043774ワット発電中さん
垢版 |
2017/11/07(火) 07:56:33.63ID:mPpLKbOl
>>41じゃないけれど、

>>19
>RAx=0;  先に現在のポート状態を読み込み、そこに変更を加えて書き戻す
>LATAx=0; 強制的にポートへ書き出す。「ラッチを掛ける」と覚えればおk

PICのビット操作命令(BCF,BSF)は、
バイト単位でいったん状態を読み込んで、
ビットを操作した上で
対象レジスタに書き戻す
という動作をします。

その点においては、上も下も同じ。
そして、書き込む出力レジスタも、上も下も同じです。

違いは、読み込み時で、上の方が、ピンから入力バッファを通ったところ。図の(1)。
下は出力レジスタの出力そのもの。図の(2)。

なので、レジスタを変化させた直後の命令で、RAを読むと、遅延の影響でその変化が
反映されてことがあります。でも、LATAならすぐに反映されます。
0044774ワット発電中さん
垢版 |
2017/11/07(火) 07:57:45.09ID:mPpLKbOl
と、書きましたが、PICを最後に触ってから、かなり経っているので間違ってるかもしれません。
間違っていたらご指摘いただけると嬉しいです。
0045774ワット発電中さん
垢版 |
2017/11/07(火) 08:17:43.45ID:glbWihir
>>41=>>43さん、詳しい説明ありがとうございました
0046774ワット発電中さん
垢版 |
2017/11/07(火) 08:21:38.70ID:mPpLKbOl
>>41じゃないってば…
0047774ワット発電中さん
垢版 |
2017/11/07(火) 11:18:27.88ID:uTmtNrex
>>43

>while(1){
>RA4=1;
>RA5=1;
>__delay_ms(500);
>RA4=0;
>RA5=0;
>__delay_ms(500);
>}
>こうするとRA4が点滅しなくなるんですけど、

これはどのように考えれば良いでしょうか?
0049774ワット発電中さん
垢版 |
2017/11/07(火) 13:02:39.36ID:uTmtNrex
>>48
ご親切にありがとうございました。
以下のような理解でよいでしょうか?

while(1){
   RA4=1;      // a_port全体を読んで、RA4=1にして、書き込む
   RA5=1;      // まだ1になっていないRA4を含むa_port全体を読んで、
              // RA5=1にして、0と読んでしまったRA4を含めて、書き込む
   __delay_ms(500); // 待つ。この時間により、RA4は0に、RA5は1になりきった。

   RA4=0;      // すでに0のRA4と、ちゃんと1になったRA5を含むa_port全体を読んで、
              // RA4に0を上書きして、書き戻す
   RA5=0;       // ちゃんと0になったRA4と、ちゃんと1になったRA5を含めて読み込んで、
               // RA5=0にして、書き込む
   __delay_ms(500);
}

・クロックが遅い場合は、0と1の遷移途中で読込するほど速くはアクセスできないので、上記現象にはならない。
・高速クロックでも、書き込んでから、遷移完了までの時間以上を、NOPなどで待てば、上記現象は起きない。

という理解も正しいでしょうか?
0050774ワット発電中さん
垢版 |
2017/11/07(火) 17:16:36.97ID:wMKc0+PR
>>49
それでいいと思います。
さらに、LATのある品種ではLATを使えばFFを直接読むので回避できます。
0051774ワット発電中さん
垢版 |
2017/11/08(水) 07:42:01.10ID:n2j4tKBM
まとめて設定すればできると思います。
RA |= 0b00110000;
RB &= 0b11001111;
0052774ワット発電中さん
垢版 |
2017/11/08(水) 08:47:29.88ID:xlnMnZum
>>51

RA4=1;
RA5=1;



RA |= 0b00110000;

1行に置き換えられますが、都合で論理が変わってしまって、プログラムが

RA4=1;
RA5=0;

に変更になったら、

RA |= 0b00010000;
RA &= 0b11011111;
と2行になりますね。


それと、わりと大したことではないですが、
RA |= 0b00110000;
は、
・ワーキングにリテラル値を入れて
・ポートAを対象にIORWF
みたいな操作になるので、2ビットまでなら、自由度が下がるのにインストラクション数が有利にならないように思います。

ポートのビット操作をするなら、それが存在する品種ならLATxを使わない理由はないのではないでしょうか。(|=でも&=でも)
0054774ワット発電中さん
垢版 |
2017/11/08(水) 22:18:37.76ID:FQIsEG8w
>>52
16F1823でやると、なんの問題もなく、RC0,RC1が点滅するんですが
これはどうなってるんですか?

while(1){
RC0=1;
RC1=1;
__delay_ms(500);
RC0=0;
RC1=0;
__delay_ms(500);
}
0056774ワット発電中さん
垢版 |
2017/11/09(木) 12:17:06.38ID:u0sGxKai
16F18xx世代からMOSFETのドライブ能力かスイッチング速度が上がったのかもね
LEDに1000pFくらいパラ接続すれば再現すると思う
0057774ワット発電中さん
垢版 |
2017/11/09(木) 18:17:43.28ID:d4kTd3KN
>>56
> 16F18xx世代からMOSFETのドライブ能力かスイッチング速度が上がったのかもね

データシートを見ますと、12F1822と16F1823は同じデータシートに
書かれてますんで、同じものとおもってたんですが、微妙に違うんですね
勉強になりました
0058774ワット発電中さん
垢版 |
2017/11/09(木) 23:15:14.64ID:MyA9/q0r
ポートへのビット制御の問題はそれだけじゃなくて、負荷が極端に重い
場合とかポートにノイズが乗るとデータが変わってしまう可能性がある。
0059774ワット発電中さん
垢版 |
2017/11/10(金) 05:17:04.45ID:k8gQ5Q9X
ドライブ能力というと、16F84とかの世代は1pin当たり25mA Maxだったのが、
16F18325を使ってみたら1pin当たりの電流が50mAまでドライブできるようになってて
間に2SC1815とか入れんでも汎用のフォトカプラでとりあえず57600bpsまでUSARTの絶縁伝送ができてウマー。
0060774ワット発電中さん
垢版 |
2017/11/10(金) 08:03:47.82ID:CiKiw24v
>>59
25mAだって駆動できると思うけど。
0061774ワット発電中さん
垢版 |
2017/11/10(金) 08:50:35.56ID:skT1N29o
>>52
>ポートのビット操作をするなら、それが存在する品種ならLATxを使わない理由はないのではないでしょうか。(|=でも&=でも)

考え方が間違ってる。LATレジスタがついてるPICは、例えポートに何も繋がない状態でさえ
リードモディファイライトに失敗する可能性がある。だからLATレジスタが新設された。
使わない理由なんて幾らでも見つかるが、LATレジスタの有るPICでポート直接のリードモディファイライトは
マイクロチップが結果を保証してない。それだけの話。
昔のLATレジスタの無いPICはポートに接続された物が適切ならば其の様な事は起きない。

>>58
それはお前の設計が悪いから。ビット制御の問題wとかでは微塵もない。

>>59
それはフォトカプラのLEDに50mA流してるって事?
設計が悪すぎwww
0063774ワット発電中さん
垢版 |
2017/11/10(金) 09:44:00.33ID:ITZPzE4o
>>61
「適切なポートの負荷」の定義が「リードモディファイライトに失敗しない負荷」であれば、
「ポートに接続された物が適切ならばリードモディファイライトに失敗しない」といえますね。

こんな議論って意味あるのかな?


まあ、俺が書いたのは、「LATxがあるなら、LATxを使わない理由はないのではないでしょうか」なので
LATxがないPICについては対象外ですし、関係のない話ですが。
0064774ワット発電中さん
垢版 |
2017/11/10(金) 10:58:19.92ID:qDQX0Xts
LATがないPICはポートのリードモデファイライトが保証されてるとでも?
LATがないPICのデータシートに明記されているように問題があるからLATが
追加されたんだろう。

俺が言っているのは使い方じゃなくて可能性の問題だ。
LATがないPICを使うときは誤動作の可能性を排除するためにポートと
同じデータをメモリに持っていて、それを操作してからポートに書く
ようにしてるよ。
0065774ワット発電中さん
垢版 |
2017/11/10(金) 12:18:16.89ID:nikuSigx
C言語でLATポート操作を明示的に指定するには
インラインアセンブラ以外に無いものかな
0066774ワット発電中さん
垢版 |
2017/11/10(金) 12:23:35.91ID:UHnfJDu3
>>64
ポートの動作時間とアクセスに要する時間とCPUの速度が同期してれば、
そこそこいけるんじゃね?
CPUが早くなったから必要になったんだろう
0068774ワット発電中さん
垢版 |
2017/11/10(金) 13:35:03.19ID:UHnfJDu3
>>67
ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる?
0069774ワット発電中さん
垢版 |
2017/11/10(金) 13:42:06.11ID:lOdzfhhv
PICは、4クロックに分割されたインストラクションサイクルのうち最初のクロックで入力ポートをラッチしているのに対し出力が行われるのは4つ目のクロックの後縁です
0070774ワット発電中さん
垢版 |
2017/11/10(金) 18:06:41.69ID:ITZPzE4o
>>67
>誤動作の可能性はCPUスピードとは関係ないもの「も」ある
(その内容は>>58の通り、負荷が重いとか外来ノイズとか)

と、>>68
>ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる?

という問いかけが噛み合っていないというか、どういう関係なのかがいまいちわからんなあ。
0071774ワット発電中さん
垢版 |
2017/11/10(金) 20:34:41.65ID:qDQX0Xts
俺が>>58で可能性を書いてるのに設計が悪いとか使い方を笑われた
時点でかみ合ってないというか理解されてないとは思ってた。
0072774ワット発電中さん
垢版 |
2017/11/10(金) 21:15:05.62ID:ja//ONjM
Microchip はRA4=1じゃなくてLATA4=1と書け、とはっきり宣言してほしいね
初心者としてはそのほうが助かる
0073774ワット発電中さん
垢版 |
2017/11/11(土) 00:37:09.90ID:SlJY3eZQ
>>71
理解出来てないから>>58みたいな事をシラッと書いてしまうんだろw
0074774ワット発電中さん
垢版 |
2017/11/11(土) 03:02:45.06ID:sCmIbm4s
突如16F84が火を吹いてお亡くなりになられた、もちろん基盤ごと

何があった…何に何を流した…謎が深まる。

仕掛けは機械のステータスを二進法で送り出すだけなんですけどね
上位ビットでセグメント管理して、下位ビットでエラーコード返すとか、そんな簡単なの
0075774ワット発電中さん
垢版 |
2017/11/11(土) 05:06:26.95ID:SlJY3eZQ
基盤だからしようが無い。
ハードの信頼性上げるのって、素人には難しいね。
勉強あるのみ。
センスが無くて何時まで経っても駄目な奴は居るけど
仕事でやっても5〜10年は掛かるんじゃ無いかな。
0076774ワット発電中さん
垢版 |
2017/11/11(土) 08:08:49.24ID:dfbChac9
>>73
>>58に書いてあることは自体には可能性のひとつとしてありうることなのに、
何をもって「理解できないから〜シラッと」と評価するんだろう。
0077774ワット発電中さん
垢版 |
2017/11/11(土) 08:10:15.63ID:dfbChac9
もっと関心があるのは、
>ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる?
これとの関係なんだがなあ。もうこれを書いた人は消えちゃったか。
0078774ワット発電中さん
垢版 |
2017/11/11(土) 08:24:55.96ID:dfbChac9
>>74
この板で「基盤」と書くとそれだけで素人扱いして、他の作業がちゃんとしていても
徹底的にバカにする偏執狂的行為をする人がいるのでご注意。

で、プログラムの内容を書かれてますけど、そこそこまともに作られた回路であれば
プログラム自体で基板ごと火を噴くに至ることは、俺には経験がありません。
出力ポートが他の出力とぶつかるケースでも、熱くなる程度でした。

回路そのものに原因があったか、ラッチアップで電源ラインに大きい電流が流れたか、
実は最初に火を吹いたのは別の部品でPICでは延焼しただけってことはないでしょうか。

よく言葉としては出てくる「ラッチアップ現象」も滅多に遭遇しません。俺が経験したケース
ではチップのエポキシが割れて煙が出てくるぐらいでした。
それでも電源ラインが細ければ基板の電源ラインを焼く可能性はあるかもしれません。
入力がオープンのまま放置されたところに、強烈なノイズが入ったとか、
外部からの入力端子に過大な電圧が入ったとか、
外部との接続部分でグランドが外れたとか
みたいなことはないですかね。
0079774ワット発電中さん
垢版 |
2017/11/11(土) 08:33:00.61ID:ItXj18h8
安定化電源で最大電流を100mAまで絞っておけば
短絡してもIC自体が壊れることは稀
0081774ワット発電中さん
垢版 |
2017/11/11(土) 08:51:33.75ID:r+L7JFic
>>61
LAT**の無いPICはクロック周波数最大20MHzだから、問題起きにくかったんだろ。
内蔵発信器だと、4Mとか8Mとかしか設定出来なかったし。
0082774ワット発電中さん
垢版 |
2017/11/11(土) 08:52:58.14ID:dfbChac9
>>79
作った基板に初めて通電するときはCVCC電源でそうやって使うようにしているけれど、
けっこう多くの人が、ACアダプタとか、電流制限のない電源を使ってるんじゃないかでしょうか。
あと、いったん稼働を始めた装置なら、おおもとの大きい電源で、複数の回路を駆動
していたり。

基板ごとの安全対策はやっぱり必要なこともありますね。
0083774ワット発電中さん
垢版 |
2017/11/11(土) 14:09:47.16ID:1JKkX/yX
CCで起動するのはいいけど、
それだとDCDCコンバータが起動しますか?

ACアダプタでいきなり電源を入れるのは、自殺行為に近い。
なぜ最初くらい電流計を入れようとしないのでしょうか?

また、電源装置のデジタル電流計も、サンプリングがトロくて、
過電流が判明するまでに時間がかかる。
0084774ワット発電中さん
垢版 |
2017/11/11(土) 15:56:32.19ID:dfbChac9
>>83
DC-DCコンバータが搭載されている場合において、その基板の定常状態の電流を
想定して、CCを設定してたら、たいていの場合は起動でコケますね。
突入を想定して多めにしておかないと。

電源器のメーターでも、テスターの電流でも、過電流がわからずにずーっとそのままで
いるよりはマシかも。
0085774ワット発電中さん
垢版 |
2017/11/11(土) 17:15:19.28ID:hURqkQD9
CCで電流リミットかけて、電圧を徐々に上げてくのはダメ?
0086774ワット発電中さん
垢版 |
2017/11/11(土) 21:19:58.45ID:dfbChac9
>>85
それで良い場合もあるかもしれないけれど万能じゃない。

・CPUなどでは電源電圧の立ち上がり時間に規定がある場合があって、
それより遅いと起動がうまくいかないことがある。

・DC-DCはある電圧まで動作せすに、一定電圧になったときに動作を
始めるものがある。その場合、ゆっくり電圧を上げたからといって
突入電流の問題を回避できない。
0087774ワット発電中さん
垢版 |
2017/11/12(日) 08:40:56.05ID:OJDCtjVc
>>78
頭悪そうw
0090774ワット発電中さん
垢版 |
2017/11/12(日) 20:58:06.82ID:d4+xikZ2
>>76
>>58は、設計能力が無いからデータシートは読めないし、出力ポートの電圧が
異常になる位の負荷を掛けても平気だし、同様なノイズが乗るような設計でも平気なんだろ。
つまり、まるで理解出来てない。℃素人まるだしの意見が>>58

それを「>>58に書いてあることは自体には可能性のひとつとしてありうることなのに、 」
とか、悔しそうに反論してるって事は、>>61で指摘した>>58の設計能力の無さに
微塵も気が付いていないのだろう。

PICはどこぞの℃素人向けのAなんとかと違って、アナログ回路が設計出来ないと
使いこなせないから、精進あるのみ。
0091774ワット発電中さん
垢版 |
2017/11/12(日) 21:05:45.13ID:81NWt8d0
>>89
説明を聞こうか。
0092774ワット発電中さん
垢版 |
2017/11/12(日) 21:09:12.93ID:d4+xikZ2
理解力に乏しいみたいだからもう一度書くが

>>58
それはお前の設計が悪いから。ビット制御の問題wとかでは微塵もない。
ビット制御の問題じゃ無く、お前が問題w
0093774ワット発電中さん
垢版 |
2017/11/12(日) 21:14:31.38ID:ZJmDdSsg
>>90
℃玄人が今頃悔しそうに出てきたのか

過去に16F84AとかのLATがないPICで、ポートにビット制御命令を使った
製品を出荷していて必死に誤動作の可能性を否定したいのだろうけど、
いくら言葉でやり込めても誤動作の「可能性」はなくならないよ。
0094774ワット発電中さん
垢版 |
2017/11/12(日) 21:18:30.83ID:d4+xikZ2
全然反論になってない℃素人w
0095774ワット発電中さん
垢版 |
2017/11/12(日) 21:25:35.78ID:81NWt8d0
ノイズに関してはなんとも言えん。

設計が良ければ大丈夫という一面的な考え方は退屈だと思う。
0097774ワット発電中さん
垢版 |
2017/11/12(日) 23:39:36.61ID:WgTFMxyH
LATが無い化石PICなんて早く捨ててしまえ
無駄な労力をかけたいマゾと、問題が理解できないアホ専用だ
0102774ワット発電中さん
垢版 |
2017/11/19(日) 06:59:57.78ID:p+PPJx+7
「同じアフォなら書かなきゃソンソン」は成立するのだろうか?
0105774ワット発電中さん
垢版 |
2017/11/19(日) 11:47:54.38ID:nhroBDIA
叩いたつもりが逆襲される間抜けが多い
0106774ワット発電中さん
垢版 |
2017/11/19(日) 18:19:06.67ID:n7Oza4Pk
暖簾にアフォ押し
0107774ワット発電中さん
垢版 |
2017/11/20(月) 23:41:52.99ID:7r+qcNZG
機能は必要な機能があればそれ以外は不要なものです
使わないものがあっても何の役に立たない。
ここにいる人は、不要な物だと思うが?????
役に立たない者はとっとと出ていけ・・・
0108774ワット発電中さん
垢版 |
2017/11/21(火) 19:27:01.38ID:h5+pL5fw
やっぱ理系はだめだな、視点が狭い、精神が幼稚
やがて日本を滅ぼす理系
0110774ワット発電中さん
垢版 |
2017/11/22(水) 13:23:47.10ID:5ukqZEkA
文系の人って理系に対して何かコンプレックスみたいなものが有るのかな?
その理由が中学・高校時代の物理や化学、数学が苦手だったから、なら精神的に根深いなぁ。
可哀想に。
0111774ワット発電中さん
垢版 |
2017/11/22(水) 14:21:51.95ID:2hsajQfL
文系でも電子工作の趣味を持ってる人くらいいるだろ
今はネットに情報転がってるから割と簡単だしな
情報の無い時代は辛かったけど
0113774ワット発電中さん
垢版 |
2017/11/23(木) 02:47:10.38ID:mvzZxMAJ
どこでもそうだけど、確かにおかしな人が住み着いてるみたいだしな
初心者はびびってしまうよね
0114774ワット発電中さん
垢版 |
2017/11/23(木) 12:48:11.18ID:e6ooAkPS
PIC12F683のAD変換について質問です。

AN1〜3端子を未接続状態で、AN0に0〜5V印加して順番にAD変換した場合、
どうも未接続端子の変換結果がAN0に釣られているように見受けられます。
この動作は正しい?
0115774ワット発電中さん
垢版 |
2017/11/23(木) 13:10:06.84ID:IeKLgcPU
正しいと思います。
というか、未接続で使う事自身がいけないことなので、
何が起きても「正しいと思います」ということになるね。
0116774ワット発電中さん
垢版 |
2017/11/23(木) 13:11:51.36ID:WdjZkspb
>>114
未接続って浮いてるの?GND?
だったらなんでその端子も読んでるのか訳が分からないんだけど。
AN0に高周波に近い信号が乗ってきてたらアンテナ代わりになる可能性だってあるし、AN1〜3は繋いでないのに取り込む必要性を感じないんだけど?
0117774ワット発電中さん
垢版 |
2017/11/23(木) 14:38:55.75ID:D7IyR08M
>>114
正しい動作だと思います。
A/Dコンバータは、いったん内部コンデンサに外部電圧を取り込んでから変換します。
AN0に電圧を与えて変換したあと、AN1に切り替えて変換するとき、本来ならAN1の入力で、内部コンデンサをチャージ
(または放電)するのですが、
AN1がオープンになっていると、この内部コンデンサに前の電圧が残っていまいます。そのうちこの電圧は内部で使われたり、
リーク電流でどこかに落ち着くはずですが。

同様に、AN1に実際に信号を接続する場合でも、繋いだ回路のインピーダンスが高い場合は、AN1の測定に
直前のA/D変換チャンネルの影響が残ることがあります。


>>116
読んでるのか訳がわからない、というのもどうかと。

次のようなケースも考えられます。

(1)未接続ピンがどうなるのか検証してみたいという、興味から。
(2)マイコン自体はAN0〜3で電圧を測れるように準備しておくものの、そのマイコンのユーザーが全てに接続するとは限らない。

2chのオシロで、CH1だけを使っている場合でもCH2をOFFにしない人もいますよね…。
0118774ワット発電中さん
垢版 |
2017/11/23(木) 14:53:18.34ID:WdjZkspb
>>117
>(1)未接続ピンがどうなるのか検証してみたいという、興味から。
>(2)マイコン自体はAN0〜3で電圧を測れるように準備しておくものの、そのマイコンのユーザーが全てに接続するとは限らない。

>2chのオシロで、CH1だけを使っている場合でもCH2をOFFにしない人もいますよね…。

前者は分からんでもないが、普通影響を及ぼさない様な計測器を作るでしょう?
横河とかがそういう計測器作ってたら総スカンだよ。

2ばんめもそう、安いマイコンだけの計測器ならあり得るけど、その時に使ってないピンの計測結果はこうでしたので……なんて説明し始めたら質問の荒らしだよ。
使ってない、繋いでないピンの数値に何を求めてるの?俺には全然わからないんだけど?そう言い出す根拠があるならちゃんと説明してくれる?
逆に正しい名目がないなら確保する理由も、無いよね?

最後も最近のカラーオシロでも無いと思うんだけど……だってどう説明するの?説明する必要ないでしょって取り直しを命じられると思うんだけど?
0119774ワット発電中さん
垢版 |
2017/11/23(木) 16:18:41.25ID:E3bjr9WI
未使用のアナログ入力
 Hi-ZならGNDと接続かな。

オシロ
 いちいち画面から消すの面倒だから、1chだけ見るときは、
2chはプローブのGNDとクリップをショートするだけで消さない。
画面を記録に残して他人に見せるときでも消さない。
0120774ワット発電中さん
垢版 |
2017/11/23(木) 17:40:17.99ID:D7IyR08M
>安いマイコンだけの計測器ならあり得るけど
それでよろしいやん。
ってそういう可能性がわかっておられるなら、「訳がわからない」ってことはないですね。

これ、市販の測定器を作る話じゃないよね?
0121774ワット発電中さん
垢版 |
2017/11/23(木) 18:02:18.68ID:MU9b5XZp
>>118
やってみたら理解できない現象が現れたら、なぜなのか追求する
のは正しい姿勢だと思うけど。
やってみることすらいけないのかな?

この現象は入力がオープンだけでなく、信号源インピーダンスが
高い場合に入力を切り替えてからA/D変換を始める時間が足りてな
い場合に遭遇するので、原因を突き詰めておくのは充分意味があ
ると思う。原因は>>117のが書いているとおり。
0122774ワット発電中さん
垢版 |
2017/11/23(木) 20:09:40.42ID:xZ9A+nh5
Microchipから日本語のメールが届くとなんかドキドキする
これは…もしかして恋?
0123774ワット発電中さん
垢版 |
2017/11/23(木) 21:58:40.31ID:BGWXV+uH
PICのツール(Cコンパイラ、デバッガ)って無料なの?
レジスタが特殊すぎてコード効率悪そうなんだがそこんとこどうなの?
0124774ワット発電中さん
垢版 |
2017/11/23(木) 22:55:19.25ID:VJz5/TLI
最適化されてない遅くてでかいコード吐くCコンパイラは無料
デバッガは別売りで値段なりの性能
効率は悪いけど動けばいいので無問題
0125774ワット発電中さん
垢版 |
2017/11/23(木) 23:19:51.75ID:pbWH1EFv
>>124
大きいと言っても四桁番号以降のではそれほどでもないし、コードサイズに制限無いし。
取り合えず使ってみるには十分。
0126114
垢版 |
2017/11/24(金) 01:06:22.25ID:MQ6R+jwO
みなさまご教示ありがとうございます。
特に117様の回答はとても具体的で分かりやすかったです。

最初にもっと具体的に書けば良かったのですが、ソフトは
全AD端子を使う前提で書いていました。それをブレッドボード
で試すときに機材の都合で1chだけ繋いで動かしたら、何か
変に釣られているような挙動になってしまい、原因が分からず
質問しました。
コードはネットのほぼコピペだったのですが、マイコンの事も
もっと知らなきゃと、とても良い勉強になりました。
0127774ワット発電中さん
垢版 |
2017/11/24(金) 12:54:47.41ID:Sau4xcjU
>>126
他のchのAD入力端子への信号は、低いインピーダンスで駆動された信号が来ていますか?

PIC内部にある、AD ch切替用のアナログスイッチが、次のchに切り替わった時、
PIC内部にある、AD値保持用のコンデンサが、選ばれた信号電圧に、サッと変化しないと、
前のchの電圧が残ります。

信号駆動のインピーダンスが高いと、
ch切替後の電圧変化に時間がかかり、まだ電圧変化中なのに、ADがサンプルしてしまいます。
信号駆動のインピーダンスが低いと、
ADサンプル以前に、電圧がコピー完了するので、正しいAD変換ができます。
0128774ワット発電中さん
垢版 |
2017/11/24(金) 13:14:40.47ID:l9Vtlj7y
入力インピーダンスと出力(ドライブ)インピーダンスの問題だね。
どんな回路でも(電源でも)ついて回る。
0129774ワット発電中さん
垢版 |
2017/11/24(金) 13:40:39.72ID:Sau4xcjU
そうです。
直流っぽい信号なら、AD入力端子に、
0.1uFとかのコンデンサを置いて信号源インピーダンスを下げれば良いんですが。
0131774ワット発電中さん
垢版 |
2017/11/24(金) 16:01:45.90ID:DocaZ/ed
>>130
理由を教えていただけませんか?
0132774ワット発電中さん
垢版 |
2017/11/24(金) 18:14:04.44ID:52Ksmvva
>>131
サイズのわりに容量大きい奴は、電圧による容量変化大きいから波形が歪む。
あと、物理的な力での容量変化も大きいから、振動を拾い易い。
0133774ワット発電中さん
垢版 |
2017/11/24(金) 18:46:36.16ID:DVzji7LG
130じゃないけど、

結構振動とかを拾いやすく、容量が小刻みに変動するのでチャージされた電荷が逃げなければ電圧ノイズとなって観測された。
ノイズ取りのつもりで大容量を使ったら衝撃検出センサーをつけてしまった失敗談。
扱う周波数帯域で最適化すればMLCCで構わない場合もあるでしょう。
0134774ワット発電中さん
垢版 |
2017/11/24(金) 19:40:45.13ID:IIynOyp9
MLCCでも温度補償型のものならそれらの問題は避けられます。
といっても、0.01uFを超えるような温度補償型は特殊ですね。たぶん。

ただ、A/Dコンバータの入力静電容量って20pFぐらいですし
分解能が10ビットなら0.01uFでも十分かと。
0135774ワット発電中さん
垢版 |
2017/11/24(金) 20:50:59.10ID:Sau4xcjU
>>134
>MLCCでも温度補償型のものならそれらの問題は避けられます。
温度補償型だと、機械振動が電圧に反映することもないの?
0136774ワット発電中さん
垢版 |
2017/11/24(金) 21:31:33.51ID:Qwbbd5SG
>>134
1uFも10uFも温度保証なのは普通にあるんじゃね?
振動はMLCCの性格上避けられないんじゃね。アルミ電解と同じ。
0137774ワット発電中さん
垢版 |
2017/11/24(金) 22:28:02.72ID:IIynOyp9
あれ。書いたつもりが書けてない。どこかに誤爆したかな…
↓同じような内容でどこかに書いたかもしれません。

>>135
温度補償型(用が正しいみたい)で、全く、わずかでも圧電ノイズが出ないかというとどうでしょね。

俺の経験では、同調回路やフィルタに使ったりしていますが、問題を感じたことはありません。
0.01uFのXR7とCHで基板に衝撃を与えて比較したことがありますが、前者ではスパイクノイズを
観測することができました。

それでも、半田の種類で音が変わるようなオーディオ用にはたぶん向かないと思います。

高誘電率と温度補償用の違い
https://www.murata.com/ja-jp/support/faqs/products/capacitor/mlcc/char/0017

高誘電率系には圧電高価
https://www.murata.com/ja-jp/support/faqs/products/capacitor/mlcc/char/0015

>>136
動作温度が「保証」されていることと、セラミックコンデンサの「温度補償用」を混同されてませんか?
0138774ワット発電中さん
垢版 |
2017/11/24(金) 22:28:33.04ID:IIynOyp9
×高誘電率系には圧電高価
○高誘電率系には圧電効果
0139774ワット発電中さん
垢版 |
2017/11/24(金) 22:39:54.52ID:Cy0f9jAG
ADCに速度を要求しないなら、測定結果にIIRフィルタかませばいいのでは?

俺はそうしてる。
0140774ワット発電中さん
垢版 |
2017/11/24(金) 22:57:27.81ID:IIynOyp9
>>139
振動に起因するノイズがA/Dコンバータに入ってきているケースで、
A/Dコンバータでのサンプリングレートの半分より速い振動だと、デジタルフィルタでは取り切れないことがあります。
今の話は、A/Dコンバータの直前のコンデンサの話だったと思います。

たとえば、
図の黒が本来の電圧。
振動に起因するノイズが重畳された様子が赤。
たまたま青のポイントでサンプリングしていたら、A/Dコンバータ以降では、緑の電圧にしか見えません。

こんなふうにならないように、通常はサンプリングレートの半分以下の周波数だけがA/Dコンバータに来るように
アンチエイリアスフィルタを入れますが、そのあとのコンデンサで、もしノイズが発生していたらダメですね。
0142774ワット発電中さん
垢版 |
2017/11/24(金) 23:22:08.77ID:IIynOyp9
>大きいか小さいかだけ。

そうなんですよ。
なので>>135のような質問は答え方が難しいですね。
0143774ワット発電中さん
垢版 |
2017/11/25(土) 00:08:03.14ID:ZntprLgK
A/Dコンバータの入力に容量の大きなコンデンサを入れるときは
直流的な入力を想定しているのだろうから波形が歪むというのは
違う気がするな。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況