閲覧総計:34677  (本日:3  昨日:1)

パソコンとPICの通信(USART)

【目次】(項目をクリックすると飛べます)


パソコンとPICの通信(USART)

PICのUSART機能(RS232C)を用いてパソコンとPICで通信してみよう。

【参考情報】
久世氏の情報を参考にしました。
・PICとパソコンとの接続には「シリアル-USB変換ユニット FT232RX」を利用
 http://www.kuze.jp/pic/mikroc/page007.html
・「シリアル-USB変換ユニット FT232RX」@1,580円(販売:ストロベリーリナックス)
 http://strawberry-linux.com/catalog/items?code=50025
・USART送受信プログラムは下記久世氏ページを参考に作成しました。
 http://www.kuze.jp/pic/mikroc/page007.html
 http://www.kuze.jp/pic/mikroc/page008.html
 http://www.kuze.jp/pic/mikroc/page009.html

【感想】
・パソコンとPICの安定した通信が実現出来ました。
・「シリアル-USB変換ユニット」を利用した事で
1.パソコンとPICの安定したUSART通信が実現
2.ノート型、デスクトップ型どのパソコンでもつなげられるUSB接続実現
(最近のパソコンはRS232Cコネクタを持たない機種が多い)
3.PIC用の5V電源がUSBから取れ、PIC用の電源が不要となった
と一石三鳥となり、とても喜んでおります。  07/01/13

P1010259.JPGP1010269.JPGUSART01.JPG
/**
* パソコンとPIC通信 USART送受信
* 'a'送信でLED点灯、'b'送信でLED消灯 PIC受信情報をそのままPCへ返信
*
* PIC16F628A
*
* RX:RB1 TX:RB2
* LED:RB5
*
* Device Flags: _BODEN_OFF  _CP_OFF  _PWRTE_ON  _WDT_OFF
*               _LVP_ON  _MCLRE_OFF  _INTRC_OSC_NOCLKOUT
*
* プログラム MikroC v6.2.1
*/
void main() {
    unsigned short int dt;

    PORTB = 0b00000000; //PortBの中身をきれいにする
    TRISB = 0b00000010; //RB1のみ1:入力、他は0:出力に設定

    //PIC稼働点検(LED点滅)
    PORTB.F5 = 1;
    Delay_ms(100);
    PORTB.F5 = 0;

    //シリアル通信の初期化 RX:RB1 TX:RB2
    Usart_Init(9600);

    do {
        if (Usart_Data_Ready()) {
            dt = Usart_Read(); //受信データの読込
            Usart_Write(dt); //受信データをそのままPCへ返信
        }
        
        switch(dt) {
            case 'a':
                PORTB.F5 = 1; //RB5 ON
                break;
            case 'b':
                PORTB.F5 = 0; //RB5 OFF
                break;
        }
    } while(1);
}

★この情報は役に立ちましたか?

選択肢 投票
はい 30  
いいえ 34  

【方針変更】パソコン−PIC接続方法

計画ではパソコンとPICの接続方法は
↓久世氏のものを参考(MAX232を用いない回路とする)進める予定であった。
http://www.kuze.jp/sfc/2005_autumn/page24.html
しかし、この回路を実際に組み通信して見ると安定した通信が実現出来なかった。

よって、「シリアル-USB変換ユニット FT232RX」を利用する方法に方針変更しました。
07/01/13

P1010264.JPG

【課題】パソコンとPICの通信(USART)

RS232C(シリアル)通信を利用し、パソコンとPICの通信にチャレンジしてみたい。
必要部品を調達した。さて、実現出来るだろうか?  06/12/16

P1010249.JPGMikroC_terminal.JPG

・回路は↓久世氏のものを参考(MAX232を用いない回路とする)
http://www.kuze.jp/sfc/2005_autumn/page24.html
↓久世氏のMikroCプログラム
http://www.kuze.jp/sfc/2005_autumn/page25.html

・最初は16F628A内臓のハードUSART機能を利用してみる。
信号反転が必要そうだったらSoftware_UART()関数の反転機能を利用してみる。
Software_UART()関数の反転機能がバグで動かなかったら、ハードUSART機能
に戻りトランジスタを用い信号反転を実施する。
(トランジスタは2SC1213A(2SC1815同等品)を調達)

・パソコン側の送受信ツールはMikroCのToolsに用意されている
USART Terminal(Communication Terminal)を利用する。
(↓利用説明はページ下の方)
http://www.kuze.jp/sfc/page22.html

(参照MikroC Help)
・USART Library
・Software_UART Library   06/12/16

★この情報は役に立ちましたか?

選択肢 投票
はい 10  
いいえ 2  

添付ファイル: fileP1010269.JPG 3744件 [詳細] fileP1010264.JPG 2516件 [詳細] fileP1010260.JPG 941件 [詳細] fileP1010259.JPG 3585件 [詳細] fileUSART01.JPG 3908件 [詳細] fileMikroC_terminal.JPG 2471件 [詳細] fileP1010249.JPG 2529件 [詳細]