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
0002774ワット発電中さん
垢版 |
2017/10/25(水) 21:45:11.65ID:TWJQNA16
)((()())())()))(())()(((()())))()())())))()(((((())(()(())))(()((((()())(())
((()(()))())))()(((()))(((())))(()())()))())((((((()()((())))(()))())()))(((
()((()()((((())()()(()()))()))())()))))()(()(((())(()()(()(((()())()))()()))
(()))(((())()(()))))(())))(()()(())()))())())(((())()()((()()())()(()()()(((
)((((((()))()(((()())(((((((()())(()))))()))((()((()))()))()()))(((())))))))
((((()()))()())((((())))((()))()()(())))(((()((())()((()())((()))()())))))()
))((((()()))((()()))(()())(((())())))()))((((())())(()((())()(())(())))(()()
()()()(()))))))()()())(()(((((()))())((((()(())(()()))))(()()((()((()(()))))
()()(()()()(()((()(((((())(())()()()))()()((()(()((())())))()))))))()()()())
))()()))((()()())())()())(((()())))(()((((())))))()())))(()((()((()))((()(((
(()))()(()()(()((()(())(()((()()((((()())))))()()()))()(()))()()())((()())))
)((()))()((()()))(()(())()((())((()())(((()())))))(((())))()(())()))((()()()
())))((((())))()((()((((((((()())))((())(())()(()())(())()(((()))))))))(()))
))(())((()((()())())()))(()((()())(())()())())((()()(())))(()(()))))()(()(((
(()()((()))))()()()))))))(()(())()()()()()))(((())))(()((((()))())()()((((((
)))())()(((()))(())((()())(((((((()()))))()))()(((())(((())()(()())(()))))()
)(()))()(((((()))))(((()())((()())())(()()((())))(()(())(()(()())((())()))))
)(())()))))((()())(()(())(())(()(((()(()())()))))()()((())))()(((()()))(()((
)()()))))())))(()(())))(())))(()(()())))())((()))((((()(()()(()(()((()(((()(
())(()))))()))()(()))(())((((()(()())()()()(()))(()()()()))((())(((())(())((
)(())()(()(()())))(((((()))())))()()()))))((())())))(()((((()))(())((((())((
)())))((()))()()))))))(()))(()())()()))()())((())((()()(((())()(()((((((()((
()))(((((())))))())(((()()())((()((())(())()(()(((()((())))())()(()))))))(()
())(()()())))))(()())(()()))(()((())(()))()(()(()(()((((()))()())))))((((()(
)()))()((((()(()(())(())))(()((()()))()())()(()()()())()(()(()()()))((()))()
)()()(((())()((())()(()((())))))())))))())()((()))())())(((((()))()(()((()((
))()))(((()(()(()())(())))(())(()())())))()()()(()))()())())(()()()(((()((((
)())))()((()))))))()((()))(()))()))()())()()((()(((()((()()()((((()(()()))((
())()())()())(())()(((((()(()))))(()))(((()))))))((()((((())))()())(())((()(
)))())(()(())()))(((())))()())(()(())(()())()))(((())((((()()))((()())(())((
())(()()()()()))(()((())))(())(()()())(()(())((()()()))()((((())()))))()()((
))())))())()()((())((((((())(()))(())()((()))))()()(()(((()(()))()(()))(())(
(()(()))(()())()(((()()())(()()())))()(()()(())(()()()()())()()(()(())()))()
(((()((())((((())()()(((())()(()())))(()))))(()))))(())())(((()()((())()))))
)(()((()))(()(()))))(())))))()))(()()))((((()()))(()(()))((())))((((())(((((
(()(((()))((()))((()())((())())()))()()()))())(())())((())))((()()(()(()))((
)()((()())()((()()()(((()((())(()))()))()))))))(())()((()(((((()))()())))()(
)()()))()(()()((((()((()(((((()())()()()((()))))())))))(((())(((()))())())))
)()()()())))())(((()))()))((((()))(())((((()()))()()))((()(((()))))())()((((
(((()()))())))))()((((((()))))(())()))(()))(())))))())(((()((()(()((((()))((
(())))((((()())(((()()((()(())())()()))()(())())))()))(()(((((()((())())))))
())(())())))))()))(()()()(((())((()(())(()()()))((()())((()))))((((())()()((
)))(())))(()(()))(((()((())(((()))())()()((()())))())))()(())))(()()((((()((
())))))))()(((((()()((())))((((()(()())(()))))()()(()(())(()))(())()(()(())(
)()(()))())()))(())())()(())())(((())(()(((())))((()))())(()((()((()(()(()))
)()))))(()(((())))()())((()((()(()(()()()))))()())(()())))()(()))((())((((((
)))()()(()()((((())(((((())))))(()))))(()())))(()))()()(()((())(()))()(((()(
(())((()((())())))()())(()()()()))()(()()())((()(()()()))))(())))(()(((()()(
((())()())())(()()((((())))(()((()(())(((((()())))(())())()((())(()))())))))
)(()())(()()()()(())))))((()))))))((()(((()()((((()))())))((((()())(()())()(
00031
垢版 |
2017/10/25(水) 22:57:12.47ID:2IT5BDwt
ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/987 です
Sleepモードからの割り込みの件、ご指導ありがとうございました
お礼が言えなかったのでスレ立てました
その際テンプレ候補にあった文言を組み込みました
次スレを立てる人は、PIC質問スレが無くなってしばらく経つので、テンプレ修正願います

毎度出てくる>>2はなんでしょうね  意味知ってる人がいたら教えてください
00053
垢版 |
2017/10/26(木) 17:55:32.82ID:AN341dgJ
>>4
まだ机の上が汚くて工作取り組んでない
3V-SW-IOpin-10k-GNDにするつもり
00093
垢版 |
2017/10/26(木) 23:02:56.43ID:AN341dgJ
>>6-8
プルアップなしじゃいけないのでしょうか?
チャタリングはWakeUp後に50msくらいウェイトかましてごまかそうと
0010774ワット発電中さん
垢版 |
2017/10/27(金) 07:44:44.70ID:xuDWWDnx
WeakPullUpは抵抗ではなくてJFETの定電流源っぽいから
上手く使えばPullUp以外の用途に使えそう
0011774ワット発電中さん
垢版 |
2017/10/27(金) 07:56:31.91ID:jRdYfdF8
>>5の回路であれば、内蔵プルアップは要らないのではないの?
(内蔵プルアップが外せないポートってあったっけ)

>>9
チャタリングの除去とプルアップは関係ないのでは。

>>10
昔のマイコンに擬似入出力ポートっていうのがあって、プルアップ+オープンドレインでした。
プルアップをON/OFFできるなら、それだけでも出力ポートには使えますね。
00126
垢版 |
2017/10/27(金) 08:28:19.09ID:1KOV3oDg
>>11
その図の回路で内部プルアップ無しなら問題ないね 。
0013774ワット発電中さん
垢版 |
2017/10/30(月) 02:38:11.57ID:ACLS4emZ
内蔵プルアップがあっても、外部で強烈にプルダウンすれば良いと思う。
内蔵プルアップ 50kΩ程度、外部で5kΩでぷるダウンすれば、Low=0.5Vくらいになり、
ViLを守れると思う。
0014774ワット発電中さん
垢版 |
2017/11/01(水) 22:51:26.06ID:qRPCpWWk
12F1822を持ってる人、ちょっと確かめてもらえませんか?

while(1){
RA4=1;
__delay_ms(500);
RA4=0;
__delay_ms(500);
}
これはOKですけど

while(1){
RA4=1;
RA5=1;
__delay_ms(500);
RA4=0;
RA5=0;
__delay_ms(500);
}
こうするとRA4が点滅しなくなるんですけど、どうゆうことですか?
なんかの間違い?
0015774ワット発電中さん
垢版 |
2017/11/01(水) 23:30:09.85ID:kRxJ5L75
こりゃまた教科書に出てきそうな質問だな
PIC PORT LAT でググってみるとよろし
0016774ワット発電中さん
垢版 |
2017/11/02(木) 00:14:59.51ID:rLqVqS9i
ありがとうございます

LATA4=1;
LATA5=1;
__delay_ms(500);
LATA4=0;
LATA5=0;
__delay_ms(500);

なるほど、こうするといまくいきました
理由が理解不能だけど
0018774ワット発電中さん
垢版 |
2017/11/02(木) 06:57:36.49ID:gal6ax9f
流石にそれはデータシートに図で描いてあるぞ。
英語読まなくてもそれぐらい見ようよ。
0019774ワット発電中さん
垢版 |
2017/11/02(木) 07:01:31.57ID:WptwT8Gn
RAx=0;  先に現在のポート状態を読み込み、そこに変更を加えて書き戻す
LATAx=0; 強制的にポートへ書き出す。「ラッチを掛ける」と覚えればおk
0020774ワット発電中さん
垢版 |
2017/11/02(木) 07:41:54.22ID:+msLy4qE
RA= がダメで、LATで動く理由を教えてください。
なぜ最初のRA= が動かずに、2行目が動くのかわかりません
0021774ワット発電中さん
垢版 |
2017/11/02(木) 08:04:33.99ID:AAOQPedr
知ってるくせに
0022774ワット発電中さん
垢版 |
2017/11/03(金) 14:28:16.19ID:Bci/3ATC
XC8で質問さしてください

アンサインドのチャーで変数を宣言していて値も入っています
ここに、さらに別のアンサインドのチャーの変数を加算した時にオバフ(オバフロ)
やアンフ(アンフロ)が起きないようにしたいんですが、愚直に

IF ((ORG+DST>127)|(ORG+DST<−127)) THEN

って書いてしまうと一時的に16ビット演算になってしまわないでしょうか?
8ビットPICで16ビット演算は結構重い処理だと教科書で呼んだ気がするのですが
なんか小粋なテクニでオバフやアンフを計算前に知る事はできるでしょうか?
0023774ワット発電中さん
垢版 |
2017/11/03(金) 16:13:22.96ID:d+4eBQxG
ネタ?
0025774ワット発電中さん
垢版 |
2017/11/03(金) 16:23:39.90ID:Bci/3ATC
すいません、今後は馬鹿は無視しますが

>>24
>STATUS,Cを見れば良い」では?

私は「計算前に知る事はできるでしょうか? 」を書きました
0027774ワット発電中さん
垢版 |
2017/11/03(金) 18:09:32.84ID:WwwtyIoJ
>>22

「計算前に知る」手間をかける必要がわからない
判定後okなら改めて計算するの?
okならその値を使うというなら計算後に判定していることになるけど?
0028774ワット発電中さん
垢版 |
2017/11/03(金) 21:15:49.98ID:Bci/3ATC
>>26
すいません、アンサインド チャーじゃなくてサインド チャーの間違いでした
0029774ワット発電中さん
垢版 |
2017/11/03(金) 22:33:44.45ID:f6/4fy3z
picに外付けハードでコンパレータでも付けたら、計算前に判断出来るんちゃう?
0030774ワット発電中さん
垢版 |
2017/11/03(金) 23:01:51.81ID:0p4UaZWH
一般的な知識で適当に書くけど
8bitならsigned intの範囲は-128から127じゃないのか?
まあ単純な事だが
次の疑問は、例えばorg==127、dst==2の時何が起こるかなんだが
8bitならorg+dat=127+2=-127になるんじゃないかと思うんだが
つまり8bitで127より一つ大きい整数は-128でその次が-127
2の補数表現の基礎だけど
だから16bit演算が起こらないと望むようなチェックは出来ないかと
0031774ワット発電中さん
垢版 |
2017/11/03(金) 23:13:29.14ID:4a3VT7kn
>>22
なんか難しく考えすぎてるね

unsigned char a, b;

とあって a+b がunsigned charの範囲を超えるかどうかは

unsigned char c = 127 - a;
if (b > c) { // overflow }

これだけのことだよ。これなら判定の過程においても8bit以上の演算が出てくることはない
0032774ワット発電中さん
垢版 |
2017/11/04(土) 11:55:09.87ID:XqIe//5m
>>31
いいのかな…

a が -1, b が 5のケースだと、a + b = 4 だからオーバーフローしない。

c = 127 - a = 128 → -128

b > c は真になるから、判定はオーバーフロー。
0034774ワット発電中さん
垢版 |
2017/11/04(土) 14:58:54.93ID:XqIe//5m
>>33
>>28
>すいません、アンサインド チャーじゃなくてサインド チャーの間違いでした
0035774ワット発電中さん
垢版 |
2017/11/04(土) 23:56:07.23ID:SUqQxExd
先日、12F675を久々書き込みしようとしたらできませんでした。
古いPICは書き込みできないようになってるんでしょうか?
0036774ワット発電中さん
垢版 |
2017/11/05(日) 00:29:01.89ID:LHBEqeiS
>>35
PICKIT3?
0037774ワット発電中さん
垢版 |
2017/11/05(日) 00:29:37.30ID:LHBEqeiS
void PIC_RESET(void) {
SYSKEY = 0x00000000; //write invalid key to force lock
SYSKEY = 0xAA996655; //write key1 to SYSKEY
SYSKEY = 0x556699AA; //write key2 to SYSKEY
RSWRSTbits.SWRST = 1;
volatile unsigned char dummy;
dummy = RSWRST;

while (1);
}

リセット関数


ソフトでリセットできるんやね
0038774ワット発電中さん
垢版 |
2017/11/05(日) 01:09:44.82ID:lNqFo5z8
>>35
12F675で検索すると、書き込めないってのいっぱい出てくるけど、そのどれかじゃないの
0039774ワット発電中さん
垢版 |
2017/11/05(日) 02:11:14.56ID:Dm5rbrwt
よく考えたらWDTを有効にした状態でwhile(1)で無限ループを回さなくても
PIC18にはそもそもRESET命令がある事に今気が付いた
0041774ワット発電中さん
垢版 |
2017/11/07(火) 04:41:36.57ID:LNyCW54s
>>19
しったか乙
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なんて早く捨ててしまえ
無駄な労力をかけたいマゾと、問題が理解できないアホ専用だ
■ このスレッドは過去ログ倉庫に格納されています

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