UART ボーレート誤差計算機
ボーレートジェネレータ モード
SPBRG 値
51
実ボーレート
9,615
誤差
+0.160%
SPBRG = Fosc / (16 × baud) − 1 = 51
✓ 誤差 ±2% 以内 — 通常使用可能
標準ボーレート一覧(Fosc = 8 MHz · 16× BRGH=1, BRG16=0)
| ボーレート | SPBRG | 実ボーレート | 誤差 |
|---|---|---|---|
| 300 | 1666 | 300 | -0.020% |
| 1,200 | 416 | 1,199 | -0.080% |
| 2,400 | 207 | 2,404 | +0.160% |
| 4,800 | 103 | 4,808 | +0.160% |
| 9,600 | 51 | 9,615 | +0.160% |
| 19,200 | 25 | 19,231 | +0.160% |
| 38,400 | 12 | 38,462 | +0.160% |
| 57,600 | 8 | 55,556 | -3.549% |
| 115,200 | 3 | 125,000 | +8.507% |
| 230,400 | 1 | 250,000 | +8.507% |
| 460,800 | 0 | 500,000 | +8.507% |
| 921,600 | 0 | 500,000 | -45.747% |
PIC UART ボーレート設定
PICのEUSARTはFoscを整数で分周してボーレートを生成します。 分周比が整数に丸められるため目標値と実際の値に誤差が生じます。 一般に ±2%以内 であれば通信が成立します。
SPBRG 計算式
- BRGH=0, BRG16=0 (64×): SPBRG = Fosc / (64 × baud) − 1
- BRGH=1, BRG16=0 (16×): SPBRG = Fosc / (16 × baud) − 1
- BRGH=1, BRG16=1 (4×): SPBRG:SPBRGH = Fosc / (4 × baud) − 1
モード選択のコツ
同じFoscとボーレードでも、高分周モード(64×)より低分周モード(4×/16×)の方が 誤差が小さくなる場合があります。4 MHz 内蔵発振器で 9600 bps を使う場合は BRGH=1(16×)が推奨です。8 MHz で 115200 bps は 16× モードで誤差 0.16%(使用可能)です。