DMAのモードとリクエスト
DMAとは?
DMA(Direct Memory Access)はCPUを介さずにメモリ間やペリフェラル間でデータを転送する機能。 これによりCPUの負荷を軽減しつつ高速なデータ転送が可能になる。
DMAのモード
DMAにはいくつかの転送モードがあり、用途に応じて使い分ける。
1. 通常モード(Normal Mode)
- データ転送が完了するとDMAは自動で無効化される。
- 1回の転送が終わるたびに再設定が必要。
- 用途: 単発のデータ転送(ADCの単発測定など)。
NOTE
I2CのHALライブラリはNormal Modeのみ対応している。 Circular Modeの動作は保証されない。 各機能については各マイコンの公式リファレンスを参照すること。
2. 循環モード(Circular Mode)
- 転送が完了すると自動で次の転送が始まる。
- 転送を継続して行えるため、リアルタイム処理に向く。
- 用途: ADCの連続測定、UARTの連続受信など。
DMAのリクエスト
DMAは特定のペリフェラル(UART、SPI、ADCなど)からのリクエストでデータ転送を開始する。
ペリフェラルリクエスト
- 各ペリフェラル(ADC、UART、SPIなど)はデータ送受信時にDMAへリクエストを送る。
- DMAが有効になると、自動でメモリとの間でデータ転送を行う。