PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第153回]
●PICUSBIO−03(102)EUSART(4)非同期モード(3)ボーレートジェネレータ
今回はボーレートジェネレータです。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
ボーレートジェネレータ(BRG)は同期および非同期EUSART通信専用の8ビットまたは16ビットタイマーです。
デフォルトではBRGは8ビットモードです。
BAUDCONレジスタのBRG16ビットをセットすると16ビットモードになります。
SPBRGH:SPBRGレジスタペアはボーレートタイマーのカウント期間を決定します。
非同期モードではボーレートカウントの乗数はTXSTAレジスタのBRGHビットとBAUDCONレジスタのBRG16ビットによって決まります。
TABLE16−3はその計算に使う数式です。
EXAMPLE16−1はボーレートとボーレートエラーの計算式です。
参考までにTABLE16−5に一般的なボーレートとボーレートエラーを計算して示します。
ハイボーレート(BRGH=1)または16ビットBRGモード(BRG16=1)を使うとボーレートエラーを小さくできます。
16ビットBRGモードはシステムクロックが高速のときに低速のボーレートを選択するときに使われます。
SPBRGH:SPBRGレジスタに新しい値を書き込むとBRGタイマーはリセット(またはクリア)されます。
これによりタイマーのオーバフローを待たずに新しいボーレートを出力することができます。
データの受信中にクロックを変更すると受信エラーもしくは受信データの欠落が発生する可能性があります。
それを避けるためにRCIDLビット(BAUDCONレジスタのbit6)をチェックして受信がアイドル状態であることを確認してからクロックを変更するようにします。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
TABLE16−5(必要な部分のみを示します)
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
PICUSBIOのPIC18F13K50のFoscは48MHzですから表の一番左から選びます。
下はBAUDCONレジスタです。
[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7 ABDOVF:本稿ではこのビットは使いません。
bit6 RCIDL:受信アイドルフラグビット
1=受信はアイドル状態
0=スタートビットが受信された
bit5 DTRXP:受信データ極性選択ビット
1=受信データ(RX)は負極性(アクティブがLレベル)
0=受信データ(RX)は正極性(アクティブがHレベル)
bit4 CKPXP:送信データ極性選択ビット
1=送信データ(TX)は正極性(アクティブがHレベル)
0=送信データ(TX)は負極性(アクティブがLレベル)
bit3 BRG16:16ビットボーレートジェネレータビット
1=16ビットボーレートジェネレータ使用(SPBRGH:SPBRG)
0=8ビットボーレートジェネレータ使用(SPBRG)
bit2 使用されない
bit1 WUE:本稿ではこの機能は使いません。ここは’0’にしておきます。
bit0 ABDEN:本稿ではこの機能は使いません。ここは’0’にしておきます。
PIC−USBIO using BASIC[第153回]
2023.1.12upload
前へ
次へ
ホームページトップへ戻る