チャネル制御構造体の一部であり、μDMA 転送のパラメータを設定します。
注:オフセットアドレスは、μDMA モジュールのベース・アドレスではなく、システム・メモリ上のチャネル制御構造体の ベース・アドレスからのものです。
DMA チャネル制御ワード (DMACHCTL)
ベース n/a オフセット 0x008 タイプ R/W、リセット -
表 2 ビット / フィールド
名称 タイプ リセット 説明
31:30 DSTINC R/W - ディスティネーションアドレス・インクリメント
ディスティネーションアドレスのインクリメント値を設定します。
アドレスのインクリメント値は、ディスティネーションのデータサ イズ(DSTSIZE)の値以上にして下さい。
値 説明 0x0 バイト
8ビット単位のインクリメント 0x1 ハーフワード
16ビット単位のインクリメント 0x2 ワード
32ビット単位のインクリメント 0x3 インクリメントなし
29:28 DSTSIZE R/W - ディスティネーションデータ・サイズ
ディスティネーションのデータ・サイズを設定します。
注: DSTSIZEはSRCSIZEと同じである必要があります。
値 説明
0x0 バイト
8ビット・データ・サイズ 0x1 ハーフワード
16ビット・データ・サイズ
0x2 ワード
32ビット・データ・サイズ
0x3 予約
27:26 SRCINC R/W - ソースアドレス・インクリメント
ソースアドレスのインクリメント値を設定します。
アドレスのインクリメント値は、ソースのデータサイズ (SRCSIZE)の値以上にして下さい。
値 説明
0x0 バイト
8ビット単位のインクリメント 0x1 ハーフワード
16ビット単位のインクリメント
0x2 ワード
32ビット単位のインクリメント 0x3 インクリメントなし
25:24 SRCSIZE R/W - ソースデータ・サイズ
ソースのデータ・サイズを設定します。
注: DSTSIZEはSRCSIZEと同じである必要があります。
値 説明
0x0 バイト
8ビット・データ・サイズ. 0x1 ハーフワード
16ビット・データ・サイズ.
0x2 ワード
32ビット・データ・サイズ.
0x3 予約
23:18 予約 R/W - 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。
17:14 ARBSIZE R/W - アービトレーション数
μDMAコントローラがアービトレーションを行うμDMA転送単位 を設定します。設定可能なアービトレーションの単位は、2の累 乗になります。
値 説明
0x0 1転送
μDMA転送を実行するたびにアービトレーションを 行います。
0x1 2 転送
0x2 4 転送
0x3 8 転送
0x4 16 転送
0x5 32 転送
0x6 64 転送
0x7 128 転送 0x8 256 転送 0x9 512 転送 0xA-0xF 1024 転送
転送数(XFERSIZE)の最大値が1024のため、こ の設定のときアービトレーションは発生しません。
13:4 XFERSIZE R/W - 転送数
転送するデータの総数を設定します。転送するデータ総数から 1を引いた値を設定して下さい (1個のデータを転送する場合
は0を設定してください)。 この10ビット・フィールドの最大値 1023のとき、転送数が1024になります。
転送数が表しているのは転送するデータの回数であって、バイ ト数ではありません。データ・サイズが32ビットであれば、この フィールド値は、転送する32ビットのワード数になります。
μDMAコントローラは、アービトレーションに入る前にこのフィー ルドを更新して、残っている転送数を更新します。
3 NXTUSEBURST R/W - ネクスト・バースト
ペリフェラル・スキャッタ・ギャザーモードの最後のμDMA転送 用に、DMAUSEBURSTSETレジスタのSETnビットを自動的 に1にセットします。通常、最後のμDMA 転送については、残っ ている転送予定のデータ数がアービトレーション・サイズよりも 少なければ、μDMAコントローラはシングルリクエストを使用し て残っているデータを転送します。このビットが1にセットされる と、μDMA コントローラはバーストリクエストを使用して残ってい るデータの転送を完了します。
2:0 XFERMODE R/W - μDMA 転送モード
μDMAの動作モードを設定します。転送モードの詳細な説明に ついては、「転送モード」の節を参照してください。
このレジスタはシステムのRAM上にあるため、リセット値を持 ちません。したがって、μDMA のチャネルをイネーブルにする前 にこのフィールドを初期化して0にして下さい。
値 説明
0x0 ストップモード 0x1 ベーシックモード 0x2 オートモード 0x3 ピンポンモード
0x4 メモリ・スキャッタ・ギャザーモード 0x5 オルタネートメモリ・スキャッタ・ギャザー 0x6 ペリフェラル・スキャッタ・ギャザーモード 0x7 オルタネートペリフェラル・スキャッタ・ギャザー
モード
XFERMODE ビット・フィールドの値 ストップモード
μDMA チャネルが停止し、設定データが無効になります。転送は発生しません。
ベーシックモード
転送リクエストが発生すると(ペリフェラルからでもソフトウェア・リクエストからでも)、ARBSIZE フィールドで指定 された数の転送が実行されます。
オートモード
転送リクエストが発生すると(ペリフェラルからでもソフトウェア・リクエストからでも)、XFERSIZE フィールドで指 定された数の転送が実行されます。
ピンポンモード
このモードでは、プライマリとオルタネートの両方のチャネル制御構造体を使用します。プライマリまたはオルタ ネート・チャネル制御構造体のXFERSIZEフィールドにより指定された数の転送が完了すると、μDMAコント ローラはもう一方のチャネル制御構造体用の転送に切り替わります。このような切り替えは、チャネル制御構造 体のどちらかがピンポンモードに設定されなくなるまで続きます。各制御構造体によるμDMA転送が完了した時 点で、割り込みが生成されます。詳細は、「ピンポンモード」の節を参照してください。
メモリ・スキャッタ・ギャザーモード
メモリ・スキャッタ・ギャザー・モードを使用する場合は、プライマリ・チャネル制御構造体にこのモードを設定して 下さい。これにより、実際のDMA 転送情報が格納されたチャネル制御テーブルの情報をロードすることが可能 になります。プライマリ・チャネル制御構造体のソース・エンドポインタには、オルタネート・チャネルコントロール レジスタにロードする制御テーブルの開始アドレスを設定します。オルタネート・チャネル制御構造体の XFERMODEフィールドには0x5を設定して下さい。そのタスクが完了すると、μDMA コントローラはプライマリ・チ ャネル制御構造体に切り替え、オルタネート・チャネル制御構造体に次のタスクをロードします。このプロセスは、
制御テーブル上のタスクが空になるまで継続します。最後のタスクには、XFERMODEフィールドには0x5以外の 値を設定してください。動作を継続する場合は、最後のタスクでプライマリ・チャネル制御構造体を更新して、そ の制御テーブルの先頭に戻したり、他の制御テーブルの先頭にすることができます。詳細は、「メモリ・スキャッ タ・ギャザーモード」の節を参照してください。
オルタネートメモリ・スキャッタ・ギャザーモード
メモリ・スキャッタ・ギャザー・モードを使用する場合には、オルタネート・チャネル制御構造体にはこのモードを設 定して下さい。
ペリフェラル・スキャッタ・ギャザーモード
ペリフェラル・スキャッタ・ギャザー・モードを使用する場合は、プライマリ・チャネル制御データ構造体にこのモー ドを設定して下さい。このモードでは、メモリ・スキャッタ・ギャザー・モードの場合と同じ動作をしますが、オルタ ネート・チャネル制御構造体の XFERSIZE フィールドで指定された数の転送を一度に実行するのではなく、
ARBSIZE フィールドで指定された数の転送をリクエストが発生するたびに実行します。詳細は、「ペリフェラル・
スキャッタ・ギャザー・モード」の節を参照してください。
オルタネート・ペリフェラル・スキャッタ・ギャザーモード
ペリフェラル・スキャッタ・ギャザー・モードを使用する場合は、オルタネート・チャネル制御構造体にはこのモード を設定して下さい。
8.6 μDMA レジスタの説明
μDMA のベース・アドレスは0x400F.F000です。