STM32H7 – LPUART
低電力ユニバーサル非同期レシーバ／トランスミッタ・インタフェース

1.0版

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

1

概要

2

• LPUART（Low Power Universal Asynchronous
Receiver/Transmitter）• 低速32.768kHzの外部オシレータ（LSE）使用時、9600ボーでフルUART通信、STOPモードからのウェイクアップ機能

STM32H7• 他のクロックソースでは、より高いボーレートも設定可能

Tx

LPUART

アプリケーション側の利点• デバイス間の安価な通信リンク

Rx• 数本のピンしか必要としないシンプルなハードウェア• 低電力のSTOPモードからウェイクアップ• 送受信FIFO。STOPモードでの送受信が可能。

低電力ユニバーサル非同期レシーバは、LPUARTが低速の外部32.768kHzオシレータ（LSE）を使用してクロック供給されているとき、9600ボーでのフルUART通信を提供します。
LSEクロックとは別のクロックソースによってクロック供給すると、さらに高いボーレートを達成できます。
アプリケーションは、少数のピンしか必要としない容易で安価なデバイス間の接続を利用できます。さらに、LPUARTペリフェラルは、低電力モードで機能します。送受信FIFOを備えているため、STOPモードでの送受信が可能です。

2

主な機能

3

• 完全にプログラム可能なシリアル･インタフェース• データは、7、8、または9ビット• パリティ：偶数、奇数、パリティなし• ストップビット1ビット、または2ビット• データ順をプログラム可能（MSBファースト／LSBファースト）• 送信と受信の信号極性をプログラム可能• プログラム可能なボーレートジェネレータ

• データ送信および受信用の2つの内部FIFO• RS-232およびRS-485ハードウェア･フロー制御をサポート

LPUARTは完全にプログラム可能なシリアルインタフェースであり、データ長、自動的に生成およびチェックされるパリティ、ストップビットの数、データ順、送受信の信号極性、ボーレートジェネレータなどの機能を設定できます。
LPUARTはFIFOモードで動作でき、送信FIFOと受信FIFOを備えています。
RS-232およびRS-485ハードウェアフロー制御オプションをサポートします。

3

主な機能（続き）

4• デュアルクロック･ドメイン設定可能：• UARTがSTOPモードからのウェイクアップを駆動• PCLKに依存しない便利なボーレート・プログラミング• マルチプロセッサ通信• 単線半二重通信

LPUARTはデュアルクロックドメインをサポートするため、STOPモードからのウェイクアップと、ペリフェラルクロックに依存しないボーレートプログラミングが可能です。
マルチプロセッサモードにより、LPUARTはアドレス指定されていないときにはアイドル状態のままです。
全二重通信のほかに、単線半二重モードもサポートします。

4ブロック図5

RCC_D3CCIPR

rcc_pclk_D3
pll2_q_ck
pll3_q_ck
hsi_ker_ck

LPUART_PRESC

lpuart_ker_ck

データ制御
&FIFO

LPUART_BRR

Tx

Rx

csi_ker_ck
lse_ker_ck

nRTS/DE

ハードウェアフロー制御

lpuart_pclk

nCTSレジスタ

APB バス

これは、LPUARTのブロック図です。LPUARTクロック（lpuart_ker_ck）は、ペリフェラルクロック（APBクロック）、PLL2_q、PLL3_q、高速内部RCオシレータ、低消費電力内部オシレータ（CSI）、低速外部32.768kHzクリスタルオシレータ（LSE）など、複数のソースから選択できます。
TxおよびRxピンは、データ送信とデータ受信に使用されます。
nCTSおよびnRTSピンは、RS-232ハードウェアフロー制御に使用されます。
ドライバイネーブル（DE）信号は、nRTSと同じI/Oで使用でき、RS-485モードで使用されます。

5

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

6

PCLK再プログラミングから独立したボーレート・プログラミング• 選択可能なクロックソースによる柔軟性の高いクロック制御スキーム• rcc_pclk_D3（デフォルト）

RCC_D3CCIPR

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

rcc_pclk_D3
pll2_q_ck
pll3_q_ck
hsi_ker_ck

LPUART_PRESCLPUART_BRR

lpuart_ker_ck

csi_ker_ck
lse_ker_ck

lpuart_pclk

レジスタ• 最大ボーレート：• lpuart_ker_ckがLSE32.768kHzのとき、9600ボー• lpuart_ker_ckが100MHzのとき、33Mボー

LPUARTは、柔軟性の高いクロック制御スキームを備えています。
クロックソースはRCCで選択でき、ペリフェラルクロック（APBクロック），PLL2_q，PLL3_q，HSI，CSI，LSEクロックから選択できます。
LPUARTクロックソースは、LPUART_PRESCレジスタのプログラム可能な係数によって分周できます。
レジスタはAPBバスを介してアクセスされ、カーネルはAPBクロックから独立したlpuart_ker_ck（分周設定可能）でクロック供給されます。
達成可能な最大ボーレートは、クロックソースがLSEのときには9600ボー、クロックソースが100MHzのときには33Mボーです。

6データ･フォーマット

7

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

可能なパリティビット

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

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

可能なパリティビット

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

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

可能なパリティビット

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

9ビットデータb0 b1 b2 b3 b4 b5 b6 b7 b8

フレームフォーマットは、一連のデータビットと同期のためのビットに加えて、オプションでエラーチェックのためのパリティビットで構成されます。フレームはスタートビット1ビット（S）で始まり、ラインは1ビット周期だけローレベルに駆動されます。
これがフレームの開始を通知し、同期のために使用されます。
データ長は、パリティビットを含めた場合、9、8、または7ビットで設定できます。最後に、1または2ビットのストップビットがあり、ここでラインはハイレベルに駆動されて、フレームの終了を示します。

7

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

標準フレーム可能なパリティビット

ストップビット

8

次のスタートビット

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

アイドルキャラクタ

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

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

8

全二重／半二重モード

9

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

LPUART2Tx

Rx

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

LPUART1

R = 10 KΩ

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

VDD

Tx

LPUART2
Tx

半二重

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

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

10

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

LPUART2

LPUART1

Tx回路

Rx回路

Tx

RxnCTSnRTS

Rx

TxnRTS

nCTS

Rx回路

Tx回路

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

10

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

11

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

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

11

マルチプロセッサ通信

12

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

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

アイドルライン検出

アドレスマーク検出

12

FIFO

13

STOPモードでも送受信• FIFOモードは、ソフトウェアによって有効／無効化が可能• 送信FIFO（TXFIFO）と受信FIFO（RXFIFO）• TXFIFOとRXFIFOのサイズは16データビット• FIFOはカーネルクロック･ドメインにあるSTOPモードでも送受信可能• TXFIFOとRXFIFOの閾値

LPUARTは、ソフトウェアによって有効化／無効化される
FIFOモードで動作できます。デフォルトでは無効です。
LPUARTは送信FIFO（TXFIFO）と受信FIFO（RXFIFO）を備え、それぞれ16ワードの深さです。
TXFIFOは9ビット幅です。RXFIFOのデフォルト幅は12ビットです。この理由は、レシーバはFIFOにデータを格納するだけでなく、各キャラクタに伴うエラーフラグ（パリティエラー、ノイズエラー、およびフレーミングエラーフラグ）も格納するためです。
TXFIFOとRXFIFOがカーネルクロックによってクロック供給される場合、STOPモードでもデータの送信と受信が可能です。
TXFIFOとRXFIFOの閾値を設定することができ、主にSTOPモードからのウェイクアップ時のアンダーラン／オーバーラン問題を回避するために使用されます。

13

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

14• LPUARTは、LPUARTクロックソースが以下のとき、MCUをSTOPモードからウェイクアップ可能• 高速内部RCオシレータ（HSI）• 低速外部32.768kHzクリスタル･オシレータ（LSE）• 低消費電力の内部オシレータ（CSI）• ウェイクアップのソースは以下のいずれか：• 以下によってトリガされる特定のウェイクアップ･イベント• スタートビット• アドレス一致• 受信データ• FIFO管理が無効なときの標準RXNE割込み• FIFO管理が有効なときのFIFOイベント割込み：RXFIFOフル、TXFIFOエンプティ、またはRXFIFO/TXFIFOがプログラムされた閾値に達したとき

LPUARTは、LPUARTクロックソースがHSI、LSE、またはCSIクロックのとき、MCUをSTOPモードからウェイクアップできます。
ウェイクアップのソースは以下のいずれかです。



スタートビットまたはアドレス一致または受信データによってトリガされる特定のウェイクアップイベント
FIFO管理が無効なときのRXNE割込み
FIFO管理が有効なときのFIFOイベント割込み

14

割込み
割込みイベント

15

説明

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

送信データレジスタが空であり、書込み準備ができているときにセット送信完了

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

CTS

nCTS入力がトグルしたときにセット受信データレジスタノットエンプティ

受信データレジスタにデータがあり、読出し準備ができているときにセットアイドルライン

アイドルラインが検出されたときにセットキャラクタ一致

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

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

ウェイクアップ･イベント（スタートビットまたはアドレス一致または受信データ）が確認されたときにセット

この表は、割込みを生成するLPUARTイベントを示しています。

15

割込み
割込みイベント

16

説明

送信FIFOノットフル

送信FIFOがフルでないときにセット送信FIFOエンプティ

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

プログラムされた閾値に達するとセット受信FIFOノットエンプティ受信FIFOが空でないときにセット受信FIFOフル

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

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

この表は、FIFO管理が有効なときのFIFOイベント割込みを示しています。

16

DMA

17

• DMAリクエストは以下によってトリガ• FIFO管理が無効なとき、送信データレジスタがエンプティおよび受信データレジスタがフル• FIFO管理が有効なとき、送信FIFOがフルでないおよび受信FIFOがエンプティでない

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

17

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

18

説明

オーバーランエラー

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

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

フレーミングエラー

同期外れまたは過剰ノイズが検出されたときにセットノイズエラー

受信フレームのスタートビットでノイズが検出されたときにセットいくつかのエラーフラグもまた、表に示されているように、LPUARTによって生成されます。
オーバーラン、パリティ、およびフレーミングエラーフラグは、それぞれ対応するエラーが発生したときにセットされます。
ノイズエラーフラグは、受信フレームのスタートビットでノイズが検出されたときにセットされます。

18低電力モード
モード

19

説明

RUN

アクティブ

SLEEP

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

STOP

LPUARTのレジスタの内容は保持LPUARTは、LPUARTクロックがHSI、LSEまたはCSIに設定されている場合、MCUをSTOPモードからウェイクアップさせることが可能

STANDBY

パワーダウンSTANBYモード終了後にペリフェラルを再初期化する必要がある

LPUARTペリフェラルは、RUNモードでアクティブです。
LPUART割込みによって、デバイスはSLEEPモードから復帰します。
LPUARTは、LPUARTクロックがHSI、LSEまたはCSIクロッ
クに設定されているとき、MCUをSTOPモードからウェイクアップできます。
STANBYモードでは、ペリフェラルはパワーダウン状態になり、STANBYまたはSHUTDOWNモードからの復帰後に再初期化する必要があります。

19

STM32H7 LPUART の機能
USART

LPUART

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

xx

マルチプロセッサ通信

xx

同期モード

x

-

スマートカードモード

x-

単線半二重通信xx

IrDA SIR ENDEC

x-

LINモードx-

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

xx

レシーバ･タイムアウト

x-Modbus通信x-

自動ボーレート検出x-

ドライバ･イネーブルxxx（サイズ 16）x（サイズ 16）

USART/LPUARTの機能

Tx/Rx FIFO

20

STM32H7デバイスは、1つのLPUARTインスタンスを内蔵しています。USARTと比較して、LPUARTは同期、スマートカード、IrDA、およびLINモードをサポートしません。レシーバ
タイムアウト、modbus通信、および自動ボーレート検出機能もサポートしません。

20

関連ペリフェラル

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

これは、LPUARTに関連するペリフェラルのリストです。必要な場合、詳細については、これらのペリフェラルトレーニングを参照ください。

GPIO（General Purpose Input/Output、汎用入出力）

リセットおよびクロックコントローラ

電源コントローラ

割込みコントローラダイレクトメモリアクセスコントローラ

21