2023.1.16
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第157回]



●PICUSBIO−03(106)EUSART(8)同期モード(1)マスター送信モード

前回までEUSARTの非同期通信について書いてきました。
今回からは同期通信です。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

同期式シリアル通信は通常はマスターが1台でスレーブが1台または複数台のシステムで使われます。
マスターデバイスはボーレートジェネレータ回路を有していてシステムの全デバイスにクロックを供給します。
スレーブデバイスはクロックジェネレータ回路がなくてもマスターのクロックを利用することができるという利点があります。

同期モードには2本の通信ライン(双方向のデータラインとクロックライン)があります。
スレーブはマスターが供給する外部クロックを使って受信シフトレジスタおよび送信シフトレジスタのデータをシフトします。
データラインは双方向なので同期通信は半二重に限られます。
半二重通信ではマスターもスレーブもデータを送信し受信することができますが、その両方を同時に行なうことはできません。
EUSARTはマスターとしてもスレーブとしても使うことができます。
スタートビットとストップビットは同期式通信では使われません。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●同期マスターモード

EUSARTを同期マスターモードで使うためには次のビットを設定します。
・SYNC=1
・CSRC=1
・SREN=0(送信モード):SREN=1(受信モード)
・CREN=0(送信モード):CREN=1(受信モード)
・SPEN=1

TXSTAレジスタのSYNCビットをセットすることでデバイスが同期モードになります。
TXSTAレジスタのCSRCビットをセットすることでデバイスがマスターモードになります。
RCSTAレジスタのSRENビットとCRENビットをクリアすることでデバイスが送信モードになります。
それ以外は受信モードになります。
RCSTAレジスタのSPENビットをセットすることでEUSARTがイネーブル(有効)になります。
RX/DT端子やTX/CK端子がアナログ回路と端子を共用している場合には対応するANSELビットをクリアしてアナログI/Oを無効にする必要があります。
RX/DTおよびTX/CK端子に対応するTRISビットはセット(’1’=入力)にしなければなりません。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●マスタークロック

同期データ通信ではデータラインのほかにデータに同期するクロックラインを使います。
マスターデバイスはTX/CKラインからクロックを送出します。
TK/CK端子の出力ドライバはEUSARTが同期送信または受信モードに設定されると自動的にイネーブル(有効)になります。
シリアルデータビットはクロックの立ち上がりエッジごとに変化します。
クロックサイクルはデータビットごとに作られます。
データビットの数だけのクロックが作られます。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●クロックの極性

クロックの極性はMicrowireとの互換性のためのオプションです。
クロックの極性はBAUDCONレジスタのCKTXPビットで選択できます。
CKTXPビットをセットするとクロックのアイドルステートはHレベルになります。
CKTXPビットがセットされるとデータはクロックの下がりエッジで変化し上がりエッジでサンプリングされます。
CKTXPビットをクリアするとクロックのアイドルステートはLレベルになります。
CKTXPビットがクリアされるとデータはクロックの上がりエッジで変化し下がりエッジでサンプリングされます。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●同期マスター送信

データはRX/DT端子から送出されます。
RX/DTおよびTX/CK端子の出力ドライバはEUSARTが同期マスター送信に設定されると自動的にイネーブル(有効)になります。
送信は文字データがTXREGレジスタに書き込まれることで開始されます。
まだTSRに前のデータが一部でも残っているときは最後のビットが送出されてしまうまでTXREGレジスタのデータはそのまま保持されます。
それが最初の文字データか前のデータがTSRから完全に送出されていればTXREGのデータは直ちにTSRに送られます。
文字データの送信はデータがTXREGからTSRに送られた直後に開始されます。
データビットはマスタークロックの上がりエッジで変化し次の上がりエッジまで維持されます。

Note:TSRレジスタはデータメモリにマップされていないのでユーザーがアクセスすることはできません。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●データの極性

送信データおよび受信データの極性はBAUDCONレジスタのDTRXPビットにより設定できます。
デフォルトでは’0’になっていて送受信データは正論理です。
DTRXPビットを’1’にすると送受信データは反転され負論理になります。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●同期マスター送信のセットアップ

1.SPBRGHおよびSPBRGレジスタに値を設定するとともにBRGHおよびBRG16ビットを設定します。
2.SYNC、SPENおよびCSRCの各ビットをセットして同期マスターシリアルポートをイネーブル(有効)にします。
3.SRENおよびCRENビットをクリアして受信モードを無効にします。
4.TXENビットをセットして送信モードをイネーブル(有効)にします。
5.本稿では9ビットモードは扱いませんのでこの項は省略します。
6.本稿では割込みは扱いませんのでこの項は省略します。
7.本稿では9ビットモードは扱いませんのでこの項は省略します。
8.TXREGレジスタにデータを書き込むことで送信を開始します。

同期送信の波形図です。

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

同期マスター送信に関係するレジスタの一覧表

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

−=未実装。’0’が読み出される。アミのかかったビットは同期マスター送信では使用されない。
この表には間違いがあります。
RCSTAのSRENとCRENは’0’にします。
TRISCは使いません。
同期通信に関係するのはTRISBのbit7とbit5です。

PIC−USBIO using BASIC[第157回]
2023.1.16upload

前へ
次へ
ホームページトップへ戻る