#freeze 閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);) &size(18){パソコンとPICの通信(USART)}; 【目次】(項目をクリックすると飛べます) #contents ~ *パソコンとPICの通信(USART) [#h29216df] 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 |&attachref(P1010259.JPG,zoom,150x150,button){新しい写真添付};|&attachref(P1010269.JPG,zoom,150x150,button){新しい写真添付};|&attachref(USART01.JPG,zoom,150x150,button){新しい写真添付};| /** * パソコンと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); } ★この情報は役に立ちましたか? #vote(はい[5],いいえ[0]) #comment *【方針変更】パソコン−PIC接続方法 [#k8b53a5c] 計画ではパソコンとPICの接続方法は ↓久世氏のものを参考(MAX232を用いない回路とする)進める予定であった。 http://www.kuze.jp/sfc/2005_autumn/page24.html しかし、この回路を実際に組み通信して見ると安定した通信が実現出来なかった。 よって、「シリアル-USB変換ユニット FT232RX」を利用する方法に方針変更しました。 07/01/13 &attachref(P1010264.JPG,zoom,150x150,button){新しい写真添付}; *【課題】パソコンとPICの通信(USART) [#tc42bfed] RS232C(シリアル)通信を利用し、パソコンとPICの通信にチャレンジしてみたい。 必要部品を調達した。さて、実現出来るだろうか? 06/12/16 |&attachref(P1010249.JPG,zoom,150x150,button){新しい写真添付};|&attachref(MikroC_terminal.JPG,zoom,150x150,button){新しい写真添付};| ・回路は↓久世氏のものを参考(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 ★この情報は役に立ちましたか? #vote(はい[0],いいえ[0]) - 動きました? -- [[むっちゃん]] &new{2006-12-22 (金) 08:49:26}; - 12/22 まだ手が付けられていません。 -- [[PICとMikroC]] &new{2006-12-22 (金) 19:57:48}; - 結果を07/01/13に掲載しました。 -- [[PICとMikroC]] &new{2007-01-13 (土) 15:08:38}; #comment