AD的基礎知識
??AD很復雜,其實也不復雜,因為我們用的不多。
??ADC:模擬量轉數字量的轉換器。
??為什么需要AD呢?
??自然界宏觀的物理量都是連續的。而機器識別的信號0與1是離散的。為了讓機器能夠采集、分析、儲存這些連續的量,所以要把需要被模擬的量轉換為數字量。
??主要的參數:采樣精度與轉換速度。
??采樣精度,也叫作分辨率。如果0-100攝氏度用8位AD來儲存的話,精度計算?
??0000 0000 —— 0攝氏度
??1111 1111 —— 100攝氏度
??100/256 = 0.39攝氏度,0.39就是最小份的分辨率,也就是采樣精度.沒有辦法表現出0.2度
??100/65536 = 0.0015,16位的AD,精度就很高了。
??轉換速度
??從啟動到出結果用的時間,一般來說越快越好。與精度不可兼得。被單位時間采樣數量影響。采樣多,速度不會很快。
??STM32F4使用的AD是逐次逼近型ADC,它產生一系列比較電壓VR,但它是逐個產生比較電壓,逐次與輸入電壓分別比較,以逐漸逼近的方式進行模數轉換的。它比并聯比較型ADC的轉換速度慢,比雙分積型ADC要快得多,屬于中速ADC器件。
多通道AD采集需要使用DMA
??在STM32的手冊中,我們發現,不論是單次采集還是多次采集,轉換完成的數據都會放在同一個地方。
??由于DR寄存器不是一個數組,而是一個字節,所以只能保存最新的轉換結果。例如,通道1和通道2都使用,通道1的轉換結果放在DR寄存器。通道2轉換完畢以后,就會覆蓋通道1的結果。
??程序里,當然可以通過一些處理,讓通道1的結果在被覆蓋之前就保存好。不過,運用STM32的DMA功能,可以更好地解決結果被覆蓋的問題。
DMA的介紹
??重點:用于高速搬運數據,還無需CPU干預。 因此在多通道采集模擬量是,我們可以建立一個數組,用于儲存AD轉換的數據。一旦ADC_DR寄存器里有了新的數據,就把新數據放在數組里。一會兒ADC_DR有了一個新的數據,就放在數組下一位。數組裝滿以后?根據需求來。我們設置的是循環模式,也就是再來一遍,覆蓋之前的數據。
使用CubeMX配置DMA+多通道ADC
??我使用的板子,有兩路NTC熱敏電阻分別接在PC0與PC1上,我們把這兩個引腳用作ADC1的通道10與11。
啟用DMA
??新建AD.c與AD.h文件,設置全局的接收數組與計數器。
//AD.c
uint32_t AD_Buf[ADC_CHANNEL_CNT];
uint32_t DMA_CNT = 0;
//AD.h
#define ADC_CHANNEL_CNT 2
extern uint32_t AD_Buf[ADC_CHANNEL_CNT];
extern uint32_t DMA_CNT;
??在主函數中可以借助HAL庫提供的HAL_ADC_Start_DMA()函數,開啟ADC的DMA功能,指定接收數組為AD_Buf,并指定接收的字符數為ADC_CHANNEL_CNT。
??DMA通常用于處理大量數據,但是目前,每秒發送兩個數據,數據量很小,沒有體現出DMA的特點。雖然只打印了兩個數據,但是DMA到底采集了多少數據?已知DMA在AD轉換完成以后“搬運”數據,所以我們可以在ADC轉化完成的中斷函數里做計數。
//AD.c
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
if(hadc==(&hadc1))
{
DMA_CNT++;
}
}
//main.c main()
while (1)
{
HAL_Delay(1000);
for(int i=0;i printf("DMA采集數據的次數是 %d",DMA_CNT); DMA_CNT=0; } ??我看到的現象是,DMA_CNT大約是15W,每次兩個數據,也就是DMA1秒鐘搬運了30W個字節。可以想象,如果不是AD轉換速度限制,DMA還可以更快一點. ??至于采集過來的AD值到底怎么用,那就是另一個問題了。
上一篇:HAL庫教程13:AD+DMA采集數據的濾波
下一篇:HAL庫教程11:定時器的緩沖功能與影子寄存器
推薦閱讀
史海拾趣
All Sensors在傳感器技術領域一直保持著世界領先的地位。公司掌握著核心的MEMS傳感器技術,如獨有的CoBeam2 TM傳感器技術等。這些技術的應用使得All Sensors的傳感器在精度、穩定性和壽命等方面都達到了行業領先水平。同時,公司還不斷投入研發,推出更多創新產品,滿足不斷變化的市場需求。
協順電子(Finecables)成立于2003年,當時的中國電子行業正處于快速發展期。公司創始人憑借對市場敏銳的洞察力和對技術的執著追求,決定進入連接器制造領域。在創業初期,公司面臨著資金短缺、技術積累不足等挑戰。然而,通過不懈的努力和團隊的合作,協順電子成功研發出首批產品,并獲得了市場的認可。這一階段的經歷為公司的后續發展奠定了堅實的基礎。
為了進一步滿足中國市場的本地化需求,依必安派特在2005年成立了依必安派特電機(上海)有限公司,開始了國產化進程。這一舉措不僅提高了產品的性價比,還縮短了交貨周期,使得依必安派特在中國市場的競爭力得到了顯著提升。隨著國產化產品的快速增長,依必安派特在中國的前十年市場業績突飛猛進,為后續的飛躍發展打下了堅實基礎。
在電子行業的早期,Charcroft Electronics Ltd公司以其對新興技術的敏銳洞察力和創新研發能力脫穎而出。公司不斷投入研發資源,開發出一系列具有競爭力的電子元器件產品,這些產品以其優異的性能和穩定性贏得了市場的廣泛認可。同時,公司還積極與高校和研究機構合作,共同探索新的技術應用領域,為公司的長遠發展奠定了堅實的基礎。
Asian Best Components Co Ltd在電子行業的初期,憑借一支富有創新精神的技術團隊,成功研發出了一款高效能的電子元件。這款產品以其穩定性和高性價比迅速在市場上占據了一席之地。公司借此契機,不斷擴大生產規模,提升產品質量,逐漸在電子元件領域建立了良好的口碑。隨著技術的不斷進步,Asian Best不斷推陳出新,陸續開發出多款領先行業的產品,為公司的發展奠定了堅實的基礎。
Abundance Enterprise Company成立于XXXX年,初期專注于電子元器件的研發和生產。公司憑借對市場需求的敏銳洞察,迅速定位在高端電子元器件市場,通過精準的市場定位和高質量的產品,逐漸在電子行業中占據了一席之地。初創團隊憑借扎實的技術基礎和不懈的努力,成功打破了國外品牌在高端市場的壟斷,為國內電子元器件行業樹立了新的標桿。
出自:天津學生網(www.5icool.com) 目前,中國已成為全球增長潛力最大的電子產品消費大國:全球最大的移動電話市場、第三大PC市場,未來五年還將成為全球第二大半導體市場。這個市場所蘊藏的巨大商機令各國的IT巨頭們心動不已,競相調整中國 ...… 查看全部問答∨ |
大家好,我是一個計算機專業的學生,即將畢業了,我很想做嵌入式系統開發,但不知道我們計算機專業的學生的硬件功底可能做硬件開發。 我們學過模電、數電,單片機、接口技術、計算機組成原理。… 查看全部問答∨ |
中國移動TD二期28個城市即將放號 中國移動TD二期建網的28個省會城市以及直轄市包括:石家莊、太原、呼和浩特 、長春、哈爾濱、南京、杭州、合肥、福州、南昌、濟南、鄭州、武漢、長沙、南寧 、海口、重慶、成都、貴陽、昆明、拉薩 ...… 查看全部問答∨ |
我想每個學電子的,都會為自己的發展方向而憂愁過。在選擇從事方向時不知道就行選擇哪一個? 究竟是做硬件好還是做軟件好,還是全部都做? 希望網友能說是你的看法,給為選擇的人們一定指引。。。… 查看全部問答∨ |
我在主機上建了兩個虛擬機,可客戶端向服務器發送數據,服務器端都沒有反應,建的虛擬FTP客戶端也無法登陸虛擬FTP服務器,請問虛擬機間到底應該如何通信啊??… 查看全部問答∨ |
Additionally, BIOS workarounds for power management can be supported by setting MPC.PMME (D28:F0/F1/F2/F3/F4/F5:Offset D8h:bit 0). When this bit is set, power management events will set SMSCS.PMMS (D28:F0/F1/F2/F3/F4/F5:Offset D ...… 查看全部問答∨ |
壇子里大多數兄弟可能是通過活動才知道WEBENCH這個工具的吧,這一塊我接觸的時間還是比較長的。因為最早從TI沒有收購國家半導體的時候我就已經在用這個工具了,當時是國半的芯片LM2596,LM5007,作為運放供電,但是數據手冊看的麻煩的很啊,所以就 ...… 查看全部問答∨ |