STM32G4 – DMA & DMAMUX
ダイレクト･メモリ･アクセス（DMA）コントローラ
DMAリクエスト･マルチプレクサ（DMAMUX）

1.0版

STM32G4ダイレクトメモリアクセスコントローラ（DMA）のプレゼン
テーションへようこそ。
ここでは、新しいDMAリクエストマルチプレクサ（DMAMUX）モ
ジュールによって強化された、DMAコントローラモジュールの主な機能の説明を行います。

1概要
ペリフェラルリクエスト（115）

DMAMUX
リクエスト15DMAMUXDMAMUX
リクエスト8• プログラム可能なチャネル・ベースの優先度• AHBマスタポート経由のデータ転送• DMAリクエストルータ（DMAMUX）x1

S
トリガ（21）

リクエスト
ジェネレータ（4)）

リクエスト
マルチプレクサ（16）

DMAモードでペリフェラルから•トリガからと内部生成• 同期モード:リクエスト･カウンタを用いて、同期入力から• リクエスト連鎖:リクエスト･カウンタを用いて、別のリク
エスト/チャネルへの入力トリガ、あるいは同期であるイベントを生成S

同期（21）DMAMUX
リクエスト7SDMAMUX
リクエスト0割込み（8）

DMA2
チャネル7

AHB
マスタ

AHB
マスタ

AHBスレーブ

割込み(8)

チャネル0

DMA1
チャネル7

• プログラム可能なリクエスト･ソース選択•

AHBスレーブ

割込み（1）

アービタ• 独立に設定可能でプログラム可能な同時8チャネル･ブロック転送

AHBスレーブ

アービタ• それぞれ次の処理が実行可能なDMA
コントローラx2:

2

チャネル0

DMAMUXイベント（4）アプリケーション側の利点
メモリマップされたソースからメモリ･マップされたデスティネーションへのデータ転送
CPU負荷のオフロード

アプリケーションにとってのDMAの主な利点は、あらゆるメモリマップされた転送元からあらゆるメモリマップされた転送先へのデータ転送にCPU負荷をオフロードすることです。
STM32G4 DMAの機能:• 2DMAコントローラ。DMAコントローラごとに次の処理が可能:
 プログラム可能な同時8チャネルブロック転送（チャネルごとに独立設定可能）
 プログラム可能なチャネルベース優先度 （バスマトリックスに接続された）AHBマスタポート経由のデータ転送• DMAリクエストルータ（DMAMUX）の機能: プログラム可能なリクエストソース選択：DMAモードでペリフェラルから、あるいは、トリガ後に内部生成
 同期モード：DMAMUXリクエストカウンタを用いて同期入力（ハードウェアイベント）から
 リクエスト連鎖：DMAMUXリクエストカウンタを用いて、別のリクエスト／チャネルへの入力トリガあるいは同期であるイベントを生成2

STM32G4 DMAとDMAMUX例DMAMUXの機能

DMAMUX

ペリフェラル･リクエストの数

115

リクエスト･ジェネレータの数

4

トリガの数

21

同期の数

21

出力DMAリクエストの数

16

DMAの機能チャネル数

DMAの機能
チャネル数

3

DMA1
8

DMA2
8

ペリフェラルリクエストは115本、DMAMUXリクエストジェネレータは4個あります。
トリガと同期入力は21本あります。
DMAチャネル/リクエストは16本あります。

3

DMAコントローラ（1/3）

4• 1個のDMAコントローラに個別に設定可能なチャネル• チャネルは、メモリからペリフェラルまたはペリフェラルからメモリへの転送において、ペリフェラルからのDMAハードウェア･リクエストに割当て可能• あるいは、メモリ間転送におけるソフトウェア･リクエストにチャネルを割り当てる• チャネルは優先順位レベルを付けてプログラムされる• チャネルはブロック･レベルでのデータ転送回数に対してプログラムされる• ソフトウェアは、ブロック転送完了、ハーフブロック転送完了、転送エラーなどのプログラム可能なイベントに対する個別の割込みやフラグを通じてチャネルを制御• バス･アクセス･エラーの場合、障害のあるチャネルは自動的に無効となる

DMAコントローラに焦点を合わせて説明します。
DMAコントローラのチャネルごとに個別に設定可能:• チャネルは、ペリフェラルからメモリまたはメモリからペリフェラルへのデータ転送において、ペリフェラルからのDMAハードウェアリクエストに割当て可能です。
• あるいは、メモリ間データ転送におけるソフトウェアリクエストにチャネルを割り当てます。
• チャネルは優先順位レベル付きでプログラムされます。
• チャネルはブロックレベルでのデータ転送回数に対してプログラムされます。
ソフトウェアは、ブロック転送完了、ハーフブロック転送完了、転送エラーなどのプログラム可能なイベントに対する個別の割込みやフラグを通じてチャネルを制御可能です。
バスアクセスエラーの場合、障害のあるチャネルは自動的に無効となります。

4

DMAコントローラ（2/3）

5• ブロック･レベルでのプログラム可能なデータ転送• 転送元と転送先のデータ･サイズは独立：8ビット、16ビット、32ビット• 転送元と転送先の開始アドレスは独立• 転送元と転送先のアドレスインクリメントは独立：連続インクリメントまたは固定アドレス• プログラム可能なブロック内転送データ数• 最大65,535個の転送元データ• ハードウェアにより自動デクリメント• サーキュラkバッファ･モード（ペリフェラルとの連続データ転送）におけるブロック転送完了時:• 次のプログラムされた情報がハードウェアにより自動で再ロード：• ブロック内で転送されるデータ量• 転送元と転送先の開始アドレス

チャネルはブロックレベルでのデータ転送回数に対してプログラムされます。
• 転送元と転送先のデータサイズは独立• 転送元と転送先の開始アドレスは独立• 転送元と転送先のアドレスインクリメントは独立（連続インクリメントまたは固定アドレス）• プログラム可能なブロック内転送データ数
 最大65,535個の転送元データ
 ハードウェアにより自動デクリメント
サーキュラバッファモード（ペリフェラルとの連続データ転送）におけるブロック転送完了時：• プログラムされたブロック内転送データ数は、ハードウェアによって自動的に再ロードされます。
• 転送元と転送先の開始アドレスも同様です。

5

DMAコントローラ（3/3）

6• メモリ間モード:• チャネルがこのモードで有効（ハードウェアリクエストなし）になると、直ちにブロック転送が開始される• ペリフェラルからメモリ･モードおよびメモリからペリフェラル･モード：• 1）チャネルが有効になり、かつ2）ペリフェラルがDMAハードウェアリクエストを送信すると、直ちにブロック転送が開始される• DMAハードウェア･リクエストによって、DMAデータ転送が（1つだけ）特定される• 各データが転送先に正常に転送されると、DMAハードウェア･リクエストごとにDMAによる速度調整と許可が行われる• 全モード:• データ転送ごとにチャネル･アービトレーションが再評価される

メモリ間モードでチャネルが有効（ハードウェアリクエストなし）になると、直ちにブロック転送が開始されます。
その一方で、ペリフェラルからメモリモードおよびメモリからペリフェラルモードにおいて：•••

1）チャネルが有効になり、かつ2）ペリフェラルがDMAハードウェアリクエストを送信すると、直ちにブロック転送が開始されます。
DMAハードウェアリクエストによって、DMAデータ転送が（1つだけ）特定されます。
各データが転送先に正常に転送されると、DMAハードウェアリクエストごとにDMAによる速度調整と許可が行われます。

どのモードでも、データ転送ごとにチャネルアービトレーションが再評価されます。

6

DMA割込み

7• チャネルごとの割込みイベント
割込みイベント

説明

1/2転送

データ･ブロックの半分が転送されたときにセット転送完了

ブロック転送が完了したときにセット転送エラー

データ転送中にエラーが発生したときにセット

グローバル割込み

1/2転送、転送完了、または転送エラーのイベントが発生したときに常にセット

DMAチャネルごとに、次の4種類の起こり得るイベントによってトリガされた割込みをソフトウェアに通知可能です。
• ハーフブロック転送完了• ブロック転送完了• 転送エラー• 上記3イベントのいずれか（グローバル）

7

DMAMUXブロック図8

DMAリクエストマルチプレクサ

チャネル15チャネルxチャネル0ペリフェラルリクエスト
（115）

チャネル3
チャネル2
トリガ入力
（21）

チャネル1

21

チャネル0
4

count count count count

DMAリクエストジェネレータDMAリクエスト
（16）

40

115
4

同期&カウント

リクエスト
イベント
DMAMUXイベント
（4）

4
4
21

4

同期入力
（21）

DMAMUXには、リクエストマルチプレクサとリクエストジェネレータの2つの主なサブブロックがあります。
DMAMUXリクエストマルチプレクサにより、ペリフェラルからDMAコントローラへのDMAリクエストをルーティングすることができます。
ルーティング機能は、プログラム可能なマルチチャネルDMAリクエストマルチプレクサにより保証されます。
各チャネルは、DMAMUX同期入力のイベントで無条件に、または同期的に一意のDMAリクエストを選択します。
DMAMUXは、入力トリガ信号のプログラム可能なイベントからのDMAリクエストジェネレータとしても使用できます。
DMAリクエストマルチプレクサチャネルは、DMAコントローラに対するリクエストと、同期入力としてもトリガ入力としても使用可能なイベントの両方を生成します。
DMAリクエストジェネレータチャネル（0～3）のことを、DMAリクエストマルチプレクサチャネル（0～13）と混同しないようにしてください。

8

DMAMUXリクエスト･マルチプレクサ（1/6）

9• 各マルチプレクサ・チャネルに対して• 設定レジスタ：DMAMUX_CxCR• プログラム可能な入力リクエスト選択（DMAREQ_IDフィールド経由）• DMAモードで動作しているペリフェラルからのリクエストごとに、DMAREQ_IDが割り当てられる• DMAREQ_ID=0は、DMAリクエストが選択されていない状態に相当する• このチャネルと、それがルーティングされるDMAコントローラが設定された後に、DMAチャネルが有効になることが可能• 同じDMAリクエスト入力を2つの異なるチャネルに設定することは出来ない

マルチプレクサチャネルごとに設定レジスタがあります。
DMAMUX_CxCR:• プログラム可能な入力リクエスト選択（DMAREQ_IDフィールド経由）
 DMAモードで動作しているペリフェラルからのリクエストごとに、DMARAQ_IDが割り当てられます。
 DMAREQ_ID=0x00は、DMAリクエストが選択されていない状態に相当します。
• このチャネルと、それがルーティングされるDMAコントローラが設定された後に、DMAチャネルの有効化が可能となります。
同じDMAリクエスト入力を2つの異なるチャネルに設定することはできません。

9

DMAMUXリクエスト･マルチプレクサ（2/6）

10• 各マルチプレクサ･チャネルに対して• 内蔵DMAリクエスト･カウンタ• プログラム可能（NBREQフィールド経由）• 処理されたDMAリクエストによって、プログラムされたDMAリクエスト･カウンタがデクリメントされる
アンダーラン時には：• NBREQフィールドにプログラムされた値にDMAリクエストカウンタが自動的に再ロードされる• アンダーラン時には、DMAMUXイベントの生成が可能• 有効化されている場合（EGEフィールド経由）• （チャネル0から3までの）4つのDMAMUXイベントがループバックされ、トリガ入力および同期入力としてDMAMUXに接続• これによって、同期やトリガを通じて、リクエストが別の異なるDMAチャネルに連鎖できる

各マルチプレクサチャネルに対して：• 内蔵DMAリクエストカウンタが（NBREQフィールド経由で）プログラム可能です。
• 処理されたDMAリクエストによって、プログラムされたDMAリクエストカウンタがデクリメントされます。アンダーラン時には、
NBREQフィールドにプログラムされた値にDMAリクエストカウンタが自動的に再ロードされます。
• アンダーラン時には、有効化されている場合（EGEフィールド経由）、DMAMUXイベントの生成が可能です。
• （チャネル0から3までの）4つのDMAMUXイベントがループバックされ、トリガ入力および同期入力としてDMAMUXに接続されます。これによって、同期やトリガを通じて、リクエストが別の異なるDMAチャネルに連鎖できます。

10

DMAMUXリクエスト･マルチプレクサ（3/6）

11• 各マルチプレクサ･チャネルに対して• （SEフィールド経由でプログラムされた）2種類の動作モード• 無条件モード：入力リクエストがそのまま出力• 同期モード：いくつかのリクエストがグループ化されて遅延/同期される

各マルチプレクサチャネルに対して、（SEフィールド経由でプログラムされた）2種類の動作モードがあります。
• 無条件モード：入力リクエストがそのまま出力されます。
• 同期モード：いくつかのリクエストがグループ化されて遅延/同期されます。

11

DMAMUXリクエスト･マルチプレクサ（4/6）
無条件モード

12

DMAMUX_CxCR設定例:SE=0;NBREQ=4;EGE=1要求されたデータ転送がDMAコントローラによって処理選択されたDMA
リクエスト

出力DMA
リクエスト

DMAリクエスト
カウンタ

4

3

2

104
カウンタ･アンダーラン:イベント生成

DMAイベント
出力

リクエストマルチプレクサチャネルが無条件（SE=0）に設定されている場合、DMAリクエストはそのまま、DMAコントローラによって速度調整された通りに送信されます。
DMAコントローラがデータ転送を完了すると、DMAリクエストがデアサートされて、内蔵DMAリクエストカウンタがデクリメントされます。
カウンタのアンダーラン時には、EGEフィールド経由で有効化されている場合、イベントの生成が可能です。

12

DMAMUXリクエスト･マルチプレクサ（5/6）
同期モード

13

• 同期モードでは、追加で• リクエストが次のもので条件付けされる• プログラム可能な同期入力選択（SYNC_IDフィールド経由）• プログラム可能な同期イベント：なし/立ち上がりエッジ/立ち下がりエッジ/両エッジ（SPOLフィールド経由）• イベント生成にも使用可能な単一の内蔵リクエスト･カウンタ（NBREQフィールド経由）• 同期イベント後• 出力DMAリクエストは保留中の入力リクエストに接続• カウンタアンダーラン時• DMA出力リクエストはマルチプレクサ･チャネル入力から切断• 同期オーバーランフラグ（DMAMUX_CSRのSOFx）が報告された• カウンタアンダーランの前に新しい同期イベントが発生した場合• （SOIEフィールド経由で）有効になっている場合に割込みを生成

同期モードでは、追加で:• リクエストが条件付けされる: プログラム可能な同期入力選択（SYNC_IDフィールド経由）
 プログラム可能な同期イベント：なし/立ち上がりエッジ/立ち下がりエッジ/両エッジ（SPOLフィールド経由）
 イベント生成にも使用可能な単一の内蔵リクエストカウンタ（NBREQフィールド経由）• 同期イベント後:
 出力DMAリクエストは保留中の入力リクエストに接続• カウンタアンダーラン時: DMA出力リクエストはマルチプレクサチャネル入力から切断• 最後に、同期オーバーランフラグ（DMAMUX_CSRのSOFx）が報告される：
 カウンタアンダーランの前に新しい同期イベントが発生した場合
 （SOIEフィールド経由で）有効になっている場合に割込みを生成
13

DMAMUXリクエスト･マルチプレクサ（6/6）
同期モード

14

DMAMUX_CxCR設定例:SE=1;NBREQ=4;EGE=1要求されたデータ転送がDMAコントローラによって処理選択されたDMA
リクエスト
同期入力
同期イベント:出力リクエストが入力に接続される

出力DMA
リクエスト

DMAリクエストカウンタ

カウンタアンダーラン:
出力リクエストが入力から切断される

4

32104

同期オーバーフローウィンドウ

DMAイベント
出力

カウンタアンダーランイベント生成

DMAMUXチャネルが同期モードに設定されている場合、その動作は以下のようになります。
リクエストマルチプレクサ入力（ペリフェラルからのDMAリクエスト）は保留とすることが可能であり、同期イベントを受け取るまではDMAMUXリクエストマルチプレクサ出力に転送されません。
その後、リクエストマルチプレクサはその入力と出力を接続し、すべてのペリフェラルリクエストが転送されます。
転送と許可が行われたDMAリクエストごとに、（規定されたプログラム値に設定されている）リクエストマルチプレクサカウンタをデクリメントします。
カウンタがゼロに達すると、DMAコントローラとペリフェラルの間の接続は切断され、新しい同期イベントを待ちます。
カウンタがアンダーランするたびに、リクエストマルチプレクサがオプションのイベントを生成して、2番目のDMAMUXリクエストマルチプレクサチャネルの同期やトリガを行うことができます。
同じイベントが、CPUの介入なくシステムをSTOPモードに戻す一部の低電力シナリオで使用することができます。
同期モードは、たとえば、データ転送をタイマに自動同期させたり、同期入力としてマッピングされているあらゆるペリフェラルイベントからの転送を条件づけたりするために使用することができます。
加えて、同期オーバーフローによって、プログラムされている数のDMAリクエストが2つの同期イベントの間に完了していない場合に、ソフトウェアへの通知を行えます。
14

DMAMUXリクエスト･ジェネレータ

15• 各チャネルに対して• DMAリクエストがトリガイベントの後に生成可能。DMAMUXリクエスト･マルチプレクサ･チャネルの入力として選択される。（DMAMUX_CxCRのDMAREQ_IDフィールド経由）• （GEフィールドによって）有効化されている場合、設定レジスタDMAMUX_RGxCR経由で次のものによってリクエストが生成される• プログラム可能なトリガ入力選択（SIG_IDフィールド経由）• プログラム可能なトリガ･イベント：なし/立ち上がりエッジ/立ち下がりエッジ/両エッジ（GPOLフィールド経由）• 内蔵リクエスト･カウンタが（GNBREQフィールド経由）• 処理されたDMAリクエストによって、プログラムされたリクエスト･カウンタがデクリメントされる• アンダーラン時には:• GNBREQフィールドにプログラムされた値にリクエスト･カウンタが自動的に再ロードされる• リクエスト･ジェネレータは、リクエストの生成を停止• トリガ･オーバーラン･フラグ（DMAMUX_RGSRのOFx）が報告される• カウンタアンダーランの前に新しいトリガイベントが発生した場合• （OIEフィールド経由で）有効になっている場合に割込みを生成

各リクエストジェネレータチャネルに対して：• DMAリクエストがトリガイベントの後に生成可能であり、DMAMUXリク
エストマルチプレクサチャネルの入力として選択されます（DMAMUX_CxCRのDMAREQ_IDフィールド経由）。
• （GEフィールドによって）有効化されている場合、設定レジスタ
DMAMUX_RGxCR経由で次のものによってリクエストが生成されます。
 プログラム可能なトリガ入力選択（SIG_IDフィールド経由）
 プログラム可能なトリガイベント：なし/立ち上がりエッジ/立ち下がりエッジ/両エッジ（GPOLフィールド経由）
 内蔵リクエストカウンタ（GNBREQフィールド経由）• 処理されたDMAリクエストによって、プログラムされたリクエストカウンタがデクリメントされます。
• アンダーラン時には:
 GNBREQフィールドにプログラムされた値にリクエストカウンタが自動的に再ロードされます。
 リクエストジェネレータは、リクエストの生成を停止します。
• トリガオーバーランフラグ（DMAMUX_RGSRのOFx）が報告されます。
 カウンタアンダーランの前に新しいトリガイベントが発生した
場合
 （OIEフィールド経由で）有効になっている場合に割込みを生成

15

DMAMUXリクエスト･ジェネレータ

16

DMAMUX_RGxCR設定例:GE=0;GPOL=1;GNBREQ=3要求されたデータ転送がDMAコントローラによって処理

トリガ入力
トリガイベント:リクエスト生成開始

トリガイベント:リクエスト生成開始

生成されたDMAリクエスト
カウンタアンダーラン:
リクエスト生成停止

カウンタアンダーラン:
リクエスト生成停止

DMAリクエスト
カウンタ

3

2

10

トリガオーバーフローウィンドウ3
トリガオーバーフローウィンドウ

トリガイベント発生時に、プログラムされた数のDMAリクエスト（GNBREQ+1）が生成されます。
GNBREQ+1回のリクエストの前にトリガイベントが2回発生し、データ転送が完了した場合、トリガオーバーフローが発生することがあります。

16DMAMUXリクエスト･マルチプレクサ入力
DMAREQ_ID
12345678910111213141516171819202122232425262728293031323334353637383940414243

リソース
dmamux_req_gen0
dmamux_req_gen1
dmamux_req_gen2
dmamux_req_gen3
ADC1
DAC1_CH1
DAC1_CH2
TIM6_UP
TIM7_UPSPI1_RXSPI1_TX
SPI2_RXSPI2_TX
SPI3_RX
SPI3_TX
I2C1_RX
I2C1_TX
I2C2_RXI2C2_TX
I2C3_RXI2C3_TX
I2C4_RXI2C4_TX
USART1_RX
USART1_TX
USART2_RXUSART2_TX
USART3_RX
USART3_TX
UART4_RX
UART4_TX
UART5_RX
UART5_TX
LPUART1_RX
LPUART1_TX
ADC2ADC3ADC4ADC5QUADSPIDAC2_CH1
TIM1_CH1
TIM1_CH2DMAREQ_ID
44454647484950515253545556575859606162636465666768697071727374757677787980818283848586

リソース
TIM1_CH3
TIM1_CH4
TIM1_UP
TIM1_TRIG
TIM1_COM
TIM8_CH1
TIM8_CH2
TIM8_CH3
TIM8_CH4
TIM8_UP
TIM8_TRIG
TIM8_COM
TIM2_CH1
TIM2_CH2
TIM2_CH3
TIM2_CH4
TIM2_UPTIM3_CH1
TIM3_CH2
TIM3_CH3
TIM3_CH4
TIM3_UP
TIM3_TRIG
TIM4_CH1
TIM4_CH2
TIM4_CH3
TIM4_CH4
TIM4_UP
TIM5_CH1
TIM5_CH2
TIM5_CH3
TIM5_CH4
TIM5_UP
TIM5_TRIG
TIM15_CH1
TIM15_UP
TIM15_TRIG
TIM15_COM
TIM16_CH1
TIM16_UP
TIM17_CH1
TIM17_UP
TIM20_CH1

DMAREQ_ID
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

17

リソース

TIM20_CH2
TIM20_CH3
TIM20_CH4
TIM20_UP
AES_INAES_OUTTIM20_TRIG
TIM20_COM
HRTIM_MASTER
HRTIM_TIMA
HRTIM_TIMBHRTIM_TIMC
HRTIM_TIMD
HRTIM_TIME
HRTIM_TIMF
DAC3_CH1
DAC3_CH2
DAC4_CH1
DAC4_CH2
SPI4_RX
SPI4_TX
SAI1_A
SAI1_B
FMAC_Read
FMAC_Write
Cordic_Read
Cordic_Write
USBPD_RX
USBPD_TX

この表には、STM32G4のあらゆるチャネルに対するDMAMUXリ
クエストマルチプレクサ入力のマッピングが示されています。
リクエスト入力の割当ては、あらゆるDMAMUXリクエストマルチプ
レクサチャネルに対するDMAREQ_ID（DMAMUX_CｘCRレジスタ）によりプログラムされます。
同じリクエスト入力は、異なる2つのチャネルに配置することはできません。

17

DMAMUXトリガ&同期入力
SIG_IDSYNC_ID

リソース

SIG_IDSYNC_ID

リソース

0

EXTIライン012

EXTIライン121

EXTIライン113

EXTIライン132

EXTIライン214

EXTIライン143EXTIライン315

EXTIライン154

EXTIライン416

dmamux_evt05

EXTIライン517

dmamux_evt16

EXTIライン618

dmamux_evt27

EXTIライン719

dmamux_evt38

EXTIライン89

EXTIライン910

EXTIライン1011

EXTIライン1118

この表には、あらゆるチャネルに対するトリガ入力と同期入力のSTM32G4のマッピングが示されています。
トリガ入力の割当ては、あらゆるDMAMUXリクエストジェネレータ
x（DMAMUX_RGxCRレジスタ）のSIG_IDフィールドによりプログラムされます。
同期入力の割当ては、あらゆるDMAMUXリクエストマルチプレク
サチャネルx（DMAMUX_CxCRレジスタ）のSYNC_IDフィールドによりプログラムされます。

18

DMAMUX割込み

19• 各リクエスト･ジェネレータ･チャネルに対する割込みイベント
割込みイベント
リクエスト･ジェネレータ･トリガ･オーバーラン

説明
トリガ入力オーバーランが検出されたときにセット（その前に、DMAMUXリクエスト･ジェネレータにより生成されたプログ
ラムされた数のDMAリクエストが完了）• 各リクエスト･マルチプレクサ･チャネルに対する割込みイベント
割込みイベント
リクエスト･マルチプレクサ同期オーバーラン

説明
同期入力オーバーランが検出されたときにセット（その前に、プログラムされた数の送信されたDMAリクエストまたは生成されたDMAMUXイベントが完了）

DMAMUXリクエストジェネレータチャネルごとに、トリガオーバーランをソフトウェアに通知可能です。
DMAMUXリクエストマルチプレクサチャネルごとに、同期オーバーランをソフトウェアに通知可能です。

19

低電力モードでのDMA/DMAMUX
モード

20

説明

RUN

有効

低電力RUN有効SLEEP

有効 DMA/DMAMUX割込みがCPUをウェイクアップ可能

低電力SLEEP

有効 DMA/DMAMUX割込みがCPUをウェイクアップ可能

STOP0/STOP1

クロックトオフ&停止 DMA/DMAMUXレジスタは保持

STANDBY

パワーダウン状態 DMA/DMAMUXは、STANDBYモード終了後に再初期化する必要がある

SHUTDOWN

パワーダウン状態 DMA/DMAMUXは、SHUTDOWNモード終了後に再初期化する必要がある

この表には、電源モードに対応するDMAコントローラとDMAMUXの状態が示されています。
SLEEPモードと低電力SLEEPモードでは、DMAコントローラとDMAMUXは有効のままであり、たとえば、UARTやI2Cで受信した文字をメモリに転送した後にCPUをウェイクアップするためなどに使用できます。

20