PIC12F629のMCLRピンが出力に? | リレー制御中のトラブル解決

このQ&Aのポイント
  • PIC12F629のMCLRピンが出力になる原因として、リレーのノイズにより入力専用のMCLRピンが出力になり、大電流が流れ込んだ可能性が考えられます。
  • この問題は、MCLRピンから抵抗1KΩを経て+5Vに接続することで解決されました。
  • リレー制御中にCPUに約0.8Aの電流が流れ、CPUが発熱するトラブルが発生しました。
回答を見る
  • ベストアンサー

PIC12F629のMCLRピンが出力に?

PIC12F629でリレーをON/OFFしています。 使用ピンはGP1とMCLRのみです。 動作中にCPUに約0.8Aぐらい流れCPUが発熱(手で触れないほど)するトラブルが発生しました。 このときはMCLRピンは電源(+5V)に直結してあります。 対策としてMCLRピンから抵抗1KΩを経て+5Vへ接続することにより解決しました。 理由としての予想ですが リレーのノイズにより入力専用のMCLRピンが出力になり0出力され +5Vから(抵抗がないので)大電流が流れこんだ・・・ と思うのですが。 入力専用のMCLRピンが出力になるという仮定がへんですが 私には、そうしないと説明がつかないような気がします。 「正しい解釈(?)」を教えてください。

noname#230358
noname#230358

質問者が選んだベストアンサー

  • ベストアンサー
noname#230359
noname#230359
回答No.1

MCLRピンが出力になることはありませんので ラッチアップのような現象ですね。 http://www.geocities.co.jp/HeartLand-Tachibana/9059/otasuke/lup.htm リレーのコイルにダイオード入れてますか? MCLRの処理はデータシート http://ww1.microchip.com/downloads/en/DeviceDoc/41190E.pdf の9.3.1 FIGURE 9-5にあるように1K以上でプルアップ 場合によって0.1マイクロとあります。 ご確認ください。

noname#230358
質問者

お礼

回答ありがとうございます。 >リレーのコイルにダイオード入れてますか? 入れています。

その他の回答 (2)

noname#230359
noname#230359
回答No.3

(2)です。 ご説明、ありがとうございました。そうですか。了解しました。 ラッチアップは怖いですね。私も、PLDでラッチアップした経験があります。 5Vトレラントを謳ったPLDでしたが、5Vロジック出力→3.3VのPLD入力という 配線でラッチアップ。 PLDを剥がしてテスターで当たると、VddがGNDが数オームになって、常時短絡でした。 対策は、PLDの入力端子直前に10k程度の抵抗を直列挿入してOKになりました。 それ以来、5Vと3.3Vの接続には、必ず抵抗を入れるようにしています。 どうもありがとうございました。

noname#230359
noname#230359
回答No.2

(1)さんのおっしゃるように、ラッチアップの可能性が大きいと思います。 私は、その症状は初めて知ったので、向学のため、状況を少し教えていただけないでしょうか? わかる範囲、あるいは答えられる範囲で結構です。便乗ですみません。 簡単な回路でしたら、私も追試してみたいと思っています。   1. GP1, MCLR, Vss以外のピンは、どのようにされていますか。      a) 解放、未接続      b) 直接、GNDまたは+5V      c) 抵抗を介してGNDまたは+5V   2. リレーの駆動方法は、      a) トランジスタで駆動      b) PICで直接駆動   3. PICとリレー間の配線の長さはどのくらいでしょうか   4. リレー、ダイオードの型式がわかりましたら教えてください。 もし回答可能ならで結構です。どうぞ宜しく御願いいたします。

noname#230358
質問者

補足

ご参考までに 説明が不足していました。 CPUでトランジスタ経由でリレーをドライブします。 (このリレーにはダイオードが入っています。) このリレーの接点でコイル電圧AC100Vの接触器をドライブします。 (この接触器のコイルには220Vのバリスターを入れてあります。) この接触器のノイズにより回答いただいたようにCPUがラッチアップ したようです。

関連するQ&A

  • PIC の出力ピン(High) には電流は流れ込まない?

    PIC の出力ピン(High) には電流は流れ込まない? プルアップ抵抗の勉強をしています。出力ピンがLow の時は内部でグラウンド接続となっていて、流れ込み電流がありますよね。 ではHigh の時、プルアップ抵抗により電圧が上がるわけですから、出力ピン側に流れ込むと思うんです。従ってPIC の内部ではHigh の時に逆流しないようにダイオード経由になっている、と考えて差し支えないのでしょうか? そういう説明のされたサイトを見かけないので、誤ってますか?

  • PICの出力をGNDに

    PICの出力ピンの先からICにつなぐ途中でGNDにつなぐスイッチを分岐させて、外部的にOFFにしようと考えています。 その際PIC側に抵抗は必要あるのでしょうか? 要するにPICのデジタル出力の5VをそのままGNDにつなげていいのかということです。

  • PIC12F675 の入力読み込み が正しく出来…

    PIC12F675 の入力読み込み が正しく出来ない こう度々だと恥ずかしく思いますが解決したいと思いお願いすることにしました。12F675 を MOVLW B'00101010' ;GP0,2,4ピンを出力にする     MOVWF TRISIO ;入力は10Kの抵抗でプルアップしてます GP3がLOになっているときGP2を100mS間LOレベルにしています GP2はJK-FFのクロックになっていてJKは5Vに接続してあるためGP2によって反転しますこのJK-FFのQ出力がフォトカプラを介してGP3に接続していてJK-FFのQ出力をGP2で操作します(信号線の長さが10mあります) ところがQ出力がHIのとき ?PICはGP3がLOであると判断して ?GP2をLO/HI にスイッチさせていてしかもプログラムが LO/HI操作を一度通過した後何度でもLO/HI を繰り返しています  ?のように判断していることが誤動作の発端と思いますが 原因がわかりません 今回は ANSEL = B'00000000' (デジタルI/Oモード) COMCN = B'00000111' (コンパレータ機能をOFF) BCF ADCON0,ADON (コンバータ電源 OFF)    CLRF INTCON (割り込み発生はさせない)に注意したつもりですがまだ足りていないようです 何方かお願いします

  • PIC12F629デジタル入力について

    PIC12F629をC言語でプログラミングしています。 GP2ピンをデジタル入力としてスイッチを接続しGP4をデジタル出力 としてLEDを接続し、スイッチを押すたびにLEDが点灯、消灯を繰り返す ようにプログラミングしてみました。 ところがデジタル入力のピンをGP0,GP1に変更しピンにスイッチを 接続し入力しても同じように動作しません。回路に電源をいれた瞬間 LEDが点灯しスイッチを入力しても点灯したままです。 GP0,1をGP2と同様にデジタル入力として使いたいのですが、単にピンの 番号をプログラム中で変更するだけではダメなのでしょうか? ご教授おねがいします。

  • PIC12F615でGP5が使えません(T_T)

    お世話になりますm(_ _)m PICマイコン初心者です(^^;) MPLAB IDE v8.80で、C言語でプログラムして、 PICkit3を使ってPIC12F615に書き込んでいます。 GP2にスイッチ、GP5にLEDを接続して、スイッチを押すとLEDが点灯するプログラムです。 これだけなら、普通にGP5は利用できます。 タイトルの「GP5が使えない」というのは、 このプログラムに、 割り込みを使用するために INTE=1; を書き込むと何故か、GP5が使えなくなります。 入力も出力も出来ません。 どなたか分かる方、よろしくお願い致しますm(_ _)m ↓プログラム↓ ---------------------------------------------------------------- #include <htc.h> __CONFIG(OSC_4MHZ & UNPROTECT & MCLREN & PWRTEN & WDTDIS & INTIO & BORDIS); void main(void) { //PIC12F615仕様  CMCON0 = 0x07 ; //コンパレート無効化  ANSEL = 0x00 ; //全てデジタル  TRISIO = 0b00001100 ; //入力出力設定  WPU = 0b00000100; //プルアップビット指定  GPPU = 0; //プルアップ有効化  GPIO = 0 ; //各ピンデフォルト値  INTEDG = 0; //INT割り込み立ち下がりエッジ  INTE = 1;  GIE = 1;  while(1)   {    if(!GP2) GP5=1; else GP5=0;   } } ----------------------------------------------------------------

  • 電子工作 PIC PIC16F84A アセンブラ

    PIC16F84Aを使用して1番ピン及び2番ピン及び3番ピンが一瞬でも0Vになり、 5秒経過、6番ピンから3秒間出力、始めに戻る。 こんなようなプログラムを作りたいと思っていますが、 なにぶんPIC初心者なものでどうプログラムしたらよいか全くわかりません。 ピン入力に順序は関係なく全て0Vならカウント開始です。 5秒のカウント精度は低くても問題ありません。 5秒カウント中に1、2、3番ピンのいずれかが一瞬でも5Vになったらカウントを中止し、 始めに戻ります。 5秒カウントの6番ピンのステータスは0Vです。 6番ピン出力中は、1~3番ピンの監視は不要です。 6番ピンからの3秒出力の後は出力をやめ始めに戻ります。 開発言語はアセンブラです。

  • PICマイコンで、ピンが足りません。

    PICでちょっとした電子工作をしています。 18pinのPICを使い、スイッチの組み合わせを適宜変更し出力する回路としてを組んでいます。 PortA(8pinを全て入力/全ピンpullup) PortB(8pinを全て出力) スイッチが1~8まであり、例えば1のスイッチが押された場合、3のスイッチが押されたことにして出力するというような、 スイッチの組み合わせを変更する機能を持たせます。 このスイッチの入出力組み合わせを複数持たせることが今回の目的です。 ロータリースイッチを使い8種類の設定ができる用にするとして、割り当て設定用として新たに3ピンが必要です。 ですが、上記のようにPortAB共に全ピン利用しており、単純に割り当てることが出来ません。 これをどうにかして、利用済みのピンと共存させ18pinで済ませることができないでしょうか。 スイッチの組み合わせは、PIC起動したら変更されることがありません。 ですので、PIC起動時に一度だけロータリースイッチの状態を読めばいいことになります。 なお出力の先につながる回路は、プルアップされたアクティブローの入力端子です。

  • PICマイコンのICSPとVREF同じピンについて

    現在、PIC16F785を用いてテストをしています。 アナログ入力の基準電圧上限としてVREF(+)端子に シャントレギュレータの約2.5Vを入力したいのですが ICSPCLKも同じ19番ピンに割り当てられているので 同時に使用するには何らかの対策が必要と思います。 ICSPにはPICKIT3を使用します。 このPICKIT3のCLKピンはプルダウンされているようです。 制限抵抗やダイオードを使用して色々と試しましたが いづれの方法でも基準電圧が安定しません。 PICKIT3をデバッグの為に接続したまま、基準電圧が約2.5Vに 安定する良い回路はありませんか。(できればリレー等を使わずに) ご教授お願いします。

  • PICを用いた電圧制御について

    16F84AのPICを用いて電圧を1Vから13Vまで出力を可変させる回路を製作したいと思っています。 現状では 抵抗を1kΩの抵抗を13本繋ぎ分圧し、トランジスタのスイッチング作用を用いて1~13Vまで出力を変化させようとしているのですが、うまくいきません。 ヘタな質問になってしまいましたが、どなたか改善案についてアドバイスいただけたら幸いです。 よろしくお願いします。

  • RS232Cを用いてPIC(16F877A)と通信を行う工作

    RS232Cを用いてPIC(16F877A)と通信を行う工作をしているのですが 行き詰ってしまったので、どなたか助言の方お願い致します。 今の状況は、 電源から5Vを直接(抵抗等を挟まないで)ピンに印加 このとき、抵抗(330Ω)を挟むと、ピンに入力があったとみなされず 一瞬だけ一つのピンに5Vを印加すると、そのピンに5秒から10秒程度入力が入ったとみなされる という状況がすべての入力ピンでみられます。 それを、  ピンへの5Vの印加をなくしたら入力がなくなったと判断するようにしたいのですが、うまい方法を思い浮かばないのです。 実験環境は、  通信はRS232C を用い  電源はコンセントからアダプタを使って12Vに変換  それを3端子レギュレータで5Vに変換  OSはWindows2000 を使用しており  PIC C lite9.60 で C言語を用いてプログラミングをしています。