連載
マイコンに搭載されているDMAって何?:Q&Aで学ぶマイコン講座(86)(4/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、中級者の方からよく質問される「マイコンに搭載されているDMAって何?」についてです。
DMA転送の動作
- DMAコントローラーが転送元ペリフェラルもしくはメモリからデータを読み出す
- DMAコントローラーが転送先ペリフェラルもしくはメモリにデータを書き込む
- 転送データサイズの残数カウンタを1減らす
- 残数カウンタが0になるまで1〜3を繰り返す
DMA転送の使用方法
マイコンでの一般的なDMA転送の利用例として、文字列データを内蔵SRAMからUARTへ転送する例を次に示します。
- システムクロックの設定
- DMAコントローラーの初期化
- UARTコントローラーの初期化
- DMAコントローラー転送設定
- DMAコントローラー動作開始
- UART完了ビットのクリア
- UARTのDMA開始ビットのセット
- DMAの転送完了割込みを待つ
- DMA転送完了
参考)DMA転送はライブラリとサンプルコードを使用すると簡単
実際にDMA転送を試してみたいが、複雑そうだと感じる方には、各メーカーが提供するサンプルコードを試してみることをおすすめします。今回例に挙げたSTM32G0マイコンを使用して文字列データを内蔵SRAMからUARTへDMA転送してみたい方は、STM32CubeMXを使用して、サンプルコードを取得できます。STM32CubeMX起動後に”ACESS TO EXAMPLE SELECTOR”ボタンを押すと、サンプルコードの一覧表を閲覧できます(図4)
この中の”UART_TwoBoards_COMDMA”ではDMAを使用したUARTの送受信サンプルコードが取得可能です。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- D-Aコンバーターの仕組みと使い方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「D-Aコンバーターの仕組みと使い方」についてです。 - RTC(Real Time Clock)の機能と使い方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「RTC(Real Time Clock)の機能」についてです。 - CRC(Cyclic Redundancy Check:巡回冗長検査)って何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「CRC(巡回冗長検査)」についてです。 - マイコンに搭載されているAESって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、上級者の方からよく質問される「マイコンに搭載されているAESって何?」についてです。 - USARTって何?(非同期式/同期式のシリアルインタフェース)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「USARTって何?」についてです。 - マイコンボードが動作しないときの5つのチェックポイント
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコンボードが動作しないときの5つのチェックポイント」についてです。