概述
ADC在產品設計中是非常常用的MCU外設模塊,當在某些復雜的應用下需要非常快的采樣速度時,使用DMA進行數據搬運,可以更便捷的來實現對數據的高效搬運,結合本例在FSP上輕松配置您的所需,同時也讓我們了解一下瑞薩RA6M4系列DMAC和ADC的詳細介紹。
DMAC簡介
DMAC (Direct Memory Access Controller)稱為直接存儲訪問控制器/直接內存訪問控制器, 可以在不占用 CPU 總線資源的情況下,將數據從一個內存位置傳輸到另一個內存位置。
1.1 DMAC特性
RA6M4包括一個8通道直接內存訪問控制器(DMAC),無需CPU干預即可傳輸數據。當產生DMA傳輸請求時,DMAC將存儲在傳輸源地址的數據傳輸到目標地址。
點擊可查看大圖
1.2 DMAC框圖
點擊可查看大圖
1.3 DMAC激活源
● 軟件觸發
●外設模塊的中斷請求
●外部中斷請求
DMAC激活源需在DMTMD寄存器的 DCTG[1:0] 位進行設置。
1.3.1 軟件觸發DMAC
可以通過軟件啟動DMA傳輸
1.3.2 來自片上外設模塊或外部中斷請求激活DMAC
可以將片上外設模塊的中斷請求或外部中斷請求設置為DMAC的激活源。可以通過ICU的DELSRn寄存器的 DELS[8:0]位 (n = 0~7) 為每個通道單獨選擇激活源。
1.3.3 DMAC中斷優先級
程序執行中存在多個DMA傳輸請求時,DMAC來決定每個具有DMA傳輸請求的通道的優先級。通道優先級固定如下:
通道 0 > 通道 1 > 通道 2 > 通道 3… > 通道 7
其中通道 0: 優先級最高
如在數據傳輸期間產生DMA傳輸請求時,在數據已傳輸之后再進行通道仲裁,優先級較高的通道的DMA優先傳輸。
1.3.4 事件鏈接
每個DMAC通道在每次完成數據傳輸或塊數據傳輸時,都會輸出一個事件鏈接請求信號(DMACn_INT)。
當傳輸目的地是外部總線時:在寫入緩沖區操作被接受時會產生一個事件鏈接請求信號。
如果寫入傳輸的最后數據時發生總線錯誤,則會發生傳輸結束事件和錯誤響應檢測中斷(DMA_TRANSERR)。
1.4 DMAC傳輸模式
正常模式 (Normal Mode):
在正常模式下,每次DMAC通道接收到配置的ELC事件時,都會傳輸單個數據單元。數據單元可以是1字節、2字節或4字節。源地址和目標地址可以是固定的、遞增的、遞減的,或者在每次傳輸后向下一個數據單元添加偏移量。每次傳輸后,16位計數器遞減。當計數器達到0時,ELC事件將不再觸發傳輸,并且可以中斷CPU以指示所有傳輸已完成。
重復模式 (Repeat Mode):
重復模式的工作方式與普通模式相同,但長度限制為范圍[1,1024] 內的整數。當傳輸計數器達到0時,計數器將重置為其配置的值,重復區域(源或目標地址)將重置為其起始地址,剩余的塊計數將減少1。當塊計數達到0時,ELC事件將不再觸發傳輸,并且CPU可能會中斷以指示所有傳輸已完成。
塊模式 (Block Mode):
在塊模式下,每個中斷傳輸的數據單元量可以設置為范圍 [1,1024] 中的整數。要傳輸的塊數也可以配置為16位數字。每次塊傳輸后,重復區域(源地址或目標地址)將重置為原始地址,另一個地址將遞增或遞減到下一個塊。
重復-塊模式 (Repeat-Block Mode):
1個DMA傳輸請求的1個塊數據傳輸,最大可設置塊大小:1024,塊傳輸可以重復,最大可設置重復大小:64K,可選擇的自由運行功能。
支持三種位長:8、16、32位
如果是8位時塊大小為0xFFFF
如果是16位時塊大小為0x7FFF
如果是32位時塊大小為0x3FFF
二
ADC簡介
ADC即模擬數字轉換器,ADC英文全稱(Analog-to-digital converter),用于將模擬電壓的連續信號轉換為離散的數字信號。可以將我們生活中的溫度、壓力、聲音這樣的模擬信號通過ADC轉化為可以通過單片機處理的數字信號,方便檢測。
2.1 ADC特性
12、14或16位最大分辨率,具體取決于MCU
配置掃描包括:
多個模擬通道
溫度傳感器通道
電壓傳感器通道
可配置的掃描啟動觸發器:
軟件掃描觸發器
硬件掃描觸發器(例如定時器溢出)
來自ADTRGn端口引腳的外部掃描觸發器
可配置掃描模式:
單次掃描模式,其中每個觸發器啟動一次掃描
連續掃描模式,連續掃描所有通道
組掃描模式,其中通道分為組A和組B。可以為組分配不同的啟動觸發器,并且可以將組A優先于組B。當組A優先于組B時,組A觸發器將掛起正在進行的組B掃描。
支持添加加法/平均轉換后的樣本
掃描完成時的可選回調
支持采樣保持
雙觸發
帶中斷和事件輸出的硬件比較器
2.2 ADC框圖
點擊可查看大圖
點擊可查看大圖
2.3 工作模式
驅動程序支持三種操作模式:單次掃描、連續掃描和組掃描模式。在每種模式下,模擬通道按通道號的升序進行轉換,然后掃描溫度傳感器和電壓傳感器(如果它們包含在要掃描的通道模板中)。
單次掃描模式
在單次掃描模式下,每個觸發器掃描一次一個或多個指定通道。
連續掃描模式
在連續掃描模式下,需要單個觸發器才能啟動掃描。掃描將繼續,直到調用 R_ADC_ScanStop()。
組掃描模式
組掃描模式允許應用程序將通道分配給兩個組(A和B)之一。當收到該組的指定ELC啟動觸發器時,轉換開始。
使用優先級配置參數,您可以選擇將組A置于組B之上。如果組A優先于組B,則當發生組A掃描觸發時,組B掃描將中斷。當組A具有優先級時,組B存在以下選項:
在組A掃描完成后重新啟動中斷的組B掃描。
等待另一個組B觸發器和放棄被中斷的掃描。
持續掃描組B并僅在收到組A觸發器時暫停掃描組B。
審核編輯:湯梓紅
-
傳感器
+關注
關注
2553文章
51452瀏覽量
756920 -
mcu
+關注
關注
146文章
17353瀏覽量
352786 -
adc
+關注
關注
99文章
6535瀏覽量
545866 -
瑞薩
+關注
關注
35文章
22312瀏覽量
86821
原文標題:基于RA6M4開發板在FSP上配置DMAC傳輸ADC采樣的方法(上)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論