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


PIC−USBIO using BASIC

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

[第159回]



●PICUSBIO−03(108)EUSART(10)同期モード(3)スレーブモード

前回と前々回では同期マスター通信について説明しました。
今回は同期スレーブモードについて説明します。


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

●同期スレーブモード

EUSARTを同期スレーブモードで使うためには次のビットを設定します。
・SYNC=1
・CSRC=0
・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

●同期スレーブ送信セットアップ

1.SYNCおよびSPENビットをセットしCSRCビットをクリアします。
  RX/DTおよびTX/CK端子に対応するTRISビットをセットします。
2.SRENおよびCRENビットをクリアします。
3.本稿では割込みは扱いませんのでこの項は省略します。
4.本稿では9ビットモードは扱いませんのでこの項は省略します。
5.TXENビットをセットして送信をイネーブルにします。
6.本稿では9ビットモードは扱いませんのでこの項は省略します。
7.TXREGレジスタにデータを書き込むことで送信を開始します。

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

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

−=未実装。’0’が読み出される。アミのかかったビットは同期スレーブ送信では使用されない。
この表は少し疑問があります。
タイトルは’SLAVE TRANSMISSION’になっていますが欄外の’Legend’では’master transmission’になっています。
スレーブモードではSPBRGH、SPBRGは使いません。
どうやらこの表は’master transmission’からそのままコピーしたようです。


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

●EUSART同期スレーブ受信

同期マスターモードと同期スレーブモードは下記を除いて同一です(同期マスター受信は前回参照)。

・スリープモード(本稿では扱いません)
・CRENビットは常時セットされる。それゆえに受信はアイドルにならない。
・SRENビットはスレーブモードでは無視される。
ここでの原文の説明はスリープモードに関するものなので説明を省略します。


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

●同期スレーブ受信セットアップ

1.SYNC、SPENビットをセットしてCSRCビットをクリアします。
  RX/DTおよびTX/CKに対応するTRISビットをセットします。
2.本稿では割込みは扱いませんのでこの項は省略します。
3.本稿では9ビットモードは扱いませんのでこの項は省略します。
4.CRENビットをセットして受信を可能にします。
5.受信が完了するとRCIFがセットされます。
6.本稿では9ビットモードは扱いませんのでこの項は省略します。
7.RCREGレジスタを読むことで受信FIFOのデータを取得します。
8.もしもオーバーランエラーが発生したら、RCSTAレジスタのCRENビットをクリアするか、SPENビットをクリアしてEUSARTをリセットすることでエラーをクリアします。

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

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

−=未実装。’0’が読み出される。アミのかかったビットは同期スレーブ送信では使用されない。

PIC−USBIO using BASIC[第159回]
2023.1.18upload

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