STM32U5
DMA：レジスタファイル
Rev 1.0

こんにちは。このプレゼンテーションでは、GPDMA と LPDMA のレジスタファイルについて説明します。

1レジスタファイル
DMA のレジスタファイル
グローバルレジスタ

チャネル x のリンクリストレジスタファイル（LLI0 とも呼ばれる）

DMA_SECCFGR
DMA_PRIVCFGRDMA_RCFGLOCKR
DMA_MISRDMA_SMISRDMA_CxTR1
DMA_CxTR2
DMA_CxBR1
DMA_CxSARDMA_CxDAR
DMA_CxTR3
DMA_CxBR2
DMA_CxLLRGPDMA チャネル 12 ~ 15 にのみ存在

チャネル x のその他のレジスタ
DMA_CxLBAR
DMA_CxFCR
DMA_CxSR
DMA_CxCR

2

レジスタファイルは、すべてのチャネルに適用可能なグローバルレジスタと、チャネル関連のレジスタで構成されています。
チャネル関連のレジスタは、リンク中に更新できるチャネルリンクリストレジスタファイルと、リンクの影響を受けないその他のレジスタに分けられます。
レジスタ CxTR3 および CxBR2 は、GPDMA チャネル 12 ~ 15 にのみ存在します。
グローバルレジスタの概要について説明します。
- SECCFGR および PRIVCFGR レジスタは、各チャネルのセキュリティ属性と特権属性を設定します。
- RCFGLOCKR レジスタは、次のリセットまでセキュア設定と特権設定をロックするために使用されます。
- MISR および SMISR は、非セキュアとセキュア領域の割込みステータスレジスタです。
チャネルリンクリストレジスタファイルの概要について説明します。
- TR1、TR2、および TR3 は、転送設定レジスタです。
- BR1 と BR2 は、それぞれ繰り返しブロックレベルで、ブロックでの転送を制御します。
- SAR と DAR は転送元および転送先アドレススレジスタです。
- LLR は、リンク操作を制御します。
その他のチャネルレジスタの概要について説明します。
- LBAR は、LLI を含む 64 KB の領域を指す- FCR は、フラグクリアレジスタ- SR は、ステータスレジスタ- CR は、制御レジスタ2

チャネルダイレクトプログラミング（リンクリストなし）（DMA_CxLLR[31:0]=0 を保持）

チャネルの状態 = IDLE
DMA チャネルの再設定（DMA_CxLLR[31:0] = 0 を保持）

DMA チャネルの初期化（DMA_CxLLR[31:0] = 0を保持）

チャネルが有効でない場合にのみ直接再設定する
 バウンドバッファで連続 DMA サービスをセットアップするには、少なくとも（転送元／転送先）メモリ開始アドレスを再プログラムする必要がある

DMA チャネルの有効化

チャネルの状態= ACTIVE

ユーザ設定は正しい？

N

Y

USEF = 1 を設定
DMA チャネルの無効化

レジスタファイルからのデータ転送を実行

転送エラーなし？
Y

TCF = 1 を設定
DMA チャネルの無効化

N

DTEF = 1 を設定
DMA チャネルの無効化

チャネルは、次のいずれかのタイミングでのデータ転送の完了時に完了する ブロック完了：BNDT[15:0]=0 GP ch12 ~ 15 の繰り返しブロック完了：
BRC[10:0]=BNDT[15:0]=0終了

この図では、リンクリストなしの GPDMA チャネルのダイレクトプログラミングについて説明します。
GPDMA_CxLLR がゼロの場合、リンクは発生しません。
最初に、ソフトウェアは、チャネル関連のレジスタで直接プログラミングすることで、チャネルを初期化します。
その後、ソフトウェアはチャネルを有効にします。
DMA ハードウェアが設定を確認し、エラーが検出されると、USEF フラグがセットされ、チャネルは自動的に無効になります。
設定エラーがない場合、DMA は転送を続行します。
転送中にエラーが発生した場合、DTEF フラグがセットされ、チャネルは自動的に無効になります。
転送エラーが検出されない場合、転送は正常に完了し、TCF とも呼ばれる転送完了フラグ（Transfer Complete Flag）がセットされます。
チャネル転送は、BNDT[15:0] がゼロになったときに完了します。これは、転送元から転送するデータバイトのブロック数です。
GPDMA のチャネル 12 ~ 15 では、チャネル転送はブロック繰り返しカウンタと転送する
データバイトのブロック数がゼロになったときに完了します。
チャネルの再設定は、チャネルが無効の場合にのみ可能です。リンクが設定されていない場合、同じ転送を再開するために、ソフトウェアは少なくとも転送元／転送先アドレスの再プログラミングを行います。

3

DMA のレジスタファイル：GP と LP の比較
GP と LP の比較
レジスタ/追加レジスタ
CxSR

追加レジスタフィールド
FIFOL[7:0]：FIFO レベル

CxCR

LAP：リンク割当てポート

CxTR1

DAP、SAP：転送元/転送先の割当てポート
DHX、DBX、SBX：バイトの順序変更
PAM[1]：パック/アンパック
DBL_1[5:0]、SBL_1[5:0]：転送元/転送先バースト長（0 ~ 64）

CxTR2

DREQ：転送先からのハードウェアリクエスト

CxBR1（ch12 ~ 15）

BRC[10:0]：繰り返しブロックカウンタ
SDEC、DDEC：転送元/転送先のインクリメント/デクリメント（バースト間）
BRSDEC、BRDDEC：転送元/転送先のインクリメント/デクリメント（ブロック間）+ CxTR3（ch12 ~ 15）DAO[12:0]、SAO[12:0]：転送元/転送先のアドレスオフセット（バースト間）+ CxBR2（ch12 ~ 15）

BRDAO[15:0]、BRSAO[15:0]：転送元/転送先のアドレスオフセット（ブロック間）

CxLLR

UT3（CxTR3 の条件付きの更新）
UB2（CxBR2 の条件付きの更新）
4

この表は、GPDMA と LPDMA のレジスタファイルの違いを示しています。
LPDMA はチャネル FIFO をサポートしていないため、LPDMA のチャネルステータスレジスタにFIFO レベルフィールドはありません。
LPDMA のチャネル制御レジスタは、固有のマスタポートをサポートしているため、リンク転送の実行に使用される AHB マスタポートを選択するフィールドはありません。
同様に、LPDMA の転送レジスタ 1 は、固有のマスタポートをサポートしているため、リンク転送の実行に使用される AHB マスタポートを選択するフィールドはありません。
LPDMA チャネルには FIFO が含まれていないため、バイトの順序変更、パック、およびアンパック操作などのデータ操作はサポートされません。
GPDMA と異なり、LPDMA にはバースト転送は実装されず、ブロック転送のみが実装されます。
LPDMA は転送元ペリフェラルからのリクエストのみをサポートするため、転送先ペリフェラルからハードウェアリクエストを選択するフィールドはありません。
GPDMA のチャネル 12 ~ 15 にのみ、ブロック転送を繰り返す機能と、連続したバースト間および連続したブロック間に符号付きオフセットを追加する機能があります。
これらのオフセットは、バーストオフセットの場合は TR3、ブロックオフセットの場合は BR2 にプログラムされ、これらのチャネルにのみ存在します。
結果として、ユーザは、UT3 および UB2 制御ビットをプログラミングすることで、リンクが実行されたときにこれらのレジスタを更新するかどうかを決定できます。

4© STMicroelectronics - All rights reserved.
ST logo is a trademark or a registered trademark of STMicroelectronics International NV or its affiliates in the EU and/or other countries.
For additional information about ST trademarks, please refer to www.st.com/trademarks.
All other product or service names are the property of their respective owners.

このプレゼンテーション以外に、GPDMA および LPDMA に関する他のプレゼンテーションを参照できます。
- DMA の概要
- DMA 転送のハードウェアビューとソフトウェアビュー
- 自律 DMA と低消費電力モード- DMA：リンクリスト- DMA のサーキュラバッファリングとダブルバッファリング- DMA の 2 次元アドレス- DMA のエラーレポート- DMA の入出力 LLI 制御

5