USART関連のレジスタ

USART関連のレジスタは6本ある。
f:id:ti-nspire:20190411111315p:plain:w700
f:id:ti-nspire:20190411111153p:plain:w700

  • UDR0は送受データの格納されるレジスタDはData。
  • UBRR0H、UBRR0Lはボーレートを設定するレジスタBRはBaud Rate。
  • UCSR0A~Cは制御&ステータスレジスタCSはControl & Status。

UDRn (USART Data Rgister n)

f:id:ti-nspire:20190411123239p:plain:w700
送受するデータを格納する。送受共通。
UCSRnAレジスタのUDREnビット(EはEmpytの意)が1であるときにUDRnレジスタに書き込むと、書き込んだデータがシリアルから送信される。

UCSRnA (USART Control and Status Register n A)

f:id:ti-nspire:20190411123414p:plain:w700

  • RXCnビット(USART RX Complete n)
    受信バッファーに未読データがあるとき(要するに受信したとき)は1。
    受信バッファーが空のときは0。
  • TXCnビット(USART TX Complete n)
    フレーム全体が送り出されて送信バッファーが空のときは1。
    送信完了割り込みが実行されたときは0。
  • UDREnビット(USART Data Register Empty n)
    送受バッファーが空のときは1。
    送受バッファーが空でないときは0。
  • FEnビット(Frame Error n)
    受信バッファー内の次の文字の最初のストップビットが0のとき(フレームエラーのとき)は1。
  • DORnビット(Data OverRun n)
    受信バッファーが満杯で、かつ新たな文字が受信シフトレジスタに待っていて、かつ新たなスタートビットが検出されたとき(データオーバーランのとき)は1。
  • UPEnビット(USART Parity Error n)
    パリティエラーがあるときは1。
  • U2Xnビット(Double the USART Transmission Speed n)
    非同期動作時のみ有効。
    1を書き込むと、非同期通信の転送速度が倍になる。
  • MPCMnビット(Multi-processor Communication Mode n)
    1を書き込むと、マルチプロセッサー通信モードが有効化されるため、アドレス情報を含まない受信フレームは無視される。送信には影響しない。

UCSRnB (USART Control and Status Register B n)

f:id:ti-nspire:20190411123602p:plain:w700

  • RXCIEnビット(RX Complete Interupt Enable n)
  • TXCIEnビット(TX Complete Interupt Enable n)
  • UDRIEnビット(USART Data Register Empy Interrupt Enable n)
  • RXENnビット(Receiver Enable n)
    1を書き込むと、シリアル受信ができるようになる。
  • TXENnビット(Transmitter n)
    1を書き込むと、シリアル送信ができるようになる。
  • UCSZn2ビット(Character Size n)
    UCSRnCレジスタのUCSZn0ビット、UCSZn1ビットと組み合わせて、1フレームのデータビット数を設定する。
    f:id:ti-nspire:20190411125443p:plain:w700
  • RXB8nビット(Receive Data Bit 8 n)
    データビット数を9に設定したときの9番目の受信データビット(ビット[8])。
  • TXB8nビット(Transmit Data Bit 8 n)
    データビット数を9に設定したときの9番目の送信データビット(ビット[8])。

UCSRnC (USART Control and Status Register n C)

f:id:ti-nspire:20190411125952p:plain:w700

  • UMSELn1:0ビット (USART Mode Select)
    この2ビットでUSARTの動作モードを選択する。
    f:id:ti-nspire:20190411130212p:plain:w700
  • UPMn1:0ビット(Parity Mode)
    この2ビットで、パリティの有効化・無効化とパリティのタイプとを設定する。
    f:id:ti-nspire:20190411131448p:plain:w700
  • USBSnビット(Stop Bit Select)
    ストップビットの数を設定する。
    0を書き込むと1ビット。
    1を書き込むと2ビット。
  • UCSZn1:0ビット(Character Size n)
    UCSRnBレジスタのUCSZn2ビットと組み合わせて、1フレームのデータビット数を設定する。
    f:id:ti-nspire:20190411131956p:plain:w700
  • UCPOLnビット(Clock Polarity)
    同期モード時のみ使う。
    非同期モードの使用時は、このビットを0にする。
    0のときは、同期クロックの立ち上がりで送信データが変化し、同期クロックの立ち下がりで受信データが取り込まれる。
    1のときは、同期クロックの立ち下がりで送信データが変化し、同期クロックの立ち上がりで受信データが取り込まれる。
  • UBRRnLビット、UBRRnHビット (USART Baud Rate Registers)
    f:id:ti-nspire:20190411132709p:plain:w700
    下式で求めた12ビット値でボーレートを設定する。
    f:id:ti-nspire:20190411133105p:plain:w700