STM32G0 - USART
Universal Synchronous/Asynchronous Receiver/Transmitterインタフェース
レビジョン 1.0

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

1

概要
STM32G0

USART
USART
USART
USART

4 x USART

2UART
SPIマスタ／スレーブ
スマートカード
IrDA SIR
LIN
Modbusアプリケーション側の利点• 多目的な通信ペリフェラル• シンプルなハードウェア、必要なピン数が少ない• 低消費電力モードからのウェイクアップ• 送信FIFOと受信FIFO、STOPモードで送受信可能

USART は非常に柔軟性の高いシリアルインタフェースであり、次をサポートします。
• 非同期 UART 通信• SPI （シリアルペリフェラルインタフェース）マスタ／スレーブモード• スマートカード ISO 7816 通信• irDA シリアル赤外線通信• LIN （Local Interconnect Network）モード
また、Modbus 通信実装時に役立つ機能も提供します。
USART を利用するアプリケーションにとって、デバイス間を、少ないピン数で簡単で安価な方法で接続できるという利点があります。
また、USART ペリフェラルは、低消費電力モードで動作します。
送信 FIFO／受信 FIFO を備え、STOP モードで送信と受信を実行できます。

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 の 2 つのFIFO を備えています。

また、CTS （Clear To Send）信号と RTS （Request To Send）信号を使用する基本的な RS-232 フロー制御を使用するオプションもあります。
RS-485 DE （Driver Enable）信号もサポートされています。
USART はデュアルクロックドメインをサポートし、STOP モードからのウェイクアップおよびペリフェラルクロック（PCLK）に依存しないボーレートプログラミングを実現できます。
このため、通信を中断しないで、ペリフェラルクロックをコアクロックに合わせて減速することもできます。
3

主な機能（続き）

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

LINモード同期モード（マスタモード）
IrDA SIRエンコーダ
スマートカード（ISO/IEC 7816 T=0/T=1プロトコル）
Modbus/RTUおよびModbus/ASCIIを実装するための基本機能

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

4

ブロック図クロック制御RCC_CCIPRSYSCLK
HSI16

usart_ker_ck

LSE
PCLK

USART_PRESC
1～256

usart_ker_ck_pres

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

データ制御
&FIFO

5

CK

Tx
Rx

nRTS/DE

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

レジスタ

APB バス

スライドに USART のブロック図を示します。
USART クロックソース（usart_ker_ck）は、ペリフェラルクロック（APB ク
ロック PCK）、SYSCLK、高速内部 16 MHz オシレータ（HSI16）、低速外部オシレータ（LSE）など、さまざまなソースから選択できます。
USART クロックソースは、USART_PRESC レジスタのプログラム可能な係数（1～256 の範囲）により分周されます。
Tx ピンと Rx ピンは、データ送信とデータ受信に使用されます。
nCTS ピンと nRTS ピンは、RS-232 ハードウェアフロー制御に使用されます。
DE （Driver Enable）ピンは、nRTS と同じ I/O で使用でき、RS-485モードで使用されます。
クロック出力（CK）には、次の 2 つの目的があります。
 USART が同期マスタ／スレーブモードで使用されるとき、スレーブデバイスに供給されるクロックは、CK ピンで出力／入力されます。
 USART がスマートカードモードで使用されるとき、カードに供給されるクロックは、CK ピンで出力されます。
NSS 信号と nCTS 信号は同じピンを共有することに注意してください。
 NSS は、同期スレーブモードでデバイスに適用されるスレーブ選択入力です。

5

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

6

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

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

Rx
Tx
Rx シフトレジスタ

RxFIFO またはバッファ

usart_pclk

USART レジスタ

Tx シフトレジスタ

nRTS/DE

HW フロー
制御

nCTS/NSS

TxFIFO またはバッファ

APB スレーブ
インタフェース

APB

IRQ
インタフェース

usart_it
usart_wkup

DMA
インタフェース

usart_tx_dma
usart_rx_dma

usart_pclk クロックドメイン

USART は、柔軟性の高いクロック制御スキームを備えています。
レジスタは APB バス経由でアクセスされ、カーネルは APB ク
ロックから独立している usart_ker_ck （プリスケールあり／なし）でクロックを供給されます。
クロックドメイン間でデータを渡すために、8 データ FIFO または単一データバッファのどちらかが使用されます。
USART ブロックは、APB スレーブであり、DMA リクエストを使用してメモリバッファとの間でデータを転送します。
TX ピンと RX ピンの機能はスワップ可能です。これにより、別の UART へのクロスワイヤ接続の場合に動作できます。

6オーバーサンプリング

7

ユーザ設定可能なさまざまなオーバーサンプリング技術• オーバーサンプリングの選択は、速度とフレーミング許容誤差に影響する
8倍のオーバーサンプリング16倍のオーバーサンプリング

利点

最大速度usart_ker_ck/8を達成

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

欠点

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

最大速度がusart_ker_ck/16に制限• 最大ボーレートは選択されているクロックとオーバーサンプリングに依存する• クロックソースが 64MHz、8倍のオーバーサンプリングが設定されている場合は8Mボー

USART レシーバは有効な受信データとノイズを区別して、データを復旧するユーザ設定可能なさまざまなオーバーサンプリング技術を実装しています。
これにより、最大通信速度とノイズ／クロック精度の耐性の間でトレードオフができます。
8 倍のオーバーサンプリングを選択すると、通信を高速化（最大 usart_ker_ck_pres/8）できます。usart_ker_ck_pres はUSART クロックソース周波数です。この場合、クロック偏差に対するレシーバの最大許容誤差は減少します。
クロック偏差に対するレシーバの許容誤差を増やすには、16倍のオーバーサンプリング（OVER8=0）を選択します。この場合、最大速度は usart_ker_ck_pres/16 に制限されます。
クロックソースが 64 MHz、8 倍のオーバーサンプリングが設定されている場合、達成できる最大ボーレートは 8 M ボーです。
他のクロックソースを選択したり、オーバーサンプリング比を大きくした場合は、最大速度が制限されます。
7データ･フォーマット - 非同期モード

8

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

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

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

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

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

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

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

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

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

ストップ･ビット9

次のスタート･ビット

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

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

前のスライドで説明したのは標準フレームです。
このスライドは、1 ストップビットを含めて設定されている 8 ビッ
トデータフレームの例を示します。
アイドルキャラクタは、フレーム全体が“1”であることとして解釈されます（“1”の数にはストップビットの数が含まれる）。
ブレークキャラクタは、フレーム周期分の“0”を受信したときに解釈されます。ブレークフレームの最後に 2 ストップビットが挿入されます。

9

全二重／半二重モード

10

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

USART2

USART1
Tx

Rx

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 を設定する必要があることを意味します。

10

R232ハードウェアフロー制御

11

データ･アンダーラン／オーバーランを避けるためのハードウェア･ハンドシェイク• RS-232ハードウェアフロー制御• RTS（Request To Send）出力のアサート
は、レシーバでデータの受信準備ができていることを意味する

USART2

USART1• CTS（Clear To Send）入力のアサートは、トランスミッタが通信を続行できることを意
味する

Tx 回路

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

Rx 回路

Tx

Rx

nCTS

nRTS

Rx

Tx

nRTS

nCTS

Rx 回路

Tx 回路

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

11

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

12RS485ハードウェア制御モード• RS485ハードウェア制御モードでは、マスタが方向信号を生成してトランシーバ（物理層 = PHY）を制御する必要がある• この信号は、送信モードまたは受信モードのどちらで動作する必要があるのかをPHYに通知する• DE（Driver Enable）ピンを使用して、外部RS-485バスドライバを有効化する• DE信号とnRTS信号を同じピンで使用できる

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

12

マルチプロセッサ通信

13

複数のデバイス間の通信• マルチプロセッサ通信では、メッセージの本来の受信者のみがメッセージを能動的に受信することが望まれます。
• アドレス指定されていないデバイスはミュート･モードにされる• ミュート･モードは次の2つの方法で制御できる• アイドル･ライン検出• アドレス･マーク検出

複数のプロセッサ間の通信を単純化するために、USART は、マルチプロセッサモードをサポートします。
マルチプロセッサ通信では、メッセージの本来の受信者のみがメッセージを能動的に受信することが望まれます。
アドレス指定されていないデバイスはミュートモードにされます。
USART は、次のどちらかの方法を使用して、ミュートモードを開始または終了します。
• アイドルライン検出• アドレスマーク検出13

同期モード

14

USARTはSPIマスタ／スレーブとして使用される• 全二重または単方向の同期通信モード：
••
•
•
•
•
•

SPIマスタ／スレーブモード
クロックの極性（CPOL）と位相（CPHA）をプログラム可能
データ順序をプログラム可能（MSBファースト／LSBファースト）CKピンにクロックを出力／入力
スタート･ビットとストップ･ビットの間にクロック･パルスなし
送信アンダーラン･エラー（SPIスレーブ･モードのみ）
NSS管理（ソフトウェアまたはハードウェアによる管理）（SPIスレーブ･モードのみ）

スレーブマスタCK

USART

SCK

マスタ

スレーブ
CK

SCK

Rx

MISO

Rx

MOSI

Tx

MOSI

Tx

MISO

NSS

NSS

NSS

SPI

USART

SPI

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

14

ISO/IEC 7816モード

15

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

USARTTx

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

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

15

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

16

赤外線ワイヤレス接続用のUSARTインタフェース• 半二重通信

USART• USARTがやり取りするデータはNRZ（Non Returnto Zero）フォーマットで表現される• IrDAではRZI（Return to Zero Inverted）フォーマットを使用する必要がある• 出力信号はUSART内部でSIR Txエンコーダにより変調される。

SIR 送信
エンコーダ

IrDA_OUTSIR 受信デコーダ

IrDA_IN• 同様に、入力信号はSIR Rxデコーダで復調される。

• 最大ビットレートは115.2Kbits/s

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

自動ボーレート検出

17

自動ボーレート設定 - USARTレシーバ• USARTは、1キャラクタを受信することで自動的にボーレートを決定できる

1スタートビット• 受信するキャラクタ：0 から 1 への遷移
1

• “1”のビットで始まる任意のキャラクタ• パターン10xxで始まる任意のキャラクタ

ストップビット

0スタートビット• 0x7F

11ストップビット

11

1

11

• 0x55
スタートビット

1スタートビット

10100

ストップビット0

ストップビット

10

USART レシーバは、1 キャラクタを受信することでボーレートを検出して自動的に設定できます。
受信するキャラクタ：• “1”のビットで始まる任意のキャラクタ。この場合、USART はスタートビットの継続時間を測定します（立ち下がりエッジから立ち上がりエッジまで）。
• パターン 10xx で始まる任意のキャラクタ。この場合、USART はスタートビットと最初のデータビットの継続時間を測定します。信号の立ち上がり立ち下がりが遅い場合の精度を高めるために、継続時間は立ち下がりエッジから立ち下がりエッジまでを測定します。
• 0x7F キャラクタフレーム。この場合、ボーレートは、最初はスタートビットの終了時に更新され、次にビット 6 の終了時に更新されます。
• 0x55 キャラクタフレーム。この場合、ボーレートは、最初はスタートビットの終了時に更新され、次にビット 0 の終了時に更新され、最後にビット 6 の終了時に更新されます。並行して、RX ラインの電圧レベルの変化のたびに別のチェックが行われます。
17

レシーバ･タイムアウト

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

RX ライン

フレーム 1

フレーム 2

フレーム 3

フレーム N
レシーバ･タイムアウト･イベントが通知される• USART レシーバ･タイムアウト･カウンタがカウントを始めるタイミング• 1または1.5ストップ･ビットが設定されている場合は1番目のストップ･ビットの終了時• 2ストップ･ビットが設定されている場合は2番目のストップ･ビットの終了時• 0.5ストップ･ビットが設定されている場合はストップ･ビットの開始時

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

18送信FIFOと受信FIFO

19

STOPモードでも送信／受信• FIFOモードはソフトウェアにより有効化／無効化する• 送信FIFO（TXFIFO）と受信FIFO（RXFIFO）• TXFIFOとRXFIFOのサイズは8 データ• FIFOモードはIrDAモードとLINモードでは使用できない• FIFOはカーネル･クロックド･メイン内にあり  STOPモードでも受信または送信できる• 割込みリクエストをアサートするために調整可能なTXFIFOとRXFIFOの閾値

USART は、FIFO モードで動作できます。FIFO モードは、ソフトウェアにより有効化／無効化します。デフォルトでは有効です。
USART は、送信 FIFO （TXFIFO）と受信 FIFO （RXFIFO）を備えています。それぞれサイズは 8 データです。
IrDA モードと LIN モードが使用されている場合、FIFO モードはサポートされません。
TXFIFO と RXFIFO がカーネルクロックからクロックを供給される場合、STOP モードでもデータを送信／受信できます。
TXFIFO と RXFIFO の閾値を設定できます。これらは主に、STOP モードからウェイクアップする際のアンダーラン／オーバーラン問題を回避するために使用されます。

19

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

20• USARTクロックソースが次のどちらかである場合、USARTはマイクロコントローラをSTOPモードからウェイクアップできる
• HSI
• LSE

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

USART クロックソースが HSI または LSE のどちらかのクロックである場合、USART はマイクロコントローラを STOP モードからウェイクアップできます。
使用できるウェイクアップソース：- スタートビット、アドレス一致、または受信データのいずれかによりトリガされる特定のウェイクアップイベント- FIFO 管理が無効な場合の RXNE 割込み- FIFO 管理が有効な場合の FIFO イベント割込み- 受信 FIFO フル割込み- 送信 FIFO エンプティ割込み- 受信 FIFO 閾値割込み- 送信 FIFO 閾値割込み20割込み
割込みイベント説明

21

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

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

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

なし

送信完了

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

なし

CTS

nCTS入力がトグルしたときにセットされるなし

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

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

アイドル･ライン

アイドル･ラインが検出されたときにセットされるなし

キャラクタ一致

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

レシーバ･タイムアウト

Rx ラインでアクティビティがない時間がプログラムされているタ
イムアウトに達したときにセットされるなし

ガード時間前に送信完了

このフラグは、フレーム送信終了後およびカードからNACKを受信しなかった場合にのみセットされる（ISO/IEC 7816モード）

なし

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

21

割込み
割込みイベント説明

22

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

LIN ブレーク

LIN ブレークフレームが検出されたときにセットされるなし

ブロック終了ブロック全体を受信したときにセットされるなし

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

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

送信FIFOノットフル

送信FIFOがフルでないときにセットされるなし

送信FIFOエンプティ

送信FIFOが空のときにセットされるあり

送信FIFO閾値到達

プログラムされている閾値に達するとセットされるあり

受信FIFOノットエンプティ受信FIFOが空でないときにセットされるあり

受信FIFOフル

受信FIFOがフルのときにセットされるあり

受信FIFO閾値到達

プログラムされている閾値に達するとセットされるあり

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

22

エラー割込み
割込みイベント説明

23

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

オーバーラン･エラー

オーバーラン･エラーが発生したときにセットされるなし

パリティ･エラー

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

フレーミング･エラー

フレーミング･エラーが発生したときにセットされるなし

ノイズ･エラー

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

自動ボーレート･エラー

ボーレート測定が失敗したときにセットされるなし

アンダーラン･エラー

同期スレーブ･モードでアンダーラン･エラーが発生したときにセットされるなし

さまざまなエラーフラグが生成される可能性があります。
• オーバーランエラーフラグは、オーバーランエラーが発生したときにセットされます。
• パリティエラーフラグは、パリティエラーが発生したときにセットされます。
• フレーミングエラーフラグは、フレーミングエラーが発生したときにセットされます。
• ノイズエラーフラグは、受信フレームでノイズが検出されたときにセットされます。
• 自動ボーレートエラーフラグは、ボーレート測定が失敗したときにセットされます。
• アンダーランエラーフラグは、同期スレーブモードでアンダーランエラーが発生したときにセットされます。

23

DMAイベントの処理

24• USARTは、DMAを使用して連続通信を実行できる• RxバッファとTxバッファに対するDMAリクエストは、それぞれ独立して生成できる
DMAリクエストは以下によってトリガされる• FIFO管理が無効な場合、送信データ･レジスタ･エンプティおよび受信データレジスタフル• FIFO管理が有効な場合、送信FIFOノットフルおよび受信FIFOノットエンプティ

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

24

低消費電力モード
モード

25

説明

RUN
低消費電力RUN

アクティブ

SLEEP
低消費電力SLEEP

アクティブ
ペリフェラル割込みによって、デバイスはSLEEPモードを終了する

STOP 0STOP 1

USARTレジスタの内容は保持される
USARTクロックがHSIまたはLSEに設定されている場合、USARTはマイクロコントローラをSTOPモードからウェイクアップできる

STANDBY
SHUTDOWN

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

USART ペリフェラルは、RUN モード、SLEEP モード、および各低消費電力モードでアクティブです。USART 割込みによって、デバイスは SLEEP／低消費電力 SLEEP モードを終了します。
USART クロックが HSI または LSE に設定されている場合、
USART はマイクロコントローラを STOP 0/STOP 1 モードからウェイクアップできます。
STANDBY モードと SHUTDOWN モードでは、ペリフェラルはパワーダウン状態になり、STANDBY モードと SHUTDOWNモードを終了した後に再初期化する必要があります。

25

STM32G0 USART/LPUARTの機能
USART の機能

USART1/2

USART3/4

LPUART

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

xxx

マルチプロセッサ通信xxx

同期モード（スレーブ／マスタ）xx-

スマートカード･モード

x

-

-

単線半二重通信xx

x

Ir SIR ENDEC

x

-

-

LIN モードx--

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

x

-

x

レシーバ･タイムアウト

x

-

-

自動ボーレート検出x--

ドライバ･イネーブル

x

x

x

26

7、8、および9ビット

データ長

Tx/Rx FIFO

X

-

x

Tx/Rx FIFOサイズ（バイト）8-8スライドの表に、4 つの USART と LPUART の比較を示します。
LPUART では、次の機能はサポートされません。
• 同期モード• IrDA 通信• LIN モード26

STM32F0 USARTとSTM32G0 USARTの比較

27• STM32G0 USARTはSTM32F0 USARTと同等の機能を備え、さらに次の機能が追加されている• クロック･プリスケーラ• SPIスレーブ･モード• 2つのFIFO：RXFIFOおよびTXFIFO

このスライドは、STM32G0 の STM32F0 に対する拡張機能を示します。

27

関連ペリフェラル

28• 次のペリフェラルにリンクされているペリフェラルトレーニングを参照• GPIO （オルタネート機能設定）• リセットおよびクロックコントローラ（RCC）• 電源コントローラ（PWR）• 割込み（NVIC および EXTI）• ダイレクトメモリアクセス（DMA）コントローラ

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

28