fc2ブログ
 カレンダー

05月 │2023年06月│ 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

 プロフィール

はしもと

Author:はしもと
ユーザインタフェース系のお仕事をしてます.関心領域は画像処理,拡張現実感,ヒューマンコンピュータインタラクション,エンタテインメントコンピューティングあたり.モノ書きもやってます.

 工学ナビ

工学ナビは工学系の技術のチュートリアルを扱うサイトです.

 作ったもの

 Twitter

 

 天気予報


 ブログ内検索

 カテゴリー

最新コメント

 RSSフィード

 リンク

このブログをリンクに追加する




工学ナビの中の人 はしもとのブログです. いろんなコトを研究的,工学的な視点で見つめます.
【トラ技8月号】 RS232Cを使ってPCと付属基板の相互通信
 前回はPCから付属基板にキャラクタコードを送る実験をやりましたが,今回はその逆もやってみましょう.

 トラ技8月号の付属基板には,プログラム書き込みのために受信用インタフェース回路のがあらかじめ組み込まれていますが,dsPICからPCにデータを送信するための回路は組まれていません.ここでいう送受信のインタフェース回路というのは,レベル変換回路のことです.PICとPCでは扱っている信号レベル(電圧)が異なるので変換が必要になります.

 というわけで,レベル変換回路を組んでPCと付属基板の間で双方向通信ができるようにしてみましょう.

※実験は自己責任でお願いします.回路に間違いなどがあったらすぐにお知らせください.


■RS232Cレベルコンバータ回路
 RS232C用のレベル変換ICが売られているのでこれを利用します.今回は秋月で売られているADM3202ANを使いました.必要な部品(コンデンサとICソケット)がついて200円で売られています.

RS232CLevelConverter.png

RS232Cレベルコンバータ回路(クリックで拡大)

 このレベル変換回路は,ソケットなどを取り付けて単体の装置にしておくといろいろと便利です.ポケコンとかGBAをPCを繋ぐ通信アダプタとしても使えます.

RS232Cconv.jpg
ケースに入れてみました.

■相互通信プログラム
 dsPIC側のプログラミングを行います.以下のプログラムを作成し,dsPICにダウンロードしてください.このプログラムでは,受信したキーコードに+1した値をPCに送信します.例えば,PCから'A'というコードを送った場合は'B'というコードが返ってきます.

#include <p30f2012.h>

void main(void)
{
U1MODE = 0x8000; // alternate I/O (U1TX/U1RX), N81
U1BRG = 95; // 19200bps
U1STA = 0x0400;

while (1) {
if (U1STAbits.URXDA!=00) {
U1TXREG = U1RXREG + 1;
while (U1STAbits.UTXBF!=0);
}
}
}

U1RXREGに受信データが入っています.そしてU1TXREGに送信したいデータを書き込みます.


■トラ技8月号付属基板との接続
RS232C_dsPIC8.png

こんな風に接続します(クリックで拡大)

 レベルコンバータに供給する電源は付属基板の電源と同じものを使います.レベルコンバータのRxD端子を付属基板の23pin(U1TX),レベルコンバータのTxD端子を付属基板の24pin(U1RX)に接続します.

jikken070729.jpg

■dsPIC←→PC データ送受信実験
 Windowsに付属している「ハイパーターミナル」というソフトを使います.「接続の設定」で接続方法を使用するCOMポートに設定します.COMのプロパティは,ビット/秒(bps):19200,データビット:8,パリティ:なし,ストップビット:1,フロー制御:なし,に設定します.

com_config_070729.png

com_test_070729.png
実験の様子.キーボードの'1'を入力すると'2'が,'A'を入力すると'B'が返ってきます.


さて,これの次にやるオーソドックスなネタといえば,やはり「PCから文字列を送り,PICで処理してLCD(液晶表示器)に表示」ですかね.


この記事に対するコメント

おぉ,通信できてる! これを使ってキーボードキャプチャとかを作って,ネットカフェにこっそり仕掛ける…. なんて危ないこともできそうですね(^^;
問題はデータを蓄えておくメモリとのインタフェースかな.
しかし19200bpsで通信できるとは,結構速い!?
【2007/08/11 08:56】 URL | hiro #Hj1FNbYI [ 編集]




この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://kougaku.blog28.fc2.com/tb.php/247-76f1450c
この記事にトラックバックする(FC2ブログユーザー)