初めてのPIC 0x0D
■ このスレッドは過去ログ倉庫に格納されています
_ _ 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 >>64
ポートの動作時間とアクセスに要する時間とCPUの速度が同期してれば、
そこそこいけるんじゃね?
CPUが早くなったから必要になったんだろう >>66
俺は>>58なので誤動作の可能性はCPUスピードとは関係ないものもある
と思ってる >>67
ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる? PICは、4クロックに分割されたインストラクションサイクルのうち最初のクロックで入力ポートをラッチしているのに対し出力が行われるのは4つ目のクロックの後縁です >>67の
>誤動作の可能性はCPUスピードとは関係ないもの「も」ある
(その内容は>>58の通り、負荷が重いとか外来ノイズとか)
と、>>68の
>ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる?
という問いかけが噛み合っていないというか、どういう関係なのかがいまいちわからんなあ。 俺が>>58で可能性を書いてるのに設計が悪いとか使い方を笑われた
時点でかみ合ってないというか理解されてないとは思ってた。 Microchip はRA4=1じゃなくてLATA4=1と書け、とはっきり宣言してほしいね
初心者としてはそのほうが助かる >>71
理解出来てないから>>58みたいな事をシラッと書いてしまうんだろw 突如16F84が火を吹いてお亡くなりになられた、もちろん基盤ごと
何があった…何に何を流した…謎が深まる。
仕掛けは機械のステータスを二進法で送り出すだけなんですけどね
上位ビットでセグメント管理して、下位ビットでエラーコード返すとか、そんな簡単なの 基盤だからしようが無い。
ハードの信頼性上げるのって、素人には難しいね。
勉強あるのみ。
センスが無くて何時まで経っても駄目な奴は居るけど
仕事でやっても5〜10年は掛かるんじゃ無いかな。 >>73
>>58に書いてあることは自体には可能性のひとつとしてありうることなのに、
何をもって「理解できないから〜シラッと」と評価するんだろう。 もっと関心があるのは、
>ゲート電圧低くいのに電流たくさん流したときのスイッチング時間ってどうなるか知ってる?
これとの関係なんだがなあ。もうこれを書いた人は消えちゃったか。 >>74
この板で「基盤」と書くとそれだけで素人扱いして、他の作業がちゃんとしていても
徹底的にバカにする偏執狂的行為をする人がいるのでご注意。
で、プログラムの内容を書かれてますけど、そこそこまともに作られた回路であれば
プログラム自体で基板ごと火を噴くに至ることは、俺には経験がありません。
出力ポートが他の出力とぶつかるケースでも、熱くなる程度でした。
回路そのものに原因があったか、ラッチアップで電源ラインに大きい電流が流れたか、
実は最初に火を吹いたのは別の部品でPICでは延焼しただけってことはないでしょうか。
よく言葉としては出てくる「ラッチアップ現象」も滅多に遭遇しません。俺が経験したケース
ではチップのエポキシが割れて煙が出てくるぐらいでした。
それでも電源ラインが細ければ基板の電源ラインを焼く可能性はあるかもしれません。
入力がオープンのまま放置されたところに、強烈なノイズが入ったとか、
外部からの入力端子に過大な電圧が入ったとか、
外部との接続部分でグランドが外れたとか
みたいなことはないですかね。 安定化電源で最大電流を100mAまで絞っておけば
短絡してもIC自体が壊れることは稀 >>65
変数名にLAT***や構造体使えば良い。 >>61
LAT**の無いPICはクロック周波数最大20MHzだから、問題起きにくかったんだろ。
内蔵発信器だと、4Mとか8Mとかしか設定出来なかったし。 >>79
作った基板に初めて通電するときはCVCC電源でそうやって使うようにしているけれど、
けっこう多くの人が、ACアダプタとか、電流制限のない電源を使ってるんじゃないかでしょうか。
あと、いったん稼働を始めた装置なら、おおもとの大きい電源で、複数の回路を駆動
していたり。
基板ごとの安全対策はやっぱり必要なこともありますね。 CCで起動するのはいいけど、
それだとDCDCコンバータが起動しますか?
ACアダプタでいきなり電源を入れるのは、自殺行為に近い。
なぜ最初くらい電流計を入れようとしないのでしょうか?
また、電源装置のデジタル電流計も、サンプリングがトロくて、
過電流が判明するまでに時間がかかる。 >>83
DC-DCコンバータが搭載されている場合において、その基板の定常状態の電流を
想定して、CCを設定してたら、たいていの場合は起動でコケますね。
突入を想定して多めにしておかないと。
電源器のメーターでも、テスターの電流でも、過電流がわからずにずーっとそのままで
いるよりはマシかも。 CCで電流リミットかけて、電圧を徐々に上げてくのはダメ? >>85
それで良い場合もあるかもしれないけれど万能じゃない。
・CPUなどでは電源電圧の立ち上がり時間に規定がある場合があって、
それより遅いと起動がうまくいかないことがある。
・DC-DCはある電圧まで動作せすに、一定電圧になったときに動作を
始めるものがある。その場合、ゆっくり電圧を上げたからといって
突入電流の問題を回避できない。 >>76
>>58は、設計能力が無いからデータシートは読めないし、出力ポートの電圧が
異常になる位の負荷を掛けても平気だし、同様なノイズが乗るような設計でも平気なんだろ。
つまり、まるで理解出来てない。℃素人まるだしの意見が>>58
それを「>>58に書いてあることは自体には可能性のひとつとしてありうることなのに、 」
とか、悔しそうに反論してるって事は、>>61で指摘した>>58の設計能力の無さに
微塵も気が付いていないのだろう。
PICはどこぞの℃素人向けのAなんとかと違って、アナログ回路が設計出来ないと
使いこなせないから、精進あるのみ。 理解力に乏しいみたいだからもう一度書くが
>>58
それはお前の設計が悪いから。ビット制御の問題wとかでは微塵もない。
ビット制御の問題じゃ無く、お前が問題w >>90
℃玄人が今頃悔しそうに出てきたのか
過去に16F84AとかのLATがないPICで、ポートにビット制御命令を使った
製品を出荷していて必死に誤動作の可能性を否定したいのだろうけど、
いくら言葉でやり込めても誤動作の「可能性」はなくならないよ。 ノイズに関してはなんとも言えん。
設計が良ければ大丈夫という一面的な考え方は退屈だと思う。 LATが無い化石PICなんて早く捨ててしまえ
無駄な労力をかけたいマゾと、問題が理解できないアホ専用だ 教えるほうも教えられるほうも
ここはアフォの集まり >>98
「書くアフォに読むアフォ」
アンサンの事でっせw 「同じアフォなら書かなきゃソンソン」は成立するのだろうか? 機能は必要な機能があればそれ以外は不要なものです
使わないものがあっても何の役に立たない。
ここにいる人は、不要な物だと思うが?????
役に立たない者はとっとと出ていけ・・・ やっぱ理系はだめだな、視点が狭い、精神が幼稚
やがて日本を滅ぼす理系 PICスレで理系だの文系だのと煽りをしなくていいんだよ。 文系の人って理系に対して何かコンプレックスみたいなものが有るのかな?
その理由が中学・高校時代の物理や化学、数学が苦手だったから、なら精神的に根深いなぁ。
可哀想に。 文系でも電子工作の趣味を持ってる人くらいいるだろ
今はネットに情報転がってるから割と簡単だしな
情報の無い時代は辛かったけど どこでもそうだけど、確かにおかしな人が住み着いてるみたいだしな
初心者はびびってしまうよね PIC12F683のAD変換について質問です。
AN1〜3端子を未接続状態で、AN0に0〜5V印加して順番にAD変換した場合、
どうも未接続端子の変換結果がAN0に釣られているように見受けられます。
この動作は正しい? 正しいと思います。
というか、未接続で使う事自身がいけないことなので、
何が起きても「正しいと思います」ということになるね。 >>114
未接続って浮いてるの?GND?
だったらなんでその端子も読んでるのか訳が分からないんだけど。
AN0に高周波に近い信号が乗ってきてたらアンテナ代わりになる可能性だってあるし、AN1〜3は繋いでないのに取り込む必要性を感じないんだけど? >>114
正しい動作だと思います。
A/Dコンバータは、いったん内部コンデンサに外部電圧を取り込んでから変換します。
AN0に電圧を与えて変換したあと、AN1に切り替えて変換するとき、本来ならAN1の入力で、内部コンデンサをチャージ
(または放電)するのですが、
AN1がオープンになっていると、この内部コンデンサに前の電圧が残っていまいます。そのうちこの電圧は内部で使われたり、
リーク電流でどこかに落ち着くはずですが。
同様に、AN1に実際に信号を接続する場合でも、繋いだ回路のインピーダンスが高い場合は、AN1の測定に
直前のA/D変換チャンネルの影響が残ることがあります。
>>116
読んでるのか訳がわからない、というのもどうかと。
次のようなケースも考えられます。
(1)未接続ピンがどうなるのか検証してみたいという、興味から。
(2)マイコン自体はAN0〜3で電圧を測れるように準備しておくものの、そのマイコンのユーザーが全てに接続するとは限らない。
2chのオシロで、CH1だけを使っている場合でもCH2をOFFにしない人もいますよね…。 >>117
>(1)未接続ピンがどうなるのか検証してみたいという、興味から。
>(2)マイコン自体はAN0〜3で電圧を測れるように準備しておくものの、そのマイコンのユーザーが全てに接続するとは限らない。
>2chのオシロで、CH1だけを使っている場合でもCH2をOFFにしない人もいますよね…。
前者は分からんでもないが、普通影響を及ぼさない様な計測器を作るでしょう?
横河とかがそういう計測器作ってたら総スカンだよ。
2ばんめもそう、安いマイコンだけの計測器ならあり得るけど、その時に使ってないピンの計測結果はこうでしたので……なんて説明し始めたら質問の荒らしだよ。
使ってない、繋いでないピンの数値に何を求めてるの?俺には全然わからないんだけど?そう言い出す根拠があるならちゃんと説明してくれる?
逆に正しい名目がないなら確保する理由も、無いよね?
最後も最近のカラーオシロでも無いと思うんだけど……だってどう説明するの?説明する必要ないでしょって取り直しを命じられると思うんだけど? 未使用のアナログ入力
Hi-ZならGNDと接続かな。
オシロ
いちいち画面から消すの面倒だから、1chだけ見るときは、
2chはプローブのGNDとクリップをショートするだけで消さない。
画面を記録に残して他人に見せるときでも消さない。 >安いマイコンだけの計測器ならあり得るけど
それでよろしいやん。
ってそういう可能性がわかっておられるなら、「訳がわからない」ってことはないですね。
これ、市販の測定器を作る話じゃないよね? >>118
やってみたら理解できない現象が現れたら、なぜなのか追求する
のは正しい姿勢だと思うけど。
やってみることすらいけないのかな?
この現象は入力がオープンだけでなく、信号源インピーダンスが
高い場合に入力を切り替えてからA/D変換を始める時間が足りてな
い場合に遭遇するので、原因を突き詰めておくのは充分意味があ
ると思う。原因は>>117のが書いているとおり。 Microchipから日本語のメールが届くとなんかドキドキする
これは…もしかして恋? PICのツール(Cコンパイラ、デバッガ)って無料なの?
レジスタが特殊すぎてコード効率悪そうなんだがそこんとこどうなの? 最適化されてない遅くてでかいコード吐くCコンパイラは無料
デバッガは別売りで値段なりの性能
効率は悪いけど動けばいいので無問題 >>124
大きいと言っても四桁番号以降のではそれほどでもないし、コードサイズに制限無いし。
取り合えず使ってみるには十分。 みなさまご教示ありがとうございます。
特に117様の回答はとても具体的で分かりやすかったです。
最初にもっと具体的に書けば良かったのですが、ソフトは
全AD端子を使う前提で書いていました。それをブレッドボード
で試すときに機材の都合で1chだけ繋いで動かしたら、何か
変に釣られているような挙動になってしまい、原因が分からず
質問しました。
コードはネットのほぼコピペだったのですが、マイコンの事も
もっと知らなきゃと、とても良い勉強になりました。 >>126
他のchのAD入力端子への信号は、低いインピーダンスで駆動された信号が来ていますか?
PIC内部にある、AD ch切替用のアナログスイッチが、次のchに切り替わった時、
PIC内部にある、AD値保持用のコンデンサが、選ばれた信号電圧に、サッと変化しないと、
前のchの電圧が残ります。
信号駆動のインピーダンスが高いと、
ch切替後の電圧変化に時間がかかり、まだ電圧変化中なのに、ADがサンプルしてしまいます。
信号駆動のインピーダンスが低いと、
ADサンプル以前に、電圧がコピー完了するので、正しいAD変換ができます。 入力インピーダンスと出力(ドライブ)インピーダンスの問題だね。
どんな回路でも(電源でも)ついて回る。 そうです。
直流っぽい信号なら、AD入力端子に、
0.1uFとかのコンデンサを置いて信号源インピーダンスを下げれば良いんですが。 >>131
サイズのわりに容量大きい奴は、電圧による容量変化大きいから波形が歪む。
あと、物理的な力での容量変化も大きいから、振動を拾い易い。 130じゃないけど、
結構振動とかを拾いやすく、容量が小刻みに変動するのでチャージされた電荷が逃げなければ電圧ノイズとなって観測された。
ノイズ取りのつもりで大容量を使ったら衝撃検出センサーをつけてしまった失敗談。
扱う周波数帯域で最適化すればMLCCで構わない場合もあるでしょう。 MLCCでも温度補償型のものならそれらの問題は避けられます。
といっても、0.01uFを超えるような温度補償型は特殊ですね。たぶん。
ただ、A/Dコンバータの入力静電容量って20pFぐらいですし
分解能が10ビットなら0.01uFでも十分かと。 >>134
>MLCCでも温度補償型のものならそれらの問題は避けられます。
温度補償型だと、機械振動が電圧に反映することもないの? >>134
1uFも10uFも温度保証なのは普通にあるんじゃね?
振動はMLCCの性格上避けられないんじゃね。アルミ電解と同じ。 あれ。書いたつもりが書けてない。どこかに誤爆したかな…
↓同じような内容でどこかに書いたかもしれません。
>>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
動作温度が「保証」されていることと、セラミックコンデンサの「温度補償用」を混同されてませんか? ×高誘電率系には圧電高価
○高誘電率系には圧電効果 ADCに速度を要求しないなら、測定結果にIIRフィルタかませばいいのでは?
俺はそうしてる。 >>139
振動に起因するノイズがA/Dコンバータに入ってきているケースで、
A/Dコンバータでのサンプリングレートの半分より速い振動だと、デジタルフィルタでは取り切れないことがあります。
今の話は、A/Dコンバータの直前のコンデンサの話だったと思います。
たとえば、
図の黒が本来の電圧。
振動に起因するノイズが重畳された様子が赤。
たまたま青のポイントでサンプリングしていたら、A/Dコンバータ以降では、緑の電圧にしか見えません。
こんなふうにならないように、通常はサンプリングレートの半分以下の周波数だけがA/Dコンバータに来るように
アンチエイリアスフィルタを入れますが、そのあとのコンデンサで、もしノイズが発生していたらダメですね。
>>138
誘電体には圧電効果が有る。
大きいか小さいかだけ。 >大きいか小さいかだけ。
そうなんですよ。
なので>>135のような質問は答え方が難しいですね。 A/Dコンバータの入力に容量の大きなコンデンサを入れるときは
直流的な入力を想定しているのだろうから波形が歪むというのは
違う気がするな。 波形が歪む話ではないような。
たとえ直流的なものでも、乗っかってくるときはあるわけだし。 >>143
振動を拾うから、用途によっては直流でも影響有る。
そう言う場合は、小さめのを複数使って、実装方向かえたり、裏に置いたり。 理由が分かってやってる人にはリクツの話でも、わからずにやってる人にはオカルトになりますね。 面実装のセラミックコンデンサーで、
マルチレイヤーでは無いために振動の影響が出にくい物って、
何がありますか?
CHは該当するようですが、他には、という質問です 「小さめ」がパッケージの大きさのことであるなら、パッケージが小さい方が機会的歪を受けにくい。
「小さめ」が静電容量なら、小さめなら温度補償型が入手可能な場合もある。
基板の周辺の構造によって、コンデンサの取り付け方向で歪を受けやすさは変わる。
裏に置く、は俺には経験がないな。 >>148
面実装のセラミックコンデンサで積層ではないものってあるのかな。って気がします。
割と容量が少なくて結果的に2層になっているものはあるのかもしれませんが(1pFとか)
それと、機械的歪で大きいノイズが出るのは積層だから悪いのではなくて、誘電体の性質によるものなので、
積層でないことにこだわる意味は薄いでしょう。 >>150
積層でないのはあるよ。積層は高周波のカップリングやデカップリングには何かと嫌がられるから。
あとACの絶縁部分や高耐圧のものは積層はショートが嫌な人も多いのであるね。
1000pFくらいまではあったと思う。昔はもっと大きいのもあったんだけどね >>151
面実装で積層でないのがありますか。
積層でないことがわかるような品種になってますでしょうか。
積層セラミックはパスコンに多用してますが、短絡故障はコワイですね。 >>153
>短絡故障はコワイですね。
体験するとよく分かりますよね。上流のDC/DCコンバータを焼損させたことがあります。
こんなことになるなら、セラミック使いたくないと思うほど。
実装済みの基板でもたわませないように、扱いに注意してる。 >>149
例えば、容量半分のを二個つかって、裏表に置けば、ある程度は打ち消される。 >>155
それ最悪。それ一番最悪だから。最悪。一番やっちゃいけないパターン
たとえば容量誤差が20%だったとするよね?
1個だけ使う分には誤差20%だけど、2個使うと容量誤差40%になる
使った2個の容量誤差が互いに最悪値だとすると1個だけで実装した場合の
倍の誤差が発生する事になる 20%誤差を6個並列に実装すると、最悪20%のインダクタになるんだぜ? >>156
>1個だけ使う分には誤差20%だけど、2個使うと容量誤差40%になる
なにゆえ?
これはコンデンサの並列接続の話だよね? 誤差1%の抵抗を使うとして、10倍の抵抗を10個並列にすれば誤差は1%より小さくなる。
と言っていた先輩がいたよ。確かにそうではあるのだけど、リール1本、割と偏った誤差のときもあった。
ローノイズアンプを2個並列にすることで、よりローノイズになる、というのはまあ合ってるけど。 >>156
もし容量誤差が最悪40%と言う場合、、
分母は、並列にする前の容量。
しかし、並列にすると容量は倍になるので、
実際の相対誤差は最悪でも20%。
こんな事間違える奴がいるんだ。 そんなくだらねえことしてないで実測すればいい。
10本並べるより楽だろ。 で、肝心の>>155
>例えば、容量半分のを二個つかって、裏表に置けば、ある程度は打ち消される。
ははあ。なるほど、ですね。 消費税8%のものを10個まとめて買っちゃいけません
消費税80%取られますよ、みたいな感じ? ■ このスレッドは過去ログ倉庫に格納されています