Nov11’s diary(自宅での開発環境作り )

3Dプリンタと切削加工機で工作した事をアップして行きます

PICを使用して開発する事にした(シリアル通信/UART通信)(その1)

FTDI社のFT232Rを搭載したMFT232RLを使用してPIC24FJ64GA002とシリアル通信(UART通信)を行う
(MPLAB XのCode Configuratorを使用してプログラム作成を行います)

[事前準備]
1)ドライバーをダウンロードする
  以下のサイトより、ドライバーをダウンロードする
  http://www.ftdichip.com/Drivers/VCP.htm
  ページ中央のCurrently Supported VCP DriversよりWindowsでx64(64-bit)の
  交差している部分の[2.12.12]をクリックするとダウンロードが開始される
  ダウンロードが完了したら適当な場所に解凍する
   2016/01/22時点では、「CDM v2.12.12 WHQL Certified.zip」だった
   ↓↓バージョンアップ
   2016/06/09時点では、「CDM v2.12.16 WHQL Certified.zip」だった

2)PCとUSBで接続し、ドライバーをインストールする
  1)インターネットの接続を切る
  2)PCとUSBで接続する
  3)デバイスマネージャーを開くと、「ほかのデバイス」に
   「FT232R USB UART」とあるので、プロパティを開いて
   ドライバー更新を行う
   その際に、ダウンロードしたドライバーのフォルダーを指定すると
   インストールが開始されるので終わるまでしばらく待つ
   その際に、ダウンロードしたドライバーのフォルダーを指定すると
   インストールが開始されるので終わるまでしばらく待つ
   ※)Windows10使用時に、ポート(COMとLPT)の[USB Serial Port]に警告マークが
     表示される場合は、警告箇所で、ドライバー更新を行うと、うまく行く
  4)インターネットの接続を行う

3)ポート番号を確認する
  デバイスマネージャーのポート(COMとLPT)にUSB Serial Port(COM?)が
       追加されていれば正常にインストールされている
  (COM?)中の"?"は、番号が表示され環境により異なる

4)Tera Term(テラターム)をインストールする
  Tera Termでググるといっぱい出てくるので、ダウンロードしてインストールする

5)Tera Termで確認する
  Tera Termを起動すると、[新しい接続]画面の、シリアルポートに追加された
       ポートが表示されているので、これを選択する
  正常にインストールされていれば、[新しい接続]画面が消えて、
       画面右上に一瞬[接続中]と表示された後に、表示が消えれば準備完了なる

[配線]
今回は、9600bps(ビットパーセカンド)で確認するので3線式で接続します
(これ以降は通信速度を上げて行くので、CTS/RTSフロー制御の5線式にしようと思う)
なので、MFT232RLの7、24番ピンをGNDに接続し、1番ピンをPICの17番ピンに5番ピンをPICの18番ピンに接続する
(これだと2線式ではと思うかもだけど、GNDが共通なので3線式になります)
そのうえで、MFT232RLのジャンパーを[5V駆動]&[電源はホストからUSBで供給]に設定した

f:id:Nov11:20160122102436j:plain

              (クリックすると拡大表示されます)

[配線図]

f:id:Nov11:20160609151725j:plain
              (クリックすると拡大表示されます)

↓↓↓↓↓↓↓↓↓下記の内容は、MCC(v2.25.2)を使用しています↓↓↓↓↓↓↓↓
v2.25.2を使用する場合は、11月08日のブログを参照して下さい

[プログラム作成]
1)MPLAB Xを起動し、プロジェクトを作成する
2)Code Configuratorで、Systemを設定し、GPIOとUART1を追加する
3)UART1の設定をBaud Rate:9600,DataBits:8,Parity:None,Stop Bits:1,
 Flow Control:Noneにし、[Enable All UART Interrupts]にチェックを入れる
4)Code ConfiguratorのPin Managerで、U1TXとU1RXをPICの18,17番の順に設定する
5)Generate Codeを押してコード生成を行う
6)ループバックプログラムをメイン関数に記述する
   と、言っても、MPLAB XのCode Configuratorがプログラムの大半が
   自動生成してくれるので、コーディングは以下の数行となる

    while (1) {
        // Add your application code
        if ( UART1_ReceiveBufferIsEmpty() == false ) {
            UART1_Write(UART1_Read());
        }
    }

7)プログラムをコンパイルしてPICへ書き込む
8)Tera Termを起動し、入力した文字が画面に表示(エコーバック)されれば正常
 動作している事となり、エコーバックが確認できない場合には、配線を確認する
 上部の写真では、PIC自体の動作確認の為に定周期でLEDを点滅させている
 LEDが点滅しなければ電源供給に異常があるかPIC自体の不良を疑えばよい
 ちなみに、電解コンデンサが破損している場合にもPICは動作しない

↓↓↓↓8BitMCU(PIC16F)/32BitMUC(PIC32MX)↓↓↓↓
PIC16Fでのシリアル通信は、以下を参照して下さい

nov11.hatenablog.com
PIC32MXは、以下を参照して下さい

nov11.hatenablog.com


なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい