- 締切済み
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秒ごとに出力電圧に反応があるかと思いますが、無反応です。 説明がややこしくなりましたが、わかる方がおられましたらよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- uruz
- ベストアンサー率49% (417/840)
提示されているレベル変換回路は極性を反転させているだけで、RS232Cのレベル変換として機能しません。 規格では論理0(スペース)が+5V~+15Vと正電圧で、論理1(マーク)が-5V~-15Vと負電圧になっています。なお、PCのRS232CはRS232C準拠で正確にはEIA-574規格となっていて論理0(スペース)が+3V~+15V、論理1(マーク)が-3V~-15Vです。 上記のように論理1にはマイナスの電圧が必要になります。 簡単に変換するには専用ICの使用をお勧めしますIC内でマイナス電圧を作りますので5Vの単一電源で変換可能です。 専用ICとしては ●テキサス・インスツルメンツ(旧マキシム) MAX232 ●アナログデバイセズ ADM3202 がよく使用されています。
補足
さっそくの回答、有難うございます。 レベル変換の電圧に関するご指摘、たしかに私も この回路で大丈夫なのだろうか?と思いましたが、あくまで こちら:http://elm-chan.org/docs/rs232c.html のサイトを参考に0Vが1、5Vが0、として認識され得るのでは無いか?という推測のもと、 個人的に、動作不良を覚悟の上で簡易レベル変換として用いたものです。 とはいえ、ご指摘の部分は気がかりでしたので、さっそく 手持ちのmax232nを用い、PICの2pinとmax232の11pin、max232の14pinとDSUBの2pin、 を接続し、ボーレートなどの間違いが無いかチェックした上で ハイーパーターミナル(他)のシリアル通信ソフトで確認したのですが、 残念ながら何のデータも受信できません。 状況としては、前回同様の回路にて、PICの2pin(シリアル出力)は3.5Vで動きません。 (max232の出力も-7Vで動かないままです。) 大元のPICの出力が無い時点でおかしいような気がしたので、 手持ちの12F683、二個に同じプログラムを書き込んで差し替えてみたのですが、 電圧含め、まったく同じ状態です。 なにか根本的なミスがあるような気がしますが、 もし何かお気づきの方がいましたら、ご指摘&アドバイス願います。 uruz 様 ご指摘ありがとうございました。