PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第150回]
●PICUSBIO−03(99)EUSART
今回からはEUSARTです。
いつものようにPIC18F13K50のData Sheetを読みながら説明をしていきます。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
●同期式非同期式送受信(EUSART)
enhancedは強化されたという意味です。
EUSARTモジュールはシリアルI/O通信機能です。
デバイスプログラムから独立して実行できるシリアルデータ送受信I/O機能に必要なクロックジェネレータ、シフトレジスタ、データバッファのすべてを備えています。
EUSARTは全二重非同期通信、半二重同期通信ができるシリアルコミュニケーションインターフェース(SCI)です。
全二重通信モードはCRTインターフェースやパーソナルコンピュータなどの通信に使われています。
半二重通信モードはA/D、D/A回路、シリアルEEPROMやマイクロコントローラなどの周辺回路の通信用です。
これらのデバイスは通常はボーレートジェネレータを内蔵していないのでマスターが供給する外部クロックを必要とします。
EUSARTモジュールには以下の機能があります。
・全二重非同期送受信
・2文字分の入力バッファ
・1文字分の送信バッファ
・プログラム可能な8ビットまたは9ビット文字長
・9ビットモードでのアドレス検出
・入力バッファのオーバーラン検出
・入力文字のフレーミングエラー検出
・半二重同期通信のマスター
・半二重同期通信のスレーブ
・プログラム可能なクロックおよびデータの極性
原文ではさらにローカルインターコネクトネットワーク(LIN)に必要な機能も備えていると書いてありますがそこまで扱うだけの余裕はありませんのでそれについては説明を省きます。
また上記では9ビットの文字長、9ビットアドレス機能もあると書いていますがそれについても説明を省略します。
下はEUSART送信のブロック図です。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
こちらはEUSART受信のブロック図です。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
EUSARTモジュールは次の3つのレジスタを通じて制御されます。
・送信のステータスと制御(TXSTA)
・受信のステータスと制御(RCSTA)
・ボーレート制御(BAUDCON)
原文ではBAUDCTLになっていますがおそらくBAUDCONの間違いです。
TXSTAとRCSTAは下で説明をします。
BAUDCONについては別の回で説明します。
EUSARTの制御ではRX/DX及びTX/CK端子に対応するTRISビットは’1’に設定する必要があります。
EUSARTモジュールは必要がある場合には端子の向きを入力から出力に自動的に変更します。
TXSTAレジスタです。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7 CSRC:非同期通信では使いません
bit6 TX9:9ビット送信イネーブルビット
1=9ビット送信
0=8ビット送信
本稿では9ビットモードは扱いませんからここは’0’にします。
bit5 TXEN:送信イネーブルビット
1=送信イネーブル(可)
0=送信ディスイネーブル(不可)
bit4 SYNC:EUSARTモードセレクトビット
1=同期モード
0=非同期モード
ここは非同期モードを選択します。
bit3 SENDB:ブレークキャラクタ送信ビット
ここの説明は意味不明なところがあります。本稿ではブレークキャラクタは扱いませんからここは’0’にしておきます。
bit2 BRGH:ボーレートスピードセレクトビット
1=ハイスピード
0=ロースピード
ボーレートについては後の回で説明をします。
bit1 TRMT:送信シフトレジスタ(TSR)ステータスビット
1=TSRエンプティ(空)
0=TSRフル(空ではない)
bit0 TX9D:9ビット目の送信ビット
本稿ではこのビットは使いません。
RCSTAレジスタです。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7 SPEN:シリアルポートイネーブルビット
1=シリアルポートイネーブル(RX/DTおよびTX/CL端子はシリアルポート端子になります)
0=シリアルポートディスイネーブル(リセット状態を継続します)
bit6 RX9:9ビット受信イネーブルビット
1=9ビット受信
0=8ビット受信
本稿では9ビットモードは扱いませんからここは’0’にします。
bit5 SREN:同期通信専用ビットです。非同期通信では使いません。
bit4 CREN:受信イネーブルビット
1=受信イネーブル(可)
0=受信ディスイネーブル(不可)
bit3 ADDEN:8ビットモードでは使いません。
bit2 FERR:フレーミングエラービット
1=フレーミングエラー(RCREGレジスタを読むことで更新され、次のデータを受信することができる)
0=フレーミングエラーは起きていない
フレーミングエラーは送信と受信のクロックが異なっているときなどに発生します。
bit1 OERR:オーバーランエラービット
1=オーバーランエラー(bit4のCRENビットをクリアすることでクリアできる)
0=オーバーランエラーは起きていない
bit0 RX9D:9ビット目の受信ビット
本稿ではこのビットは使いません。
説明が長くなりますので途中ですが本日はここまでにいたします。
PIC−USBIO using BASIC[第150回]
2023.1.8upload
前へ
次へ
ホームページトップへ戻る