STM32G0 - LPUART
低電力ユニバーサル非同期レシーバ／トランスミッタ･インタフェース
レビジョン 1.0

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

1

概要

2

• LPUART （低電力ユニバーサル非同期レシーバ／トランスミッタ）

STM32G0• 低速外部32.768kHzオシレータ（LSE）使用時、9600ボーのフルUART通信とSTOPモードからのウェイクアップ機能を提供• 他のクロックソースを使用してさらに高いボーレートを達成可能
Tx

LPUART

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

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

低電力ユニバーサル非同期レシーバは、LPUART が低速外部 32.768 kHz オシレータ（LSE）からクロックを供給されている場合、9600 ボーのフル UART 通信を提供します。
LSE クロックとは別のクロックソースから LPUART にクロックを供給すると、さらに高いボーレートを達成できます。
アプリケーションにとって、デバイス間を、必要なピン数が少ない簡単で安価な方法で接続できるという利点があります。また、
LPUART ペリフェラルは、低電力モードで動作します。送信FIFO／受信 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_ker_ckがLSE 32.768kHzの場合は9600ボー• lpuart_ker_ckが64MHzの場合は21.3Mボー

LPUART はデュアルクロックドメインをサポートし、STOP モードからのウェイクアップおよびペリフェラルクロックに依存しないボーレートプログラミングを実現できます。
マルチプロセッサモードなので、LPUART はアドレス指定されていないときはアイドル状態のままでいられます。
全二重通信に加えて、単線半二重モードもサポートします。
最大ボーレートは、クロックソースが LSE の場合は 9600 ボー、
SYSCLK の場合は 21.3 M ボーです。

4ブロック図5

RCC_CCIPRSYSCLK
HSI16

lpuart_ker_ck

LSE

LPUART_PRESC
1～256

lpuart_ker_ck_pres

LPUART_BRR
768～65536

データ制御
&FIFO

Tx
Rx

PCLKnRTS/DE

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

lpuart_pclk

レジスタ

APB バス

スライドに LPUART のブロック図を示します。
LPUART クロックソース（lpuart_ker_ck）は、ペリフェラルクロック（APB クロック PCK）、SYSCLK、高速内部 16 MHz オシレータ（HSI16）、低速外部オシレータ（LSE）など、さまざまなソースから選択できます。
LPUART クロックソースは、LPUART_PRESC レジスタのプログラム可能な係数（1～256 の範囲）により分周されます。
Tx ピンと Rx ピンは、データ送信とデータ受信に使用されます。
nCTS ピンと nRTS ピンは、RS-232 ハードウェアフロー制御に使用されます。
DE （Driver Enable）ピンは、nRTS と同じ I/O で使用でき、RS-485 モードで使用されます。

5

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

6

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

ボーレートジェネレータ

Tx
Rx シフトレジスタ

RxFIFO またはバッファ

lpuart_pclk

LPUART レジスタ

Tx シフトレジスタ

nRTS/DE

HW
フロー制御

nCTS

TxFIFO またはバッファ

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

APB

IRQ インタフェース

lpuart_it
lpuart_wkup

DMAインタフェース

lpuart_tx_dma
lpuart_rx_dma

lpuart_pclk クロックドメイン

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

6データ･フォーマット

7

サポートされているデータ長：7、8、および9ビット7ビット･データスタート･ビット 設定可能パリティビットストップビット（1または2）b0 b1 b2 b3 b4 b5 b6
8ビット･データスタート･ビット

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

設定可能パリティビット ストップビット（1または2）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全二重：二線
半二重：単線
LPUART2

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

Tx

Rx

Rx

Tx

全二重• TxラインとRxラインが内部接続される• Txピンが送信と受信の両方に使用される

VDD

LPUART1

Tx

R = 10 KΩ

• LPUART単線半二重プロトコル

LPUART2

Tx

半二重

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

9

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

10

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

LPUART2

LPUART1
Tx
Tx 回路

nCTS
Rx

Rx 回路

nRTS

RxnRTS

Rx 回路

Tx
nCTS

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 は、次のどちらかの方法を使用して、ミュートモードを開始または終了します。
アイドルライン検出

アドレスマーク検出

12

FIFO

13

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

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

13

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

14• LPUARTクロックソースが次のどちらかである場合、LPUARTはマイクロコントローラをSTOPモードからウェイクアップできる• 高速内部RCオシレータ（HSI16）• 低速外部32.768kHzクリスタルオシレータ（LSE）• 使用できるウェイクアップ･ソース：• 次のいずれかによりトリガされる特定のウェイクアップ･イベント：• スタート･ビット• アドレス一致• 受信データ• FIFO管理が無効な場合の標準RXNE割込み• FIFO管理が有効な場合のFIFOイベント割込み（RXFIFOフル、TXFIFOエンプティ、またはRXFIFO/TXFIFOがプログラムされている閾値に達したとき）

LPUART クロックソースが HSI または LSE のどちらかのクロックである場合、LPUART はマイクロコントローラを 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ノットエンプティ

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

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

18

説明

オーバーラン･エラー

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

パリティ･エラー

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

フレーミング･エラー

非同期化または過剰なノイズが検出されたときにセットされる

ノイズ･エラー

受信フレームのスタート･ビットでノイズが検出されたときにセットされる

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

18

低電力モード
モード

19

説明

RUN
低電力RUN

アクティブ

SLEEP
低電力SLEEP

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

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

STANDBY
SHUTDOWN

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

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

19

STM32G0 LPUART/USARTの機能
USART

LPUART

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

xx

マルチプロセッサ通信

xx

同期モード

x

-

スマートカード･モード

x-

単線半二重通信x

x

IrDA SIR ENDEC

x-

LINモードx-

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

xx

レシーバ･タイムアウト

x-Modbus通信x-

自動ボーレート検出x-

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

U(S)ART/LPUARTの機能

Tx/Rx FIFO

20

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

20

関連ペリフェラル

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

これは、LPUART に関連するペリフェラルのリストです。詳細
については、必要に応じてこれらのペリフェラルのトレーニングを参照してください。
汎用入出力

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

電源コントローラ

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

21