MSPM0L系列的ADC是一個12bit的SAR ADC,采樣頻率最高1.45MHz,最高可做到11.2位的實際有效位(ENOB)
MSPM0L提供了外部的VREF+/-管腳,可以使用外部的參考電壓源以獲得最好的ADC性能,同時參考電壓還可以選擇VDD電壓,或者內(nèi)部的1.4/2.5V參考電壓,需要注意的是,當(dāng)選用內(nèi)部參考電壓的時候,ADC的采樣率最大不能超過200KHz
ADC的采樣模式分為兩種,主要是采樣時間的區(qū)別
自動采樣:有兩個采樣時間窗口(Sample Window)定時器可以配置不同的采樣時間給到采樣通道選擇,
手動采樣:采樣時間由ADC寄存器的SC位的高電平時間決定,在這個模式下ADC不支持事件觸發(fā),只能使用軟件觸發(fā)采樣
ADC的轉(zhuǎn)換模式有單次轉(zhuǎn)換,序列轉(zhuǎn)換,這個兩個模式都支持重復(fù)模式,也就是連續(xù)采樣
序列轉(zhuǎn)換MSPM0L系列最大支持4個通道的配置,每一個通道都可以單獨配置參考電壓源和采樣時間窗口,在數(shù)據(jù)手冊中,可以查到每一個通道對應(yīng)的映射信息
實操例程1
下面通過一個簡單的ADC單通道單次采樣來看下SYSCONFIG的配置,主要配置如下
可以看到,ADC時鐘用的是32MHz的ULPCLK,采樣通道使用的是PA15,也就是9通道采樣,
使用的是自動采樣模式,采樣周期用的采樣窗口0的配置,125us,參考電壓使用的是VDDA電壓,這里用的是3.3V,使用軟件觸發(fā)ADC,轉(zhuǎn)換結(jié)果存儲在結(jié)果寄存器0中(MEMRES0)
在中斷設(shè)置中,設(shè)置為結(jié)果寄存器0裝載中斷
在程序中,我寫了一個串口發(fā)送ADC數(shù)據(jù)用的函數(shù),用來檢測ADC數(shù)據(jù)
剩下的程序比較簡單,需要注意的是,ADC單次轉(zhuǎn)換完成后,需要重新使能ADC才可以繼續(xù)下一次轉(zhuǎn)換
配套例程為ADC_UART,需要復(fù)制到SDK目錄下運行
實操例程2
接下來配置一個使用DMA把ADC的轉(zhuǎn)換數(shù)據(jù)搬運到指定的內(nèi)存地址的程序
在ADC中使用DMA,有FIFO和非FIFO模式,主要的區(qū)別是結(jié)果存放的位置不一樣,在非FIFO模式中,每個ADC通道的結(jié)果會存放在配置的結(jié)果寄存器MEMRESx中,而在FIFO模式中,結(jié)果寄存器會變成FIFO的緩沖區(qū),MSPM0L系列最大支持4個結(jié)果寄存器,也就是最大支持4個FIFO緩沖區(qū),這個模式下,讀取結(jié)果需要從特定的FIFODAT寄存器中讀取,這個寄存器會把兩次轉(zhuǎn)換的結(jié)果拼接在一起,所以FIFO模式下的DMA一次傳輸4個字節(jié)
下圖是ADC傳輸結(jié)果數(shù)據(jù)的FIFO和非FIFO模式的總結(jié)
非FIFO的DMA讀寫中,SAMPCNT必須為1,也就是一次結(jié)果觸發(fā)一次DMA傳輸,以下是非FIFO的DMA配置
而在FIFO模式的DMA讀寫中,由于FIFODAT寄存器是把兩次結(jié)果拼接,所以在DMA的觸發(fā)源需要選擇MEM1的載入中斷,而SAMPCNT的值根據(jù)實際需要填寫
例程采用連續(xù)單次采樣模式,軟件觸發(fā)
最后配置ADC中斷為DMA傳輸完成中斷
在程序中我設(shè)置了一個10組結(jié)果的變量用于存放結(jié)果
在使用DMA傳輸ADC的數(shù)據(jù)的時候需要注意,每次DMA完成傳輸后,需要在ADC的寄存器中重新使能DMAEN位,才可以再次觸發(fā)DMA傳輸
配套例程為ADC_DMA
-
接口
+關(guān)注
關(guān)注
33文章
9005瀏覽量
153780 -
SAR
+關(guān)注
關(guān)注
3文章
426瀏覽量
46938 -
adc
+關(guān)注
關(guān)注
99文章
6709瀏覽量
549282 -
dma
+關(guān)注
關(guān)注
3文章
576瀏覽量
103295 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5683瀏覽量
104888
原文標(biāo)題:MSPM0L1306開發(fā)板教程8 - ADC
文章出處:【微信號:創(chuàng)易棧,微信公眾號:創(chuàng)易棧】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MSPM0L1306開發(fā)板教程之OPA

電賽:mspm0l1306的開發(fā)板可以燒錄程序,但是程序運行不了,怎么解決這個問題?
MSPM0L1306開發(fā)板教程之開發(fā)環(huán)境搭建

MSPM0L1306開發(fā)板教程之DMA

MSPM0L1306開發(fā)板教程之通用定時器

MSPM0L1306開發(fā)板教程之I2C

MSPM0L1306開發(fā)板教程之WWDT

TI MSPM0L1306開發(fā)板簡介

MSPM0 L系列MCU硬件開發(fā)指南

MSPM0L1306 LaunchPad開發(fā)套件(LP?MSPM0L1306)

評論