01
前言
在開發指南(七)中,我們簡單介紹了LBT模塊中低電壓檢測功能的測試,本章我們講解一下24位高精度SD ADC的使用方法,詳細寄存器資料參考應用手冊第27章節。
02
SD ADC結構框圖
在講解SD ADC之前,我們首先來看一下SD ADC的功能框圖如下圖1,從圖中可以看到整個SD ADC模塊包括兩個多路選擇器IAMUX,用來選擇進入 PGIA 的信號 IAINP/IAINN,一個PGIA模塊用來進行信號放大,而后PGIA的輸出經過簡單的RC濾波后,可選擇經過BUF1/2輸入到SD ADC,根據設置的VREF電壓進行AD轉換,最后輸出24位ADC_D[23:0]。
圖1.SD ADC功能框圖
03
SD ADC配置
了解SD ADC框架后我們編寫簡單的測試程序,使用SD ADC模塊進行信號的測量計算。
軟件的配置如下圖2:
圖2.SD ADC配置
(1)SD ADC初始化:
第一步先使能SD ADC時鐘,然后調用庫函數進行初始化配置,濾波器我們一般選擇SINC3,采樣頻率250kHz,過采樣率16384,基準電壓選擇AVDDR-VSS,使能BUF1/2(BUFFER頻率默認fb=fs/8)。
(2)PGIA初始化:
內部和外部chopper選擇分別為FS/128和FS/256,增益選擇256倍,大電流模式,正負輸入端分別選擇A1和A0。
配置好之后,使能PGIA和SD ADC,等待SD ADC轉換完成。
然后我們編寫SD ADC測試程序,如下圖3:
圖3.SD ADC測試程序
由于在ADC轉換完成之前讀到的數據都是上一筆ADC數據,所以我們需等待SD ADC轉換完成標志位置1,再將標志位清0,然后獲取ADC轉換結果并將ADC碼值緩存,最后通過串口將數據以16進制發送出去,同時通過LCD驅動將ADC碼值顯示在液晶屏上。
在軟件配置中,我們選擇了A0-A1作為PGIA的輸入通道,放大倍數為256倍,基準電壓AVDDR=2.4V,現在我們利用AVDDR外接分壓電阻為10k-10Ω-10k-GND,從10Ω兩端得到一個共模電壓約1.2V,差分電壓約為1.2mV的信號,接入A0-A1,測試結果如下圖 4。
圖4.SD ADC測試結果
我們按照應用手冊中的計算公式(如下)
計算Vin的電壓結果為:
Vin=DEC*Vref/2^23/0.75/GAIN=791220*2.4/2^23/0.75/256=1.179mV
實際應用過程中并不需要計算此電壓值,需要根據不同產品進行單獨校準,保證測量結果的準確性。
04
開發問題簡析
1、相關寄存器無法寫入,要注意先打開SD ADC的時鐘源,才能對寄存器進行操作。
2、SD ADC轉換結果不正確,要檢查外圍電路、信號輸入端口及確定信號的輸入范圍,是否有開啟PGIA和BUFFER等限制輸入范圍的模塊。
3、要及時清除ADC轉換完成標志位。
05
總結
本章簡單介紹了SD ADC模塊功能的使用,應用上的拓展可以調整相應的ADC配置,搭配合適的算法,達到最理想的效果。
審核編輯:劉清
-
mcu
+關注
關注
146文章
17156瀏覽量
351280 -
adc
+關注
關注
98文章
6500瀏覽量
544734 -
soc
+關注
關注
38文章
4169瀏覽量
218323 -
多路選擇器
+關注
關注
1文章
22瀏覽量
6530
原文標題:帶32位MCU和高精度ADC的SoC產品 ----SD93F系列開發指南(八)
文章出處:【微信號:杭州晶華微,微信公眾號:杭州晶華微】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論