STM32MP1 – USARTSTM32 ユニバーサル同期／非同期レシーバ／トランスミッタインタフェース
1.0 版

こんにちは、STM32 ユニバーサル同期／非同期レシーバ／トランスミッタインタフェースのこのプレゼンテーションへようこそ。
このプレゼンテーションでは、組込みシステムのシリアル通信で広く使用される USART インタフェースの主な機能を説明します。

1

概要
STM32H7USART2UART
SPI マスタ／スレーブ
スマートカード
IrDA SIR
LIN
Modbusアプリケーション側の利点• 多目的通信ペリフェラル• シンプルなハードウェア、必要なピンはわずか数本• 低電力モードからウェイクアップ• 送信および受信 FIFO、STOP モードで送信および受信する機能

USART は以下をサポートする非常に柔軟性の高いシリアルイ
ンタフェースです：• 非同期 UART 通信• SPI （シリアルペリフェラルインタフェース） マスタモード、および• LIN （Local Interconnection Network） モード
また、ISO/IEC 7816 スマートカードや IrDA デバイスとのインタ
フェース接続もできます。
Modbus 通信を実装するときに役立つ特定の機能も提供します。
USART を利用するアプリケーションは、デバイス間の接続にわずか数ピンしか使用しない簡単で安価な方法からメリットが得られます。
さらに、USART ペリフェラルは低電力モードで機能します。
STOP モードで送信および受信する機能を備えた送信および受信 FIFO も利用できます。

2

重要な機能（1/2）

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

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

重要な機能（2/2）

4• マルチプロセッサ通信• 単線半二重通信• 自動ボーレート検出• レシーバタイムアウト機能• 以下もサポート• LIN モード
• 同期モード（マスタ／スレーブ）• IrDA SIR エンコーダデコーダ• スマートカード（ISO/IEC 7816 T = 0 および T = 1 プロトコル）• Modbus/RTU および Modbus/ASCII プロトコル実装の基本的サポート

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

4ブロック図
クロック制御

RCC_D2CCIP2R

rcc_pclk1/5
pll3_q_ck (*)
pll4_q_ck
hsi_ker_ck
csi_ker_ck

USART_PRESC
usart_ker_ck

USART_BRR
およびオーバーサンプリング

データ制御
&FIFO

5

CKTx

Rx

usart_ker_ck_preshse_ker_cknRTS/DE

ハードウェアフロー制御

usart_pclk(*) USART1 の場合のみ

nCTS/NSSレジスタ
APB バスUSART のブロック図を示します。
USART クロックソース（usart_ker_ck）は、次の複数のソースから選択できます：ペリフェラルクロック（APB クロック ）、PLL4 _q、PLL3_q（USART1 の場合のみ）、高速内部 RC オシレータ、低電力内部オシレータ CSI、または高速外部オシレータ HSE。
USART クロックソースは、USART_PRESC レジスタのプログラ
ム可能な係数で分周できます。
Tx ピンと Rx ピンはデータの送受信に使用されます。
nCTS および nRTS ピンは、RS-232 ハードウェアフロー制御に使用されます。
nRTS と同じ I/O で使用できるドライバイネーブルピン（DE）が、RS-485 モードに使用されます。
同期スレーブモードで使用されるスレーブ選択（NSS）ピンは、nCTS と同じ I/O で使用できます。
クロック出力（SK）には 2 つの目的があります：


USART を同期マスタ／スレーブモードで使用する場合、スレーブデバイスに供給されるクロックが CK ピンの出力／入力となります。

USART をスマートカードモードで使用する場合、カードに供給されるクロックが CK ピンの出力となります。
5デュアルクロックドメイン

6

PCLK 再プログラミングから独立したボーレートプログラミング• 選択可能なクロックソースによる柔軟性の高いクロック供給スキーム• rcc_pclk1/5（デフォルト）• pll3_q_ck (*)• pll4_q_ck• hsi_ker_ck• csi_ker_ck

RCC_D2CCIP2R

rcc_pclk1/2
pll3_q_ck (*)
pll4_q_ck
hsi_ker_ck

USART

USART_PRESC
usart_ker_ck

USART_BRR およびオーバーサンプリング

csi_ker_ck
lse_ker_ck• hse_ker_ck• レジスタへのアクセスは常にペリフェラルのバス速度

usart_pclk

レジスタ(*) USART1 の場合のみ

USART には柔軟性の高いクロック供給スキームがあります。
クロックソースは、ペリフェラルクロック（APB クロック ）、PLL_3_q（USART1 の場合のみ）、PLL4_q、HIS、CSI、またはHSE クロックのいずれかを RCC で選択できます。
USART クロックソースは、USART_PRESC レジスタのプログラム可能な係数で分周できます。
レジスタは APB バスを介してアクセスされ、カーネルは APB ク
ロックから独立した usart_ker_ck（プリスケールの有無を問わず）でクロック供給されます。

6オーバーサンプリング

7

ユーザ設定可能なさまざまなオーバーサンプリング技術• オーバーサンプリングの選択で、速度とフレーミングの許容誤差が変化：
8 倍のオーバーサンプリング

16 倍のオーバーサンプリング

利点

最高速度 usart_ker_ck/8 を達成

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

欠点

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

最高速度が usart_ker_ck/16 に制限• 最大ボーレートは、選択したクロックとオーバーサンプリングに依存： クロックソー
スが 133MHz でオーバーサンプリングが 8 倍に設定されている場合、最大16.625Mbaud

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

クロックソースが 100MHz で、オーバーサンプリングが 8 倍に設定されている場合、達成可能な最大ボーレートは 12.5Mbaud です。
他のクロックソースおよび／またはより高いオーバーサンプリン
グ比では、最大速度が制限されます。

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

8

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

可能なパリティビットストップビット（0.5、1、1.5、または 2）

7bit データb0 b1 b2 b3 b4 b5 b6
スタートビット

可能なパリティビット

ストップビット（0.5、1、1.5、または 2）

8bit データb0 b1 b2 b3 b4 b5 b6 b7
スタートビット

可能なパリティビットストップビット（0.5、1、1.5、または 2）

9bit データb0 b1 b2 b3 b4 b5 b6 b7 b8

非同期モードで使用されるフレームフォーマットは、データビット、それに加えて同期用のビット、およびオプションでエラーチェック用のパリティビットのセットで構成されています。
USART は 7、8または 9bit のデータ長をサポートしています。
フレームは 1 つのスタートビットで始まり、ラインは 1bit の期間はローに駆動されます。これはフレームの開始を知らせるとともに同期にも使用されます。
スタートビットの後には、7、8、または 9bit が続きます。パリティ制御が有効な場合、パリティビットは最後のデータビットとして送信され、データ長のカウントに含まれます。
最後に、ラインがハイに駆動されるいくつかのストップビット（0、1、1.5、または 2）でフレームが終了します。

8アイドル／ブレークキャラクタ
スタートビット

標準フレーム

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

9

次のスタートビット

b0 b1 b2 b3 b4 b5 b6 b7
スタートビット

アイドルキャラクタ

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

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

9全二重／半二重モード

10

全二重：2 線半二重：単線• USART 全二重通信：• Tx および Rx ラインは、それぞれ他のインタフェー
スの Rx および Tx ラインに接続。

USART2

USART1
Tx

Rx

RxTx

• USART 単線半二重プロトコル
全二重• Tx ピンは、送信と受信の両方に使用。

VDD

USART1Tx

R = 10KΩ

• Tx と Rx ラインは内部で接続。

USART2Tx

半二重

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

10

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

11

データのアンダーラン／オーバーランを回避するハードウェアハンドシェイク• RS-232 ハードウェアフロー制御• アサートされた nRTS（Request To Send）
出力は、レシーバがデータ受信の準備ができていることを示す。
• アサートされた nCTS（Clear To Send）入力は、トランスミッタが通信を継続できることを示す。
• 特に半二重システムに有効。

USART2

USART1

Tx 回路

Rx 回路

Tx

Rx

nCTS

nRTS

Rx

Tx

nRTS

nCTS

Rx 回路

Tx 回路

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

11

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

12ハードウェアハンドシェイク• トランシーバ（物理層（PHY））の制御のため、マスタが方向信号を生成する必要がある半二重システムで役立ちます。この信号は、送信または受信モードのどちらで動作する必要があるかを PHY に通知します。
• DE（ドライバイネーブル）ピンを使用して、外部 RS-485 バスドライバを動作。
• DE 信号と nRTS 信号は同じピンを使用。

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

12

マルチプロセッサ通信

13

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

複数のプロセッサ間の通信を簡易化するため、USART はマルチプロセッサモードをサポートしています。
マルチプロセッサ通信では、メッセージの本来の受信者のみがメッセージを能動的に受信することが望ましい状態です。
アドレス指定されていないデバイスはミュートモードになります。
USART は、次の 2 つの方法のいずれかを使用して、ミュートモードへの移行と退出ができます。
• アイドルライン検出• アドレスマーク検出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 では同期通信が可能です。
USART はマスタまたはスレーブモードで SPI として動作し、クロック極性（CPOL）と位相（CPHA）、およびデータ順序についてMSB ファーストか LSB ファーストかをプログラムで設定できます。
クロックは CK ピンで、マスタモードでは出力、スレーブモードでは入力で動作します。スタートビットとストップビットの間にはクロックパルスは供給されません。
USART が SPI スレーブモード設定のとき、USART は送信アン
ダーランエラー、NSSはハードウェアまたはソフトウェア管理でサポートします。

14ISO/IEC 7816 モード

15

スマートカードおよびセキュリティアクセスモジュール向け USART インタフェース• 半二重モード• CK ピンによるスマートカードへのクロック出力• さまざまなクロック入力を保証するプログラ
ム可能なクロックプリスケーラ

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

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

15

IrDA SIR エンコーダデコーダ

16

赤外線ワイヤレス接続用 USART インタフェース• 半二重通信• USART と取り交わすデータは、NRZ（Non Return to Zero）フォーマット
• IrDA の場合、必要なフォーマットは RZI（Return to Zero Inverted）• SIR Tx エンコーダは、信号が USART を離れる前に信号を変調。同様に、入力信号は SIR Rx デコーダーで復調• 最大ビットレートは 115.2Kbits/s• パルス幅の時間は通常モードで3/16bit

USART
SIR 送信エンコーダ

IrDA_OUTSIR 受信デコーダ

IrDA_IN

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

16

自動ボーレート検出

17

自動ボーレートの設定 - UART レシーバ

• USART は、1 つのキャラクタ受信に基づいてボーレートを自動的に決定することができます。

1

スタートビット

スタートビット• 10xx のパターンで始まるキャラクタ• 0x7F• 0x55

ストップビット0

ストップビット1• 受信するキャラクタは以下の通り• 「1」のビットで始まるキャラクタ

0 から 1 への遷移

1

1

1

1

1

1

10 ストップビット

スタートビット1

スタートビット

10

10100 ストップビット

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ストップビット設定では、最初のストップビットの終わりから• 2ストップビット設定では、2 番目のストップビットの終わりから• 0.5ストップビット設定では、ストップビットの最初から

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

18

FIFO

19

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

19

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

20• USART のクロックソースが以下の場合、USART は MCU を STOP モードからウェイクアップ可能：
• HSI
• HSE
• CSI

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

USART は、そのクロックソースが HSI、CSI、または HSE ク
ロックの場合、STOP モードから MCU をウェイクアップできます。

ウェイクアップのソースは以下の通りです：
スタートビット、アドレス一致、または受信データのいずれかによりトリガされた特定のウェイクアップイベント

FIFO 管理が無効なときの標準 RXNE 割込み、または

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

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

説明

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

送信データレジスタが空のときセットされます。

送信完了

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

CTSnCTS 入力がトグルするときにセットされます。

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

受信データレジスタにデータが含まれているときにセットされます。

アイドルラインアイドルラインが検出されたときにセットされます。

キャラクタ一致

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

レシーバタイムアウト

プログラムしたタイムアウトと同じ時間に Rx ラインにアクティビティがないときにセットされます。

複数のイベントで割込みが生成されます：• 送信データレジスタエンプティフラグは、送信データレジスタが空で書込み準備ができたときにセットされます。
• 送信完了フラグは、データ送信が完了し、データレジスタとシフトレジスタの両方が空になるとセットされます。
• nCTS 入力がトグルすると、CTS フラグがセットされます。
• 受信データレジスタノットエンプティフラグは、受信データレジ
スタに読出し可能なデータが含まれているときにセットされます。
• アイドルラインを検出すると、アイドルラインフラグがセットされます。
• キャラクタ一致フラグは、受信したデータがプログラムしたアドレスに一致するとセットされます。
• レシーバタイムアウトフラグは、プログラムした時間に Rx ラインでアクティビティがないときにセットされます。

21

割込み（2/2）
割込みイベント22

説明

ブロック終了

完全なブロックを受信したときにセットされます。

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

ウェイクアップイベントを確認したときにセットされます。

LIN ブレーク

LIN ブレークフレームを検出したときにセットされます。

送信 FIFO ノットフル

送信 FIFO がフルでない場合にセットされます。

送信 FIFO エンプティ

送信 FIFO が空のときにセットされます。

送信 FIFO 閾値

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

受信 FIFO ノットエンプティ

受信 FIFO が空でないときにセットされます。

受信 FIFO フル

受信 FIFO がフルになるとセットされます。

受信 FIFO 閾値

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

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

22

DMA

23

• DMA リクエストは、以下によりトリガ：• FIFO 管理が無効のときは、送信データレジスタエンプティと受信データレジスタフル• FIFO 管理が有効のときは、送信 FIFO ノットフルと受信 FIFO ノットエンプティ

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

23

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

24

説明

オーバーランエラー

オーバーランエラーが発生するとセットされます。

パリティエラーパリティエラーが発生するとセットされます。

フレーミングエラー

フレーミングエラーが発生するとセットされます。

ノイズエラー

受信フレームでノイズを検出するとセットされます。

自動ボーレートエラー

ボーレート測定に失敗するとセットされます。

アンダーランエラー

同期スレーブモードでアンダーランエラーが発生するとセットされます。

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

24

低電力モード
システムモード

説明

RUN

完全にアクティブ

SLEEP （MPU またはMCU がサブシステム状態）

アクティブUSART 割込みにより、サブシステムは SLEEP モードを終了します。

STOP + LP-STOP

USART が STOP モードで利用可能なオシレータでクロック供給されていれば、USART は動作可能で割込みによりデバイスは STOP モードを終了します。

LPLV-STOP

非アクティブペリフェラルレジスタの内容は保持されます。

STANDBY

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

25

USART ペリフェラルは、RUN モードで完全にアクティブです。
USART 割込みによりデバイスは SLEEP モードを終了します。
UART 受信は STOP モードと低電力 STOP モードでも動作可能で、スタート、アドレス一致、または受信フレームイベントでウェイクアップ割込みを生成します。
USART は、低電力かつ低電圧 STOP モードでは非アクティブとなります。
STANDBY モードではペリフェラルはパワーダウン状態であり、STANDBY モードを終了した後に再初期化する必要があります。

25

STM32MP1 USART インスタンスの機能
USART1/2/3/6

UART4/5/7/8

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

xx

マルチプロセッサ通信

xx

同期モード

x

-

スマートカードモード

x-

単線半二重通信x

x

IrDA SIR エンコーダ／デコーダxx

LIN モードxx

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

レシーバタイムアウト

xx

Modbus 通信xx

自動ボーレート検出xx

ドライバイネーブルxx

X（サイズ 16）

X（サイズ 16）

USART の機能Tx/Rx FIFO

26

STM32MP1 デバイスには、8 つの USART インスタンスが組み込まれています：• USART1、2、3、6 は完全な機能セットを持っています。
• インスタンス 4、5、7、8 は同期モードとスマートカードモードをサポートしていません。

26

関連ペリフェラル

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

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

27