シリアル通信関連のレジスタ

概要

シリアル通信関連のレジスタです。

UDRn

UDRnは送受信用のバッファです。送受信で同じアドレスを共用します。

UDRn
ビット76543210
名称RXB[7:0]
名称TXB[7:0]

UCSRnAのUDREnフラグが設定されているときにだけ、送信バッファにデータを書き込むことができます。

UCSRnA

UCSRnA(USART Control and Status Register n A)は、シリアル通信の制御や状態を表すためのレジスタです。

UCSRnA
ビット76543210
名称RXCnTXCnUDREnFEnDORnUPEnU2XnMPCMn
RXCn(USART Receive Complete)
未読み出しの受信データが受信バッファに存在するときに1になります。
TXCn(USART Transmit Complete)
送信バッファに未送信のデータがないときに1になります。
UDREn(USART Data Register Empty)
送信バッファにデータを書き込むことができるとき1になります。
FEn(Frame Error)
受信バッファ内の次の文字にフレームエラーが発生したときに1になります。
DORn(Data OverRun)
データオーバーランを検出すると1になります。受信バッファが満杯のときに、新たにスタートビットを検出するとデータオーバーランが発生します。
UPEn(USART Parity Error)
受信バッファ内の次のフレームにパリティエラーが発生したときに設定されます。
U2Xn(Double the USART Transmission Speed)
非同期通信のときだけ有効で、1を設定すると、分周比を16から8にします。結果として通信速度が2倍になります。
MPCMn(Multi-processor Communication Mode)
1を設定すると、マルチプロセッサ通信モードが有効になります。アドレス情報を含まない受信データが無視されます。

UCSRnB

UCSRnB
ビット76543210
名称RXCIEnTXCIEnUDRIEnRXENnTXENnUCSZn2RXB8nTXB8n
RXCIEn(RX Complete Interrupt Enable n)
1にすると、RXCnフラグの割り込みを許可します。
TXCIEn(TX Complete Interrupt Enable n)
1にすると、TXCnフラグの割り込みを許可します。
UDRIEn(USART Data Register Empty Interrupt Enable n)
1にすると、UDREnフラグの割り込みを許可します。
RXENn(Receiver Enable n)
1にすると、USARTの受信を許可します。
TXENn(Transmitter Enable n)
1にすると、USARTの送信を許可します。
UCSZn2(Character Size n)とUCSZn1、UCSZn0の3ビット
データのビット長を表します。
RXB8n(Receive Data Bit 8 n)
9ビット長のデータを受信したときの9番目のビットです。
TXB8n(Transmit Data Bit 8 n)
9ビット長のデータを送信するときの9番目のビットです。

UCSRnC

UCSRnC(USART Control and Status Register n C)は、パリティやストップビットの設定を行うためのレジスタです。

UCSRnC
ビット76543210
名称UMSELn1UMSELn0UPMn1UPMn0USBSnUCSZn1UCSZn0UCPOLn
UMSELn
以下に示す動作モードを設定します。デフォルトは非同期USARTです。
UMSELn1UMSELn0モード
00非同期USART
01同期USART
10予約
11マスターSPI
UPMn
パリティ生成と検査の設定を行います。デフォルトは無効です。
UPMn1UPMn0パリティモード
00無効
01予約
10有効、偶数パリティ
11有効、奇数パリティ
USBSn
送信時に挿入されるストップビットのビット数を指定します。0のとき1ビット、1のとき2ビットです。デフォルトは1ビットです。
UCSZn2、UCSZn1、UCSZn0
データのビット長を表します。デフォルトは8ビットです。
UCSZn2UCSXn1UCSZn0文字長
0005ビット
0016ビット
0107ビット
0118ビット
100予約
101予約
110予約
1119ビット
UCPOLn
クロック極性を設定します。同期モードのときだけ使います。非同期モードのときは0を設定します。

UBRRnL、UBRRnH

UBRRnLとUBRRnH(USART Baud Rate Registers)は、UCSRnAのU2Xnと合わせて通信速度を決めるレジスタです。

UBRRnL、UBRRnH
ビット76543210
UBRRnH----UBRRn[11:8]
UBRRnLUBRRn[7:0:

UBRRnHとUBRRnLとを合わせた16ビットのうち、12ビットが有効な値です。UBRRnと通信速度(BAUD)の関係は、以下の通りです。F_CPUはシステムクロックです。

U2Xn = 0のとき
BAUD = F_CPU / (16 (UBRRn + 1))
UBRRn = (F_CPU / (16 * BAUD)) - 1
U2Xn = 1のとき
BAUD = F_CPU / 8 (UBRRn + 1)
UBRRn = (F_CPU / (8 * BAUD)) - 1

バージョン

Arduino AVR Boards 1.8.6

最終更新日

March 21, 2023

inserted by FC2 system