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で供給]に設定した
(クリックすると拡大表示されます)
[配線図]
(クリックすると拡大表示されます)
↓↓↓↓↓↓↓↓↓下記の内容は、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は、以下を参照して下さい
なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい