初めてのPIC 0x0D
レス数が1000を超えています。これ以上書き込みはできません。
_ _ 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 オシロ厨は本気でストレージオシロを薦めてるんだろうか。
それともただの馬鹿なんだろうか。
数百円で買える中華ロジックアナライザーで十分。
オシロで信号状態分析するような段階じゃ決してなさそうだし、
そんなことが必要になることは無い。 >>866
中華の安ロジックアナライザがこの手のボウヤに使えると思うのか?
あの手のは、ちゃんとした測定器を使える人が使うもの。 >>862
マウスを動かすしか思い付かなかった。
あとはキーボードでCapsLockを押すとか。
俺の土曜を返せと言いたい気分。 >>867
俺でも使えるから使えるよ。
無駄にハードル上げんでもいい。
規定の初期化コードがちゃんと出てるか程度なら猿でも確認できる。
そして、初心者が一番つまづくのはその段階で、あとは割とすんなり行くもの。
ただの経験則だけどね。
>>868
アナログが1chついてる4000円くらいの中華ロジアナ、
もう何年も重宝に使ってる。 SPIの初期化で、CMD0を送った後に0x00のレスポンスが返ってくるのは何故なんでしょうか?
0x01が返ってくるはずなのに。 あ、SDカードを外しても0x00が返ってきたので、そもそもCMD0が送れていないみたいです。
CS、DIをHIGH
↓
for(i=0;i<80;i++){
SPI1_Exchange8bit(0x10);
}
↓
CSをLOWに
↓
SPI1_Exchange8bit(0x40);SPI1_Exchange8bit(0x00);SPI1_Exchange8bit(0x00);SPI1_Exchange8bit(0x00);SPI1_Exchange8bit(0x00);SPI1_Exchange8bit(0x95);
これではだめなんでしょうか? >>872
そもそも、SPIに割り当てたピンに正しくHighとLowが出てるのか。
それをどうやって確認してます? >>870
そのロジアナはスタンドアローンですか? >>872
なんで言われた通り、FFを10回書かないの?
CS = HIGH;
for(i=0;i<10;i++){
SPI1_Exchange8bit(0xFF);
}
CS = LOW;
SPI1_Exchange8bit(0x40);
SPI1_Exchange8bit(0x00);
SPI1_Exchange8bit(0x00);
SPI1_Exchange8bit(0x00);
SPI1_Exchange8bit(0x00);
SPI1_Exchange8bit(0x95);
while (SPI1_Exchange8bit(0xFF) != 0x01);
CS = HIGH;
... そもそもレスポンスの受け取り方はこれで合っているのでしょうか?
uint8_t res;
res = SPI1BUF;
if(res == 0x01){
... 言われた通りにしないので、
もう書かないことにする >>880
あ、報告していませんでいたが、その部分は言われた通りに書き直しましたよ? >>881
こいつ、最近ここで見る阿呆の匂いがぷんぷんする わざわざ他のスレを汚すほどのことは無い。
>>876を無視すりゃいいだけ。 Bluetoothモジュールの使い方で教えてください。
RS232Cの配線を無線化できると思い、Bluetoothモジュールを買い、TXD,RXDをPCのターミナルに接続しました。
ここでATコマンドというのが出てきました。ボーレートやその他の設定をするようです。
確かにターミナルからAT+xxxxと入力するとBluetoothモジュールから OK と返事がありました。
しかし、実際にやりたいのは、0x00〜0xffまでを送受信することです。
AT+xxxのモード?か抜けないと、0x00〜0xffまでの送受信状態にならないと思うのですが、
ATコマンドモードから抜ける方法(ATコマンド?)があるのでしょうか?
また、モジュールの電源onのたびに、AT+xxxを実行した後、0x00〜0xffまでを送受信のモードに移ることまでを
マイコンが毎回行わないといけないのでしょうか?
期待するところは、電源onしたらモジュール自身の設定値を呼び出して自動的に0x00〜0xffまでを送受信するモードに
入って欲しいです。 どのメーカのどういう型番のモジュールなのかを書くか、エスパーを召還してください RN42だろうな。
俺も使おう思っていたところだ。 すみません。
メーカーわからないです。
型番は、HC_06と言う物です。
アイテンドウで買いました。 $$$でコマンドモードに入って
---で抜けるんとちゃうの? データシート見たらこう書いてあるからハードで制御せなあかんのか
works in Data Mode when the CMD pin (pin 34) is pulled to logic 0 level or is left unconnected. ATDT電話番号)で、トーン信号で相手に電話を掛ける、だったっけか? >>885
初期化コマンドくらい送れよ。
BTだったらペアリングもしないといけないんだぜ。 HC-06なら俺もAitendoで買ってPICで制御する倒立振子に載せて使った。
PCからはFT232つないだ時みたいにCOMポートとして見えて、TERATERMから送受信できた。 ペアリングが済めば普通にCOMポートに見えるし、Androidからも送受信できた。 >>892
コマンドでできることがハードでもできるってことだろ
そのままではRS232ケーブルの代わりのようには(ブラックボックス的には)
使えないと思う
どうしても使いたいならマイコン一段咬ませて初期化やらせてそのあとリレーする
HC-06 Bluetooth to Serial module datasheet
Guangzhou HC Information Technology
データシートよく読め BLE内蔵PICってありそうで無いんだな
市場はCortexばかりで味気ない BLEじゃないけどRF関連搭載のrfPIC12F675Fがあるね 普通のPICでソフトでRF出せる。ワンチップAMラジオICで受信も出来た。 >>901
ARMは味気なくてMIPSは味がある?
意味わからん
RL78, RX, SH, R8C, H8, MSP430, C2000, C6000, AVR, STM8, ...
独自アーキテクチャもまだまだたくさんあるよ インストラクションでCPUの能力を評価していいのかな? CISC代表のx86の命令が貧弱?
なかなかおもしろい事を言うねえwww >>904
周波数決めてアンテナ付ければ出るでしょ
AMラジオってある意味でノイズを音に変えてる様なもんじゃない? 出るというか
矩形波の高調波じゃね?
AM変調はどうやってかけるんだw さすがに8ビットPICで演算で振幅変調は難しそうだけど、
こんな回路でできないだろうか。
℃素人で恐縮ですが質問させてください。Hi-Tech C の最後のころのシンタクスと
現在の xc8 のバージョンにおいて、コンフィギュレーションビッツに関する表現を
除くとして、共通性・互換性は高いのでしょうか。8ビットPICを前提としています。 >>915
自分の場合はとくに変更なしにどちのコンパイラでも使えています。
(ただしコンフィギュレーションと初期化ルーチン以外ですが)
特殊な書き方さえしなければ
CCS-C,AVR,8051でもメインルーチンは同一でも動作可能です
(ただし、AVRはヘッダーファイルを一部変更すればですが)
機能の設定をサブルーチン化すればほとんど流用可能です
それがC言語の特徴だと言えます。
あとは、自分がどうしたいかでどのようにすれば可能かはおのずと見えてきます
CCS-CではSFRの設定は自分ですべて用意していますし
AVRではポート制御はPICと同様にできるように定義しています
8051ではほとんど機能がないのですべて自分で記述すれば何でもできます
しかも、この変更をしても出力されるコードには変化はありません。 >>915
C言語自体は問題ないが、
マクロやライブラリの互換性はあまりないから、
ネットや本からコピペ下のを移植するのは少々大変かもしれない >>916
違うところをラッピングすれば同じように使える
というまったく意味のない情報
頭悪いの? MCCでTMR0使ってみて、はまったわ。
16ビットモードにしたら指定したタイミングにならず、上位が常に0だったわ。最適化でアクセス順番間違っている感じ。
プリスケーラで落として8ビットモードにしたわ。 >>916
丁寧に解説いただきありがとうございます。自分なりのレベルで、曖昧ですが理解に
達したと考えます。これからその曖昧さをより排除すべく努めたいと思います。
「サブルーチン化すればほとんど流用可能」の「ほとんど」の部分に、今後の修行の
成果が表れるのだろうと理解はしているつもりです。
ところで「SFRの設定」とは、各PIC個別に用意されているテキストで構成された
ヘッダファイルの中身という意味なんでしょうか。再度質問して申し訳ありません。
CCS-Cコンパイラ、ライブラリが豊富とか。初心者は購入すべきなんでしょうかね。
>>917
現在本からの写経の修行に励んでいるところでして。コピペは極力いたしませんが、
もうちょっと勉強してから細かいところは質問させていただきたいと考えております。
現在出版されている書籍は、内容が少々古いものが多いようでして、このような疑問を
持った次第です。ありがとうございました。 >>919
MCCはただのサンプルコード
何の保証もない >>920
CCSのライブラリは便利だけどブラックボックスで発展性がないからお勧めしないな >>920
SFR
特別な機能のレジスタ
ペリフェラルの設定などが出来るレジスタ
多くのマイコンではアドレス空間に割り当てられていて、
メモリアクセスのように読み書き出来るが
通常のメモリとは異なり、
読んだだけて機能が動作したりする物もある
このレジスタにアクセスしやすくするためのヘッダファイルがマイコンメーカーやコンパイラメーカーから用意されている事が多い
このレジスタのアクセスに対してコンパイラが最適化しないように
通常はvolatile宣言されている >>922
なるほど。ライブラリまでフルスクラッチというわけにはいきませんが、
PICの面白さとはつまるところ、そういうものかと思います。
むろん私にはそこまで到達する力量はありません。
>>923
SFRとヘッダファイルの関係は、おおむねわかっているつもりでしたが、
読みにいっただけで動作するしくみについては、全く知りませんでした。
皆さま解説ありがとうございました。 8bitPIC使いの(いつまで経ってもAVRをディスコンにしない)マイクロチップテクノロジへの
苛立ちが感じられる今日この頃・・・
16bitと32bitのPIC使いは高みの見物 (本音、欲しかったのはSAMだったとしても)
責任ある会社のあるべき姿だとしか思いませんが? エラッタを放置しているような会社に何を期待しているんだ。 >>925
それより、買われちまったAVR使いのあんたの苛立ちが依然継続中なことの方が不憫 Coupon Code TP1747 Expires : 28-Feb-2018
USD130の50%offか
びみょー
いまはがしがし使うならARMだし
ARMのSWDツール数百円だし >>922
ブラックボックスかもしれないけど。
その方が多くのチップにも移植可能なコードを書くことが可能で
実際に商品化しようとする場合には有効です。
ソフトの開発を行う場合はチップごとに設定を変更することなく
ほぼ、同一のソフトでより多くのチップに対応することが可能で
開発時間の短縮になります。
趣味で、時間はいくらでもあるので一から作りたいと思う人には
向いていません。 AVR ICE自体が開発に必要不可欠ではなくなっているのが
一番の問題で、以前からある同様のToolはフル機能でも
もっと安く購入可能で、自作すら可能です。
(今は作るより買った方が当然安い)
チップメーカーは開発ツールを高く売るより作れるやつは
自分で作れ〜〜〜と回路とソフトを公開してより開発しやすい
環境を作るべきだと思う。
(Made in chainaが頑張ってくれればその方が楽だが!!)
チップメーカーは本業のマイコンチップで儲ければいいだけで
それ以外は販売促進のためのToolだと思えるような経営者でないと
だめだと思うよ!!!!!!!!!!!!! 3桁の7セグLEDを使ってるんだけど、数字が1の時は明るく光る
これなんか気になるんだけど、なんとかならないもんだろうか
市販品みると1でも8でも同じ明るさなんだよね >>935
ドライブ能力が足りないとか、電流制限がコモン側にされちゃってるかどっちかではなかろうか。
後者は推測としても失礼な気がする、ごめん。 >後者は推測としても失礼な気がする、ごめん。
実にいやらしい書き様だね、品性のなせる業かな? 人を蔑むことでしか自分の価値を見出せない可哀想な人が多いな >>935
>なんとかならないもんだろうか
問題が発生している回路を示さないと憶測でしか答えられない。
悪者みたいに言われている>>936が気の毒。 ドライブ能力というか、電圧降下が起きてるんだろうから
配線短く太くするとか、ドライバのインピーダンスを下げるのが対策
んなの回路図など見なくても判る罠
LEDがICに直付けなら止めてドライバTr入れるんだ
さんざん悩んどいて単なる電池の寿命とかは無しヨ 配線を太くすることで有意に変化するとしたら、どんな線なんだろな。 >>935です
皆さんのなかにも3桁7セグLEDを使ったことあるひといるとおもうんですけど
1と8では明るさが違うなーって経験したことあるひといませんか
ちなみに私の場合はカソード・コモンタイプをつかっていて、
アノードはPICに直接つながってます
電源は5V1AのACアダプター使ってるので十分電気はまわってるはず PICの絶対定格超えてるんじゃね
1ポートあたり25mA以下だけど
デバイストータルで100mA以下だし
素直にPNP-Trでスイッチした方が >>944
あなたはあなたの最初の質問に対するレスを全部読んでその意味を考えたの? >>944
>ちなみに私の場合はカソード・コモンタイプをつかっていて、
>アノードはPICに直接つながってます
電流制限抵抗を1顧問側に入れてるんでしょ?だから、点灯セグメントが少なくなると、
1セグメント当たりの電流が増えるんだよ。 秋月の文字が縦長の3桁のLED?
1と8同じ明るさでつくよ。 >>941
いやまあ>>936を非難している行為がクズなんですけどね… ホモの受け、攻めの原理を考えると全ての半導体の動作原理は説明できる
と理工系の姪が言っておりました >>944
LEDが飽和してない可能性があるから、ドライブしているPICに15Vくらいかければよい >>952
どう育ったらそれを言えるようになるんだい? アホvs嘘つき
書く阿呆にみる阿呆 = 痰壺掲示板 質問が>>935
さんざん回答レスもらった挙句の返答が>>944
一生成長が望めないタイプ どこの世界にもどうしようもない○○っているんだよ
いまだにオレオレ詐欺とかに引っかかる奴みたいにな
ほっとけ >>944
アプローチはいろいろあるけど
同時に1セグしか光らないようにして
順番に1個ずつ点灯すれば明るさは
同じように見えるのではないかな
初心者には基本冷たいスレだが >>960
ちらつかずにできるかねえ。
そのへんのオーダーがピンと来ないわ。 ダイナミック点灯って知ってるか?
知ってればそんなマヌケな事書かないだろうけど 知ってる、永井豪とダイナミック点灯だよな
なついな >>962
ちらつき出すのは60Hz程度らしいので、
7セグを個別にダイナミック点灯させたとしても十分余裕じゃないかな。
100Hzで4桁としてもたかだか3kHzで大丈夫。 カソード・コモンでアノードをPICに直接つなげてる、
ということは電流制限抵抗がカソードに1本だけか。
その回路のまま1も8も同じ明るさに見えるようにする
には、点灯するLEDのセグメント数を数えて、セグメント
数が少ないときはその分点灯時間を短くすればよい。 >>966
これ、いいかも?
でも、1セグ点灯時にピンに流れる電流大丈夫かな
いや、そもそも、全セグメント時に同じ明るさに光るかな? 昔に比べれば7セグのLEDも高輝度になってるのだし、>>965-966の方法もありでしょね。
点灯セグメント数はテーブルで引けるし、俺だったら>>966方式にトライするかな。 >>968
順番に高速で1セグメントづつ点灯すれば、原理上、輝度は均等になる。 >>965
視界内で動くなら500〜1kHzは欲しい。 輝度均等の観点では当然 >>965 の勝ち
ちらつきを減らす観点なら >>966 がやや有利
最小の「1」でも2セグメント同時点灯できるからな >>972
昔からそう言われてるけど、100均製品なんて殆ど LED パラだよ LCDモジュールのバックライトも個別抵抗なしのパラレルだったり。
人間の目にはそれぐらいで発生する電流のばらつきはわからんってことですかね。 あ、でも気になる場合は、>>965にメリットありですね。 PICについて質問さしてください
多ピンPICだとVCCやVSSのピンが複数ある多ピンPICがあったりするのですが、
そういうPICの場合はパスキャパ(パスキャパシ)は各ピンに必要なんでしょうか?
それとも代表してどれか一つのピンにつけておけばいいんでしょうか? >>978-979
ありがとうございます
ついでにもう一つ質問さしてください
例えばVSSやVDDが1組しかないような少ピンPICにおいてパスキャパシに0.1マイクロFの
積セラを使ったとします。(というかたいてい使っています)
VSSやVDDが2組ある場合は使うパスキャパシは0.05マイクロF、4組ある場合は0.025マイクロF
という感じで合計が0.1マイクロになるように容量を微調整すればいいんでしょうか? パスコンの容量なんかどーでもいい
クロック周波数付近でインピーダンスが下がるコンデンサを各VDD-VSS間に付ければよいさ まあ、たいがいの場合パスコンなしでも動作する。
製品の場合パスコンを付けないで誤動作して問題になった場合、
上司に怒られるので、怒られないように付けとくようなもんだ。 >>980
容量はあまり関係無くて、インピーダンスが重要。 >>980
VDDのピンの「箇所の数」だけ、コンデンサを付けてください。
例えば、
1 VDD
2 VDD
3 GND
4 GND
5
6
7
8
9 VDD
10 GND
11
12
13
14
15
という場合は、1〜4で0.1uFコンデンサ1個、9と10で0.1uFコンデンサ1個という感じです。
容量値はさほど重要では無くて、
PICの足から最短距離で接続することが重要です。
最短距離で接続すればするほど、回路の性能が良くなります。
あと、変な言い方はやめましょう。
・バイパスコンデンサ → パスコン と言いましょう。
・質問さしてください → 質問させてください と言いましょう
パスキャパ(パスキャパシ) などは、
パスコンという呼び方を知っていながら、わざとそう書き込んで
話題を作っているように感じます。 >>980
全部0.1uFで大丈夫だよ
あと>984や>985はいつもの子なので無視推奨 心配なら全部に付けとけ
大した手間じゃなかろう
量産ならロットごとに様子見ながら減らしたりする
結局全部とっても兵器だったりする パスコンは
ノイズ除去が目的なら0.01μF
電源の電圧変動防止目的なら0.1μF
両方防止したいなら並列に付ければいいよ。
昔は、比較的消費電力が大きいICがほとんどだったので
影響が大きかったけれど
現在は低消費電力のものが主流なのでそれほど神経質にならなくても
いいと思うよ
ただし、モーターやリレーなどを使用する場合は、しっかりやらないと
誤動作の原因になる可能性もあります。 ここのスレにも
103程度のパスコンが
何箇所か必要なところがあるな このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 110日 14時間 3分 37秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。