• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RS232Cを用いてPIC(16F877A)と通信を行う工作)

RS232CとPIC(16F877A)を用いた通信工作

このQ&Aのポイント
  • RS232CとPIC(16F877A)を用いて通信を行う工作についての質問です。
  • 現在の状況として、5Vを直接ピンに印加すると入力があったとみなされず、一瞬だけ印加すると入力が入ったとみなされるという問題が発生しています。
  • 解決策を求めており、5Vの印加をなくすことで入力がなくなるようにしたいのですが、方法がわかりません。

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

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

NO1です。 PICマイコンは3V電源でも動作しますが、PICを5Vで動作させている限り、入力端子が5V直結でもラッチアップや誤動作はしません。万一、ラッチアップ現象が発生すると少なくともその入力端子は故障してしまうので、交換するしか手がありません。 ADM3202も5V動作させる限りは問題ありませんが、入出力端子を誤って、1+-12Vの電圧の発生する端子をPICに接続してしまうミスがあると故障の原因になります。 CMOS入力端子はインピーダンスが非常に高く、解放にしてしまうと注入した電荷がなかなか抜けきれません。スイッチ入力を接続する場合にはhttp://www.necel.com/ja/faq/mi_com/__com_ksw.html のようにプルダウンまたはプルアップの抵抗がついている必要があります。 指で触るような不安定なスイッチを使う場合にはただの抵抗ではなく、オペアンプでシュミットトリガ回路を作ってバッファにする方がいいでしょう。

tutano
質問者

お礼

アドバイスありがとうございます! おかげさまで、なんとか思った通りの動きをしてくれました!! 原因はntaさんがおっしゃられていた通り、プルダウンの抵抗がなかったことでした。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

16F877にはRS-232Cのインターフェース機能はありませんが、インターフェースICは何を使い接続していますか。現象から見るとPICのCMOS入出力に、違うインターフェースレベルの信号が紛れ込んでいるように思われます。

tutano
質問者

補足

お返事の方ありがとうございます。 機材の方が研究室の方にあるので今すぐ検証できないのですが、回答に対して仮説を立ててみました。 実際の検証は明日行ってみたいと思います。 >16F877にはRS-232Cのインターフェース機能はありませんが、インターフェースICは何を使い接続していますか。 →インターフェースICは、ADM3202ANZ #0635を使用しています   >現象から見るとPICのCMOS入出力に、違うインターフェースレベルの信号が紛れ込んでいるように思われます。 →調べてみましたところ、入力の電位がVddよりも大きくなると、ラッチアップという現象が起きるようです。  これが原因なのでは、と仮説を立ててみたのですが、どうでしょうか・・・。  適切な入力電圧を印加する方法等、よろしければアドバイスお願いします。  あと、PICの足に入力をする、常套手段(安定安全等)があれば、教えていただけないでしょうか。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 電子工作 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秒出力の後は出力をやめ始めに戻ります。 開発言語はアセンブラです。

  • RS232通信 PIC-PC間

    PICからの数値データをPCにRS232で送信しようと考えているのですが、 putc関数(puts)を用いてitoa関数で数値を文字に変換してから送信しようとしたのですが、 itoa関数の部分でプログラムが止まってしまいました。(たぶん重かったのではないかと思います。) PIC内で重くなく数値を文字に変換する方法か、RS232通信を用いて数値を送る方法があれば教えてください。

  • PCMCIAカードでRS232C通信

    古いマシニングセンターと最近のノートPCをRS232通信 したいのです。 USB変換でRS232C通信するよりもPCMCIAカードでRS232C 通信する方が安定すると聞きました。 機械側は25ピンのオス 指定された、ケーブルは9ピン25ピンのメスの ケーブルです。 これをノートPCと接続しRS232C通信するための、PCMCIAカード でお勧めのをご存知なら教えて頂けないでしょうか? お願いします。

  • RS232CのDTRの電流

    RS232CのDTRを駆動電源として(レギュレータを介して)絶縁型のRS232CトランシーバICを駆動させようとしていますが、うまく動きません。DTRからの電圧を見ていると、7.5V出ていた部分がトランシーバICをつけると4.1Vに落ちます。ICの消費電流が100mAなので、DTRからの電流が足りないのでしょうか。 2006年頃のRS232C(D-sub9ピン端子)付きのノートPCを使っていますが、DTRの出力電流はどのくらいのmAまで取れるものでしょうか。 また、USB-RS232C変換ケーブルを使うと、DTRで使える電流は増えるものでしょうか? よろしくお願いいたします。

  • pic-パソコン間のシリアル通信

    PCからあるいはPICから操作を行って何かやりたいと思い、USART機能を持ったPICを使ってPICとPC間でシリアル通信を行いたいと思っているのですが、回路設計で悩んでいます。 PCのRS232Cシリアルインターフェースとの接続をするために変換回路を作りたいのですが、PIC関連の書籍のほとんどが変換用の専用ICを用いているのですが、なるべく安価な部品(抵抗、ダイオード等)で実現できないか考えています。 PIC→PC への方向の通信 PC→PIC への方向の通信 PIC⇔PC への双方向の通信 以上の3パターンでICを用いないでできる定番の回路、もしくは実現可能だと思われる回路などがありましたら教えていただけないでしょうか。

  • RS232C

    ・PCをUSBからRS232C(9ピン)に変換 ・接続する機器を25ピンからストレートで9ピンに その2つの9ピンストレートケーブルで繋いで接続しようとしましたが、通信が上手くいきません。 PCからの変換は http://www.area-powers.jp/white/u1rs.htm こちらのものを使っていて、ピンの配列がちょっとわからないのですが、書いてないので恐らくはストレートで大丈夫だと思います。 なお、機器とPC間の結線は25ピンで (1)ーーーーー(1) (2)ーーーーー(2) (3)ーーーーー(3) (4)↓   ↓(4) (5)↑   ↑(5) (6)↓   ↓(6) (7)ーーーーー(7) (20)↑   ↑(20) このようになっています。 ちょっとわかりづらいですが、矢印はくっついていると考えてください。 ((4)と(5)、(6)と(20)はつながっています) 接続はこれで合ってますか…? 通常のストレートでも通信できるか微妙な結線な気がします。 クロスなどは大分かけ離れてますし。。。 不明なことなどございましたら、なんでも言ってください。

  • 離れたPIC同士のシリアル通信の回路でのPICの…

    離れたPIC同士のシリアル通信の回路でのPICの破損について 5m離れた2つのPIC間でシリアル通信(9600bps)をする回路を作りました。 単にそれぞれのPICの内蔵モジュールのTXとRXをたすきがけしただけの回路です。 また、メインの電源は12Vで、それぞれのPICの近くにそれぞれ専用の7805を配置してPICに5Vを供給しています。 また、2つのPIC間のケーブルはコネクターで取り外せるようになっており、同ケーブルにはシリアル通信(送信、受信)、+12V、GNDの計4本の線で構成されています。 この状態で特に問題無く通信はできているのですが、ふとしたことでPICの内蔵モジュールが破損することがあります。 同じ回路を2セット作りましたが、同様に破損してしまいました。 多分、コネクタを抜き差しするか、或は電源を投入、切断のタイミングではないかと予測しています。 (詳しくは、参考URLの図をご覧ください。  図には電源のコンデンサなどは記載していませんが、それぞれ適宜、配置してあります。) 尚、2つのPIC付近の7805には、PIC以外にそれぞれ違う消費電流の負荷が接続されています。 そのため、5Vに安定するまでの時間に違いが出てしまい、結果、内蔵モジュールの規格外の電圧がかかってしまうのかと予測しています。 ここで質問です。 ・このような状況の場合、PICが破損する原因はどのようなことが考えられるでしょうか? ・解決策はどうしたら宜しいでしょうか? まだ試していませんが、MIDIのようにフォトカプラを使用するか、RS-232Cトランシーバを使用するか等を考えておりますが、なるべく簡易で確実な方法をとりたいです。 宜しくお願いいたします。 http://box.c.yimg.jp/res/box-s-vboqi4x6dy2zfrx7fyns5aqghq-1001?uid=5c9c0a84-d898-45e4-8d4b-df319ca25f24&etag=5c2f1b99137520886935391

  • スマートフォンでRS232C

    STAR.comのPL2303のチップの RS232C USB変換ケーブルを購入し タブレット・スマートフォンに OTGケーブルも使用して接続し、 ブラウザ上で、 RS232C機器からの入力データを入力したいと考えています。 PL2303HXDSimpleTest v2.0.2.21 PL2303HXD ModemStatus v1.0.0.2 をインストールし また USB Serial Teraminal Lite ソフトもインストールしたところ USB Serial Teraminal Lite上では 文字化けした何らかのデータが受信できるようになりました ただ今の状態ではブラウザでは入力を受け付けてくれません。 どのようにすれば、 ブラウザ上でRS232Cの機器の入力データを 入力することができますか? コードリーダーや天秤の秤量データを 入力したいと思っています。 よろしくお願いします。

  • PIC間の通信について

    12ビットのAD変換を1つのPIC(PIC16C771)で行い、 その変換後の値をもう1つのPICで処理したいのですが、PIC同士ではどのような通信を行えばよいのでしょうか? よろしくお願いします。

  • PIC12F683からパソコンへのシリアル通信

    PIC12F683 を使って、簡単な電圧ロガーを作ろうとしているのですが、 パソコンへの送信が正常に行われません、わかる方がおられたらどこが悪いのかご指摘願います。 PICの書き込み、PICからのデータ受信に用いているパソコン(のマザーボード)は、G45GCMX-S2です。 参考にさせていただいているサイトは、 http://www8.plala.or.jp/InHisTime/page005.html#PIC-002 なのですが、上記サイトのソースプログラム http://www8.plala.or.jp/InHisTime/PIC-001/DataLogger2.c には何の手も加えず、動作させております。 また、PIC->PCへの接続端子の接続が正常である事も、テスターで確認しております。 (回路から、PCのCOM1(DSUB-9pin)へ接続。) コンパイル(MikroC 8.88)、hexの書き込み(RCDライタ)までうまくいくのですが、 ブレッドボードに組んで、電源を入れてもGP5の電圧に変化が無い、という状況です。 (LEDを点滅させるプログラムを書き込んだ場合は問題なく動作しています。) 実際の各端子は Vdd 1pin : 5V GP5 2pin : open (※ この端子の電圧に変化が無い) GP4 3pin : open GP3 4pin : 5V CPP1 5pin : open AN1 6pin CH1 : open AN0 7pin CH0 : open Vss 8pin : GND となっています。テスターで測ると 2pinは2.3Vで一定、 レベル変換用のトランジスタのコレクタは3.4V一定です。 念のためレベル変換回路 (http://www8.plala.or.jp/InHisTime/img2022.jpg の右上、C1815の部分。) 単体の動作確認はしています。 ハイパーターミナルその他のソフトで通信しようと試みたのですが、 反応が無いため、ピンの電圧を測ってみたところ、パソコンへの送信出力ピンの電圧が 変化していないので、これは正常じゃないのでは無いか?と思い、 詳しい方のアドバイスをいただこうと投稿しました。 上記のソースであれば、1秒ごとに出力電圧に反応があるかと思いますが、無反応です。 説明がややこしくなりましたが、わかる方がおられましたらよろしくお願いします。