STM32G4 – USART
Universal Synchronous/Asynchronous Receiver/Transmitterインタフェース

1.0版

こんにちは。STM32 Universal Synchronous/Asynchronous
Receiver/Transmitterインタフェースのプレゼンテーションへようこそ。
ここでは、組込みシステムのシリアル通信に広く使用されている、USARTインタフェースの主な機能について説明します。

1

概要
STM32G4
USART
USART
USART

3xUSART

2

UART
SPIマスタ/スレーブ
スマートカード
IrDA SIR
LIN
ModbusUSART
UART

2xUART

アプリケーション側の利点• 多目的な通信ペリフェラル• 数本のピンしか必要としないシンプルなハードウェア• 低電力モードからのウェイクアップ• 送受信FIFO、STOPモードでの送受信が可能

STM32G4は3つのユニバーサル同期/非同期受信トランスミッタ（USART）および2つのユニバーサル非同期受信トランスミッタ（UART）を内蔵しています。
USARTは非常に柔軟性の高いシリアルインタフェースであり、以下をサポートします。
• 非同期UART通信• SPI（シリアルペリフェラルインタフェース）マスタモード• LIN（ローカル相互接続ネットワーク）モード• スマートカードISO 7816通信• irDAシリアル赤外線通信• LIN（local interconnect network）モード
また、Modbus通信を実装する際に役立つ特定の機能も提供します。
UARTは、同期プロトコルのサポートを除き、USARTと同じ機能を実装します。SPIとスマートカード
USARTを利用するアプリケーションは、少数のピンしか必要としない容易で安価なデバイス間の接続という利点を活用できます。
さらに、USARTペリフェラルは、低電力モードで機能します。送受信
FIFOを備えているため、STOPモードでの送受信が可能です。

2

• 完全にプログラム可能なシリアル・インタフェース

主な機能（1/2）

3• データは、7、8、または9ビット•••••

偶数、奇数、パリティなし
0.5、1、1.5、および2ストップ･ビット
データ順をプログラム可能（MSBファースト/LSBファースト）プログラム可能なボーレート･ジェネレータ
16または8倍で設定可能なオーバーサンプリング方法• データ送信および受信用の2つの内部FIFO• RS-232およびRS-485ハードウェア･フロー制御をサポート• デュアルクロック･ドメイン可能：• UART機能と低電力モードからのウェイクアップ• PCLKの変更から独立したボーレート･プログラミング

USARTは詳細にプログラム可能なシリアルインタフェースであり、以下の設定可能なパラメータが特長です。
• データ長• パリティ
• ストップビットの数• データ順序• ボーレートジェネレータ
• 8または16倍で設定可能なオーバーサンプリングモード
USARTはFIFOモードで動作でき、送信FIFOと受信FIFOを備えています。
また、CTS（Clear To Send）信号とRTS（Request To Send）信号を用いた基本的なRS-232フロー制御を使用することもできます。
RS-485 DE（Driver Enable）信号もサポートされます。
USARTはデュアルクロックドメインをサポートするため、STOPモードからのウェイクアップと、ペリフェラルクロック（PCLK）に依存しないボーレートプログラミングが可能です。
このため、通信を中断せずに、ペリフェラルクロックをコアクロックに合わせて減速できます。

3

主な機能（2/2）

4• マルチプロセッサ通信• 単線半二重通信• 自動ボーレート検出• レシーバ･タイムアウト機能• 以下もサポート• LINモード••••

同期モード（マスタモード）
IrDA SIRエンコーダ･デコーダ
スマートカード（ISO/IEC7816 T=0およびT=1プロトコル）
Modbus/RTUおよびModbus/アスキー･プロトコルを実装するための基本

USARTはマルチプロセッサモードが特長であり、これにより、USARTはアドレス指定されていないときにはアイドル状態のままです。
全二重通信のほかに、単線半二重モードもサポートされます。
USARTは、ほかにも、自動ボーレート検出、レシーバタイムアウトなど多くの機能を備え、いくつかのモードをサポートします。これらは、このプレゼンテーションで後述します。

4

STM32G4 USART/UART/LPUART機能
USART1/2/3

UART4/5

LPUART

モデムのハードウェア･フロー制御

xxx

マルチプロセッサ通信xxx

同期モード（スレーブ/マスタ）x--スマートカード･モード

x--

単線半二重通信xx

x

IrDA SIR ENDEC

xx-LINモードxx-

デュアルクロック･ドメインとSTOPモードからのウェイク
アップ

xxx

レシーバ･タイムアウト

xx-

Modbus通信xx-

自動ボーレート検出xx-

ドライバの有効xxx

USART機能

7、8、9ビット

データ長
TX/RX FIFO
TX/RX FIFOサイズ（バイト）5xxx8

この表では、3つのUSART、2つのUART、およびLPUARTの違いも示しています。
UARTは以下をサポートしていません。
• 同期モードとスマートカードモード
LPUARTは以下をサポートしていません。
• 同期モード• スマートカードモード• irDA通信• LINモード• モドバス通信

5ブロック図
クロックコントロール

RCC_CCIPRSYSCLK
HSI16

usart_ker_ck

LSE
PCLK

USART_PSC
1-256usart_ker_ck_pres

USART_BRR
1-65536とオーバーサンプ
リング

データコントロール
&FIFO

6CK

Tx
Rx

nRTS/DE

ハードウェア･フロー制御
nCTS/NSS

usart_pclk

レジスタ

APBバス

これはLPUARTブロック図です。
LPUARTクロック（lpuart_ker_ck）は、ペリフェラルクロック（APBクロック）、システムクロック、高速内蔵RCオシレータ（HSI16）、低速外付け32.768kHzクリスタルオシレータ（LSE）など、複数のソースから選択できます。
LPUARTクロックソースは、1~256の範囲のLPUART_PSCレジスタでプログラム可能な係数で分周されます。
TxおよびRxピンは、データ送信とデータ受信に使用されます。
nCTSおよびnRTSピンは、RS-232ハードウェアフロー制御に使用されます。
ドライバイネーブル（DE）信号は、nRTSと同じI/Oで使用でき、RS-485モードで使用されます。
クロック出力(CK)は2つあります。
 USARTが同期マスタ/スレーブモードで使用される場合、スレーブ
デバイスに提供されるクロックはCKピンに出力/入力されます。
 USARTをスマートカードモードで使用する場合、カードに提供されたクロックはCKピンに出力されます。
NSS信号とnCTS信号は同じピンを共有します。
 NSSは、同期スレーブモードでデバイスに適用されるスレーブ選択入力です。
6

デュアルクロック･ドメイン

7

PCLK再プログラミングから独立したボーレート･プログラミング
usart_ker_ckクロック･ドメイン
Rxusart_ker_ck

ボーレート･ジェネレータ
オーバーサンプリング

Tx
Rxシフト･レジスタ

RxFIFOまたはバッファTxシフト･レジスタ

USARTレジスタ

nCTS/NSS

TxFIFOまたはバッファAPBスレーブ
インタフェース
usart_pclk

nRTS/DE

HW フロー
コントロール

APB

IRQ
インタフェース

usart_it

DMA
インタフェース

usart_tx_dma

usart_wkup

usart_rx_dma

usart_pclkクロック･ドメイン

LPUARTは、柔軟性の高いクロック制御スキームを備えています。
レジスタはAPBバスを介してアクセスされ、カーネルはAPBクロッ
クから独立したlpuart_ker_ck（プリスケールされているか、または、クロックされていない）でクロックされます。
あるクロック・ドメインからもう一方のクロック・ドメインにデータを渡すために、8データFIFOが使用されるか、シングル・データ・バッファが使用されます。
LPUARTブロックは、メモリバッファとの間でデータを転送する
DMA要求に依存できるAPBスレーブです。
TXピンとRXピンの機能を交換できます。これにより、別のUARTとの有線接続の場合に動作します。

7

オーバーサンプリング

8

ユーザが設定可能なさまざまなオーバーサンプリング手法• オーバーサンプリングの選択は、速度とフレーミングの許容度に影響
8オーバーサンプリング

16オーバーサンプリング

利点

最高速度は
usart_ker_ck_pres/8

クロック偏差に対する最大レシーバ許容値が増加欠点

クロック偏差に対する最大レシ
ーバ許容値が減少

最高速度はusart_ker_ck_pres/16に制限• 最大ボーレートは、選択したクロックとオーバーサンプリングに依存• クロックソースが170MHz、オーバーサンプリングが8倍で設定されたとき
21.25メガボー

USARTレシーバは、有効な着信データとノイズを区別することによってデータを復元する、ユーザ設定可能なさまざまなオーバーサンプリング技法を実装しています。
これにより、最大通信速度とノイズ/クロック精度の耐性の間でトレードオフができます。
8倍のオーバーサンプリングを選択すると、より高い速度（最大でusart_ker_ck_pres/8）を達成できます。ここで、usart_ker_ck_pres
はUSARTクロックソース周波数です。この場合、クロック偏差に対するレシーバの最大トレランスは減少します。
16倍のオーバーサンプリングを選択すると（OVER8=0）、クロック偏差に対するレシーバの許容誤差が増加します。この場合、最大速度はusart_ker_ck_pres/16に制限されます。
クロックソースが170MHzで、8倍のオーバーサンプリングが設定されているとき、達成できる最大ボーレートは21.25メガボーです。
他のクロックソースでより高いオーバーサンプリング比の場合、最大速度が制限されます。

8データフォーマット – 非同期モード

9

サポートされるデータ長：7、8、および9ビット
7ビット･データ

スタート･ビット可能なパリティ･ビット

ストップ･ビット（0.5、1、1.5、または2）b0 b1 b2 b3 b4 b5 b6
スタート･ビット可能なパリティ･ビット

ストップ･ビット（0.5、1、1.5、または2）8ビット･データb0 b1 b2 b3 b4 b5 b6 b7
スタート･ビット可能なパリティ･ビット

ストップ･ビット（0.5、1、1.5、または2）9ビット･データb0 b1 b2 b3 b4 b5 b6 b7 b8

非同期モードで使用されるフレームフォーマットは、一連のデータビットと、同期のためのビットに加えて、オプションでエラーチェックのためのパリティビットで構成されます。
USARTは、7、8、または9ビットデータ長をサポートします。
フレームは1ビットのスタートビットで始まり、ラインは1ビット周期だけローに駆動されます。これがフレームの開始を通知し、同期のために使用されます。
スタートビットの後に、7、8、または9ビットのデータビットが続きます。パリティ制御が有効な場合、パリティビットは最後のデータビットとして送信され、データ長カウントに含まれます。
最後に、いくつかのストップビット（0、1、1.5、または2）があり、ラインはハイに駆動され、フレームを終了します。
データの順序は、最上位ビット優先または最下位ビットファーストシフトでプログラム可能です。

9

アイドル/ブレーク･キャラクタ
スタート･ビット標準フレーム

設定可能パリティ･ビット ストップ･ビット

10

次のスタート･ビット

b0 b1 b2 b3 b4 b5 b6 b7
スタート･ビットアイドル･キャラクタ

2個のストップ･ビット
ブレーク･キャラクタ

標準のフレームは、前のスライドで説明しました。
このスライドは、1ビットのストップビットとともに構成された8ビットのデータフレームの例を示しています。
アイドルキャラクタは、すべてが「1」のフレームとして解釈されます（「1」の数にはストップビットの数が含まれます）。
ブレークキャラクタは、フレーム周期中に「0」を受信することと解釈されます。ブレークフレームの終わりに、2個のストップビットが挿入されます。

10

全二重/半二重モード

11

全二重：二線
半二重：単線• TxおよびRxラインが他方のインタフェースのRxおよびTxラインとそれぞれ接続

USART2

USART1TxRx

Rx

Tx• USART単線半二重プロトコル

全二重• TxラインとRxラインが内部接続

VDD• Txピンは、送信と受信の両方に使用
USART1Tx

R = 10 KΩ

• USART全二重通信：

USART2Tx

半二重

USARTは全二重通信をサポートしています。TxおよびRxラインが他方のインタフェースのRxおよびTxラインとそれぞれ接続されます。
USARTは、単線半二重のプロトコルに従うように設定できます。
この場合、TxラインとRxラインは内部接続されます。
この通信モードでは、Txピンだけが送信と受信の両方に使用されます。
Txピンはデータが送信されないときには常にリリースされるため、アイドルまたは受信モードでの標準I/Oとして機能します。
つまり、Txピンが外部プルアップ付きの代替機能オープンドレインとして設定されるように、I/Oを設定する必要があります。

11

RS-232ハードウェア･フロー制御

12

データ･アンダーラン/オーバーランを避けるためのハードウェア･ハンドシェイク• RS-232ハードウェア･フロー制御• nRTS（Request to Send）出力のアサート
は、レシーバがデータを受け入れる準備ができたことを示す• nCTS（Clear to Send）入力のアサートは、トランスミッタが通信を続行できることを示す

USART1
Tx回路

Rx回路

USART2Tx

RxnCTSnRTS

Rx

TxnRTS

nCTS

Rx回路

Tx回路

• 特に半二重システムで有用

RS-232規格では、nCTS入力とnRTS出力を使用することによって、2つのデバイス間のシリアルデータフローを制御できます。
この2つのラインにより、レシーバとトランスミッタは互いに状態をアラートできます。
このスライドは、このモードで2つのデバイスを接続する方法を示しています。
このアイデアは、半二重通信の場合の欠落またはデータの衝突を防止します。
両方の信号がアクティブローです。

12

RS-485ハードウェア･フロー制御

13

ハードウェア･ハンドシェイク• マスタが方向信号を生成してトランシーバ（物理層（PHY））を制御する必要がある
半二重システムで有用• この信号は物理層に送信または受信モードで動作しなければならないかどうかを通知• DE（Driver Enable）ピンを使用して、外部RS-485バスドライバを有効化• DEおよびnRTS信号は、同じピンで使用可能

RS-485のようなシリアル半二重通信プロトコルでは、マスタは方向信号を生成してトランシーバ（物理層）を制御する必要があります。
この信号は物理層に送信または受信モードで動作しなければならないかどうかを通知します。
RS-485モードでは、外部トランシーバ制御を有効にするために、制御ライン「ドライバイネーブル」が使用されます。
DE制御ラインはnRTSとピンを共有します。

13

マルチプロセッサ通信

14

複数のデバイス間の通信• マルチプロセッサ通信では、目的のメッセージ受信者だけがメッセージを積極的に受信は禁止• アドレス指定されていないデバイスをミュート･モードにすることが可能• ミュート･モードを制御する2つの方法• アイドルライン検出• アドレスマーク検出

複数のプロセッサ間の通信を単純化するために、LPUARTは特殊なマルチプロセッサモードをサポートします。
マルチプロセッサ通信では、目的のメッセージ受信者だけがメッセージを積極的に受信することが望ましいです。
アドレス指定されていないデバイスをミュートモードにするには、2つの方法があります。
アイドルラインまたはアドレスマークです。
LPUARTがミュートモードを有効または無効にするには、2つの方法のいずれかを使用します。
アイドルライン検出

アドレスマーク検出

14

同期モード

15

SPIマスタ/スレーブとして使用されるUSART• 全二重またはシンプレックス同期通信モード：• SPIマスタ/スレーブ･モード• プログラム可能なクロックの極性（CPOL）と位相（CPHA）• データ順をプログラム可能（MSBファースト/LSBファースト）• CKピンでのクロック出力/入力• スタートビットとストップビット間にクロックパルスなし• 送信アンダーラン･エラー（SPIスレーブ･モードのみ）• NSS管理（ソフトウェアまたはハードウェア管理）（SPIスレーブ･モードのみ）

スレーブ

マスタ

USART

CK

SCK

Rx
Tx

マスタ

スレーブ
CK

SCK

MISO

Rx

MOSI

MOSI

Tx

MISO

USART NSS

NSS

NSS

SPI

SPI

UARTとは異なり、USARTは同期通信も行うことができます。
SPIとしてマスタまたはスレーブモードで動作でき、プログラム可能なクロック極性（CPOL）および位相（CPHA）と、プログラム可能なデータ順（MSBまたはLSBファースト）を備えています。
クロックはCKピンで出力（マスタモードの場合）または入力（スレーブモードの場合）されます。
スタートビットとストップビット間には、クロックパルスは供給されません。
USARTがSPIスレーブモードで設定されているときには、送信アンダーランエラーとNSSハードウェアまたはソフトウェア管理をサポートします。

15

ISO/IEC7816モード

16スマートカードとセキュリティ･アクセス･モジュール用のUSARTインタフェース• 半二重モード• スマートカードへのクロック供給はCKピン• プログラム可能なクロック･プリスケーラにより、幅広いクロック入力を保証

USART

Tx

CK

• ISO/IEC7816T=0およびT=1プロトコルをサポート• ダイレクトとインバースの両方のコンベンションを使用可能

USARTは、半二重通信に基づき、スマートカードモードで使用できます。
クロックはCKピンよりスマートカードに出力されます。
T=0プロトコルをサポートし、多くの機能を備えているため、T=1のサポートも可能です。
ダイレクトとインバースの両方のコンベンションがハードウェアによって直接サポートされます。

16

IrDA SIRエンコーダ･デコーダ

17

赤外線ワイヤレス接続用のUSARTインタフェース• 半二重通信• USARTとやり取りされるデータはNRZ（NonReturn to Zero）フォーマットで表現• IrDAの場合、必要なフォーマットはRZI（Return to Zero Inverted）• SIR Txエンコーダは信号USARTを出る前に変調
同様に、入力信号はSIR Rxデコーダで復調• 最大ビットレートは115.2キロビット/秒• パルス幅は、通常モードで3/16ビット周期

USART
SIR送信
エンコーダ

IrDA_OUT

SIR受信
デコーダ

IrDA_IN

USARTは、半二重通信プロトコルであるIrDA仕様をサポートします。
USARTとやり取りされるデータはNRZ（Non Return to Zero）
フォーマットで表され、信号値はビット周期全体を通じて同じレベルです。
IrDAの場合、必要なフォーマットはRZI（Return to Zero Inverted）
であり、「1」はラインをローに保持することによって通知され、「0」は短いハイパルスによって通知されます。
SIR送信エンコーダは、USARTから出力されるNRZ（Non Returnto Zero）送信ビットストリームを変調します。
SIR受信デコーダは、赤外線検出回路からのRZ（Return to Zero）ビットストリームを復調し、受信したNRZシリアルビットストリームをUSARTに出力します。
USARTは、SIR ENDECについて、最大115.2キロビット/秒のビットレートのみをサポートします。
通常モードでは、送信されるパルス幅はビット周期の3/16として指定されます。

17

自動ボーレート検出

18

自動ボーレート設定 - USARTレシーバ• USARTは、1キャラクタの受信に基づいて、ボーレートを自動的に判断可能

1

スタートビット• 受信されるキャラクタは、次のいずれか：

0から1への遷移

ストップビット

スタートビット0

ストップビット111• 「1」のビットで始まるキャラクタ• 10xxパターンで始まるキャラクタ• 0x7F• 0x551111

10ストップビット

スタートビット
1スタートビット

1010

100 ストップビット

USARTレシーバは、1キャラクタの受信に基づいて、ボーレートを検出し、自動的に設定することができます。
受信されるキャラクタは、次のいずれかです。
1のビットで始まるキャラクタ。この場合、USARTはスタートビットの時間を測定します（立ち下がりエッジから立ち上がりエッジまで）。

10xxパターンで始まるキャラクタ。この場合、USARTはスタートビットと最初のデータビットの時間を測定します。低速な信号傾斜の場合の精度を高めるために、測定は立ち下がりエッジから立ち下がりエッジまでの時間で行われます。

0x7Fキャラクタフレーム。この場合、ボーレートは、最初はスタートビットの終了時に更新され、次にビット6の終了時に更新されます。

0x55キャラクタフレーム。この場合、ボーレートは、最初はスタートビットの終了時に更新され、次にビット0の終了時に更新され、最後にビット6の終了時に更新されます。並行して、RXラインの中間遷移ごとに別のチェックが行われます。
18

レシーバ･タイムアウト

19• USARTレシーバが、プログラムされた時間の間、新しいデータを受信しないとき、これをレシーバ･タイムアウト･イベントによってアプリケーションに通知可能
プログラムされたレシーバ･タイムアウト期間に対応する期間だけ、RXラインはアイドル

RXライン

フレーム1

フレーム2

フレーム3

フレームN
レシーバ･タイムアウトイベントが通知• USARTレシーバ･タイムアウト･カウンタは、次の時点からカウントを開始• 1および1.5ストップ･ビット設定の場合、最初のストップビットの終了から• 2ストップ･ビット設定の場合、2番目のストップ･ビットの終了から• 0.5ストップ･ビット設定の場合、ストップ･ビットの開始から

USARTはレシーバタイムアウト機能をサポートします。
USARTが、プログラムされた時間の間、新しいデータを受信しないときには、レシーバタイムアウトイベントが通知され、有効な場合、割込みが生成されます。
USARTレシーバタイムアウトカウンタは、次の時点からカウントを開始します。
• 1および1.5ストップビット設定の場合、最初のストップビットの終了から。
• 2ストップビット設定の場合、2番目のストップビットの終了から。
• 0.5ストップビット設定の場合、ストップビットの開始から。

19

送信および受信FIFO

20

STOPモード中でも送信/受信• FIFOモードは、ソフトウェアによって有効/無効にされる• 送信FIFO（TXFIFO）と受信FIFO（RXFIFO）• TXFIFOとRXFIFOのサイズは8データ• FIFOモードは、IrDAおよびLINモードでは使用不可• FIFOはカーネル･クロック･ドメインにある  STOPモードでも送受信可能• 割込み要求をアサートするための調整可能なTXFIFOおよびRXFIFO閾値USARTは、ソフトウェアによって有効化／無効化されるFIFOモードで動作できます。デフォルトでは無効です。
USARTは送信FIFO（TXFIFO）と受信FIFO（RXFIFO）を備え、それぞれ8ワードの深さです。
IrDAおよびLINモードが使用されるとき、FIFOモードはサポートされません。
TXFIFOとRXFIFOがカーネルクロックによってクロック供給される
場合、STOPモードでもデータの送信と受信が可能です。
TXFIFOとRXFIFOの閾値を設定することができ、主にSTOPモードからのウェイクアップ時のアンダーラン／オーバーラン問題を回避するために設定されます。

20

STOPモードからのウェイクアップ

21• USARTは、USARTクロック･ソースが以下のとき、MCUをSTOPモードからウェイクアップ可能
• HSI
• LSE

• ウェイクアップのソースは以下のいずれか• 以下によってトリガされる特定のウェイクアップ･イベント:• スタート･ビット• アドレス一致• 受信データ• FIFO管理が無効なときの標準RXNE割込み• FIFO管理が有効なときのFIFOイベント割込み• RXFIFOフル、TXFIFOエンプティ、またはRXFIFO/TXFIFOがプログラムされた閾値に達したとき

USARTは、USARTクロックソースがHSI、LSE、またはCSIクロッ
クのとき、MCUをSTOPモードからウェイクアップできます。
ウェイクアップのソースは以下のいずれかです。
スタートビットまたはアドレス一致または受信データによってトリガされる特定のウェイクアップイベント

FIFO管理が無効なときのRXNE割込み

FIFO管理が有効なときのFIFOイベント割込み：
受信FIFOフル割込み
送信FIFOエンプティ割込み
受信FIFO閾値割込み
送信FIFO閾値割込み

21

割込み（1/2）
割込みイベント説明

22

ウェイクアップ･リクエスト?

送信データレジスタ･エンプティ

送信データ･レジスタが空のときにセット

いいえ

送信完了

データ送信が完了し、データ･レジスタとシフト･レジス
タの両方が空のときにセット

いいえ

CTS

nCTS入力がトグルしたときにセット

いいえ

受信データ･レジスタ･ノットエンプティ

受信データ･レジスタにデータがあるときにセット

はいアイドルラインアイドル･ラインが検出されたときにセット

いいえ

キャラクタ一致

受信データがプログラムされたアドレスに一致したときにセット

いいえ

レシーバ･タイムアウト

プログラムされたタイムアウトに等しい期間、Rxラインでアクティビティがなかった時にセット

いいえ

ガードタイム前の伝送完了

このフラグは、フレーム送信の終了直後に設定され、NACKがカードから受信されていない場合にセット（ISO/IEC7816モード）

いいえ

このスライドと次の2つのスライドでは、割り込みイベントの一覧を示し、その原因を詳しく説明し、これらのイベントをウェイクアップ要求として使用できるかどうかを示します。
いくつかのイベントが割込みを提供できます。
• 送信データレジスタエンプティフラグは、送信データレジスタが空であり、書込み準備ができているときにセットされます。
• 送信完了フラグは、データ送信が完了し、データレジスタとシフトレジスタの両方が空のときにセットされます。
• CTSフラグは、nCTS入力がトグルしたときにセットされます。
• 受信データレジスタノットエンプティフラグは、受信データレジスタにデータがあり、読取り準備ができているときにセットされます。
• アイドルラインフラグは、アイドルラインが検出されたときにセットされます。
• キャラクタ一致フラグは、受信データがプログラムされたアドレスに一致したときにセットされます。
• レシーバライムアウトフラグは、Rxラインで、プログラムされた期間、アクティビティがなかったときにセットされます。
• フレーム送信の終了後、およびカードからNACKが受信されていない場合は、ガード時間前に伝送完了フラグがセットされます。

22

割込み（2/2）
割込みイベント説明

23

ウェイクアップ･リクエスト?

LINブレーク

LINブレーク･フレームが検出されたときにセットいいえ

ブロックの終了

完全なブロックが受信されたときにセットいいえ

STOPモードからのウェイクアップ

ウェイクアップ･イベントが確認されたときにセット

はい

送信FIFOノットフル

送信FIFOがフルでないときにセット

いいえ

送信FIFOエンプティ

送信FIFOが空のときにセット

はい

送信FIFO閾値

プログラムされた閾値に達するとセット

はい受信FIFOノットエンプティ受信FIFOが空でないときにセット

はい

受信FIFOフル

受信FIFOがフルのときにセット

はい

受信FIFO閾値

プログラムされた閾値に達したときにセット

はい

LINブレークフラグは、LINブレークフレームが検出されたときにセットされます。
ブロック終了フラグは、完全なブロックが受信されたときにセットされます。
STOPモードからのウェイクアップフラグは、ウェイクアップイベン
トが確認されたときにセットされます。
送信FIFOノットフルフラグは、送信FIFOがフルでないときにセットされます。
送信FIFOエンプティフラグは、送信FIFOが空のときにセットされます。
送信FIFO閾値フラグは、プログラムされた閾値に達したときにセットされます。
受信FIFOノットエンプティフラグは、受信FIFOが空でないときにセットされます。
受信FIFOフルフラグは、受信FIFOがフルのときにセットされます。
受信FIFO閾値フラグは、プログラムされた閾値に達したときにセットされます。

23

エラー割込み

割込みイベント説明

24

ウェイクアップ･リクエスト?

オーバーラン･エラー

オーバーラン･エラーが発生したときにセットいいえ

パリティ･エラー

パリティ･エラーが発生したときにセット

いいえ

フレーミング･エラー

フレーミング･エラーが発生したときにセットいいえ

ノイズ･エラー

受信フレームでノイズが検出されたときにセットいいえ

自動ボーレート･エラー

ボーレート測定が失敗したときにセットいいえ

アンダーラン･エラー

同期スレーブ･モードでアンダーラン･エラーが発生したときにセットいいえいくつかのエラーフラグが生成されます。
• オーバーランエラーフラグは、オーバーランエラーが発生したときにセットされます。
• パリティエラーフラグは、パリティエラーが発生したときにセットされます。
• フレーミングエラーフラグは、フレーミングエラーが発生したときにセットされます。
• ノイズエラーフラグは、受信フレームでノイズが検出されたときにセットされます。
• 自動ボーレートエラーフラグは、ボーレート測定が失敗したときにセットされます。
• アンダーランエラーフラグは、同期スレーブモードでアンダーランエラーが発生したときにセットされます。

24

DMAイベントの処理

25• USARTはDMAを使用して継続的な通信を行うことが可能• RxバッファとTxバッファのDMAリクエストは個別に生成• DMAリクエストは以下によってトリガ• FIFO管理が無効なとき、送信データ･レジスタ･エンプティおよび受信データ･レジスタ･フル• FIFO管理が有効なとき、送信FIFOノットフルおよび受信FIFOノットエンプティ

DMAリクエストは、FIFO管理が無効なときには、受信バッファノットエンプティまたは送信バッファエンプティフラグがセットされたときに生成されます。
DMAリクエストは、FIFO管理が有効なときには、送信FIFOノットフ
ルおよび受信FIFOノットエンプティフラグがセットされたときにも生成されます。

25低電力モード
モード

26

説明

RUN
低電力RUN

有効SLEEP
低電力SLEEP

有効• ペリフェラル割込みによって、デバイスはSLEEPモードを終了

STOP0
STOP1

USARTレジスタの内容は保持される• USARTクロックがHSIまたはLSEに設定されている場合、USARTはSTOPモードからMCUを起動可能

STANDBY
SHUTDOWN

パワーダウン状態• STANDBYまたはSHUTDOWNモード終了後にペリフェラルを再初期化する必要がある

USARTペリフェラルは、RUNおよび低電力RUN、SLEEPおよび低電力SLEEPモードで有効です。
USART割込みによって、デバイスはSLEEPまたは低電力SLEEPモードから復帰します。
USARTクロックがHSIまたはLSEに設定されている場合、USARTは、STOP0モードとSTOP1モードからMCUをスリープ解除できます。
USART受信はSTOPモードで機能し、スタート、アドレス一致または受信フレームイベントでウェイクアップ割込みを生成します。
STANDBYおよびSHUTDOWNモードでは、ペリフェラルはパワーダウン状態になり、STANDBYまたはSHUTDOWNモードからの復帰後に再初期化する必要があります。

26

関連ペリフェラル

27• 詳細については、このペリフェラルにリンクしている以下のトレーニングを参照してください。
• GPIO（オルタネート機能設定）• リセットおよびクロック･コントローラ（RCC）• 電源コントローラ（PWR）• 割込み（NVICおよびEXTI）• ダイレクト･メモリ･アクセス（DMA）コントローラ

これは、USARTに関連するペリフェラルのリストです。必要な場
合、詳細については、これらのトレーニングを参照してください。
• 汎用入出力（GPIO）• リセットおよびクロックコントローラ• 電源コントローラ• 割込みコントローラ• ダイレクトメモリアクセスコントローラ

27