STM32H743-梳理ADC模数转换器在CubeMX上的配置
文章目錄
- 一、前言
- 二、Cloack Configuration
- 三、ADC1 Mode and Configuration
- 四、Configuration
- 4.1、ADC_Setting
- 4.1.1、Clock Prescaler(時(shí)鐘預(yù)分頻)
- 4.1.2、Resolution(分辨率)
- 4.1.3、Scan Conversion Mode(掃描模式)
- 4.1.4、Continuous Conversion Mode(連續(xù)轉(zhuǎn)換模式)
- 4.1.5、Discontinuous Conversion Mode(不連續(xù)序列轉(zhuǎn)換模式)
- 4.1.6、End of Conversion Selection(結(jié)束轉(zhuǎn)換的選擇)
- 4.1.7、Overrun behaviour(溢出處理行為)
- 4.1.8、Left Bit Shift(左移位數(shù))
- 4.1.9、Conversion Data Managerment Mode(轉(zhuǎn)換數(shù)據(jù)管理模式)
- 4.1.10、Low Power Auto Wait(低功耗自動(dòng)等待)
- 4.2、ADC Regular ConversionMode
- 4.2.1、Enable Regular Conversions(使能規(guī)則轉(zhuǎn)換)
- 4.2.2、Enable Regular Oversamping(使能規(guī)則過采樣)
- 4.2.3、Oversamping Right Shift(過采樣位右移)
- 4.2.4、Oversamping Ratio(過采樣率)
- 4.2.5、Regular Oversamping Mode(規(guī)則過采樣模式)
- 4.2.6、Triggered Regular Oversampling(規(guī)則過采樣捕捉)
- 4.2.7、Numer of Conversion(轉(zhuǎn)換通道的數(shù)量)
- 4.2.8、External Trigger Conversion Soure(觸發(fā)轉(zhuǎn)換的外部來源)
- 4.2.9、External Trigger Conversion Edge(觸發(fā)轉(zhuǎn)換的外部沿)
- 4.2.10、Rank
- 4.3、ADC Injected Conversion Mode ( ADC注入轉(zhuǎn)換模式)
- 4.4、Analog Watchdog
一、前言
為了正確使用STM32H7上的ADC模數(shù)轉(zhuǎn)換器,必須先把CubeMX上的ADC配置梳理一遍。為此,在ADC1上開啟通道IN2與通道IN6為例學(xué)習(xí)如何配置CubeMX。
二、Cloack Configuration
配置ADC的時(shí)鐘源adc_ker_ck的頻率為72M。有了72M的時(shí)鐘源,ADC1,ADC2,ADC3就能經(jīng)過異步時(shí)鐘模式2分頻得到36M的最高的工作頻率。下面介紹Parameter Settings配置時(shí)講到如何配置異步時(shí)鐘模式2分頻。
三、ADC1 Mode and Configuration
四、Configuration
Parameter Settings的細(xì)節(jié)有一點(diǎn)多,學(xué)習(xí)ADC的重點(diǎn)。
4.1、ADC_Setting
4.1.1、Clock Prescaler(時(shí)鐘預(yù)分頻)
目的是讓ADC的工作頻率達(dá)到36M(ADC工作頻率超過36M會(huì)不穩(wěn)定)。異步時(shí)鐘模式(基于PLL2P時(shí)鐘)可以選擇Asynchronous clock mode divided by 1,2,4,6,8,10,12,16,32,64,128,256,同步時(shí)鐘模式(基于AHB時(shí)鐘)可以選擇Synchronous clock mode divided by 1,2,4。在上面的時(shí)鐘配置上,adc_ker_ck的時(shí)鐘頻率為70M,所以使用Asynchronous clock mode divided by 2就能讓ADC的工作頻率為36M。
值得注意,同步時(shí)鐘模式任何選項(xiàng)都會(huì)讓ADC的工作頻率超過36M。STM32H743的時(shí)鐘頻率是480M,所以AHB時(shí)鐘頻率是240M。就算選擇Synchronous clock mode divided by 4, ADC的工作頻率也超過36M(240M/4 = 60M)。那么同步時(shí)鐘模式就那么沒有使用的價(jià)值嗎?查看官方手冊,同步模式的優(yōu)點(diǎn)在于ADC與定時(shí)器都基于AHB時(shí)鐘,那么定時(shí)器觸發(fā)定時(shí)器時(shí),ADC的同步觸發(fā)能更加精確。
4.1.2、Resolution(分辨率)
分辨率越高,逐次逼近轉(zhuǎn)換時(shí)間越長。根據(jù)實(shí)際的項(xiàng)目要求選擇分辨率即可。
4.1.3、Scan Conversion Mode(掃描模式)
當(dāng)使能一個(gè)以上通道時(shí),默認(rèn)開啟。
4.1.4、Continuous Conversion Mode(連續(xù)轉(zhuǎn)換模式)
選擇是否使能連續(xù)轉(zhuǎn)換模式。不使能相當(dāng)于單次轉(zhuǎn)換模式,ADC會(huì)將通道的所有轉(zhuǎn)換執(zhí)行一次。使能的話,相當(dāng)于連續(xù)轉(zhuǎn)換模式,該模式用于常規(guī)通道。在連續(xù)轉(zhuǎn)換模式下,如果發(fā)生軟件或者硬件觸發(fā),ADC會(huì)執(zhí)行所有常規(guī)通道的轉(zhuǎn)換,隨后會(huì)自動(dòng)重啟并繼續(xù)執(zhí)行每一個(gè)通道的轉(zhuǎn)換。若想使用ADC+DMA的話,必須先使能連續(xù)轉(zhuǎn)換模式。
4.1.5、Discontinuous Conversion Mode(不連續(xù)序列轉(zhuǎn)換模式)
配置ADC規(guī)則組轉(zhuǎn)換序列的不連續(xù)方式。這里的不連續(xù)含義是指每次觸發(fā)進(jìn)行一個(gè)子組的轉(zhuǎn)換,跟Continuous Conversion Mode的連續(xù)含義不一樣。例如使能了該配置,該參數(shù)的下方就立馬出現(xiàn)Number Of Discontinuous Conversions,如果它設(shè)為2,且ADC1使能了通道1,2,5,7,10,11的話,那么第一次觸發(fā)ADC1采樣時(shí),就會(huì)采樣通道1與通道2的值,再一次觸發(fā)ADC1采樣的話,就會(huì)采樣通道5與通道7值,如此類推。值得注意的是,Continuous Conversion Mode與Discontinuous Conversion Mode不能同時(shí)使能,兩者不能共存。
4.1.6、End of Conversion Selection(結(jié)束轉(zhuǎn)換的選擇)
選擇結(jié)束轉(zhuǎn)換的事件。有End of single conversion(EOC) 與 End of sequence of conversion(EOS)兩種選擇。這兩個(gè)事件會(huì)觸發(fā)中斷與DMA。一般選擇EOS,等所有通道轉(zhuǎn)換完畢后,產(chǎn)生中斷后將全部數(shù)據(jù)取出來,或者使用DMA將全部數(shù)據(jù)取出來。
4.1.7、Overrun behaviour(溢出處理行為)
選擇Overrun data overwritten。ADC+DMA是很好的組合,根據(jù)安富萊的解釋,有了DMA的話,不管怎樣都會(huì)溢出錯(cuò)誤。
4.1.8、Left Bit Shift(左移位數(shù))
選擇No bit shift即可。可以選擇0 ~ 15bit shift,一般不使用它。
4.1.9、Conversion Data Managerment Mode(轉(zhuǎn)換數(shù)據(jù)管理模式)
不使用DMA的話,不使用DFSDM數(shù)字濾波器做后期處理的話,選擇Regular Conversion data stored in DR register only即可。其實(shí)就是選擇存放轉(zhuǎn)換完成的模擬量數(shù)據(jù)的地方而已。
4.1.10、Low Power Auto Wait(低功耗自動(dòng)等待)
有低功耗要求的話,就使能。
4.2、ADC Regular ConversionMode
4.2.1、Enable Regular Conversions(使能規(guī)則轉(zhuǎn)換)
使能它才能采集各個(gè)通道上的模擬量。
4.2.2、Enable Regular Oversamping(使能規(guī)則過采樣)
使能過采樣。有一些細(xì)節(jié)稍微需要注意一下。
4.2.3、Oversamping Right Shift(過采樣位右移)
過采樣器能將累加的采樣值進(jìn)行右移。有什么用?比如過采樣設(shè)置15,那么將采集16個(gè)值進(jìn)行累加。接著配置右移動(dòng)4位的話,相當(dāng)于將剛才的累加值除以16,得到平均值。不需要在程序里求平均了。當(dāng)然,如果大家喜歡在程序里求平均值也是可以的。
4.2.4、Oversamping Ratio(過采樣率)
過采樣器會(huì)進(jìn)行數(shù)據(jù)預(yù)處理,以減輕CPU的負(fù)擔(dān)。例如過采樣設(shè)置15,將采樣16個(gè)值,將16個(gè)值進(jìn)行累加。一般的單片機(jī)可能不支持過采樣,那么只能用程序?qū)崿F(xiàn)累加了。總得來說,Oversamping Ratio幫助CPU累加采樣值,Oversamping Right Shift幫助CPU求平均值。
4.2.5、Regular Oversamping Mode(規(guī)則過采樣模式)
一般使用Oversampling Continued Mode。另外一個(gè)Oversamping Resumed Mode不知道是什么意思,后續(xù)繼續(xù)研究。
4.2.6、Triggered Regular Oversampling(規(guī)則過采樣捕捉)
選擇捕捉的方式,捕捉等待所有過采樣轉(zhuǎn)換結(jié)束(Signal Trigger for all oversampled conversions)。另外一個(gè)是捕捉每一個(gè)過采樣轉(zhuǎn)換結(jié)束。
4.2.7、Numer of Conversion(轉(zhuǎn)換通道的數(shù)量)
轉(zhuǎn)換通道的數(shù)量(支持1 - 16)。
4.2.8、External Trigger Conversion Soure(觸發(fā)轉(zhuǎn)換的外部來源)
選擇觸發(fā)轉(zhuǎn)換的來源:
… (各種定時(shí)器觸發(fā)來源)
除軟件觸發(fā)外,其他基本都是定時(shí)器觸發(fā)。關(guān)于定時(shí)器的使用筆記如下:
STM32H743+CubeMX-定時(shí)器TIM輸出PWM(PWM Generation模式)
STM32H743+CubeMX-定時(shí)器TIM輸出PWM(Output Compare模式)
4.2.9、External Trigger Conversion Edge(觸發(fā)轉(zhuǎn)換的外部沿)
選擇定時(shí)器觸發(fā)時(shí),需要進(jìn)一步選擇觸發(fā)的沿。選擇軟件觸發(fā)時(shí),該項(xiàng)為None。
- Trigger detection on the rising edge(上升沿)
- Trigger detection on the falling edge(下降沿)
- Trigger detection on the rising and falling edge(上升與下降沿)
4.2.10、Rank
- Channel
選擇采樣的通道 - Sampling Time
過采樣的時(shí)間。ADC的采樣速度 = 過采樣時(shí)間 + 逐次逼近時(shí)間
- Offset Number
摘自安富萊教程
- Offset Signed Saturation
摘自安富萊教程
4.3、ADC Injected Conversion Mode ( ADC注入轉(zhuǎn)換模式)
先不管。
4.4、Analog Watchdog
比如使用模擬窗口看門狗監(jiān)控CPU的溫度,超過設(shè)定的閥值就產(chǎn)生看門狗中斷,防止CPU的溫度過高。在監(jiān)控CPU的溫度上有一定的使用價(jià)值。
總結(jié)
以上是生活随笔為你收集整理的STM32H743-梳理ADC模数转换器在CubeMX上的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32H743+CubeMX-定时器
- 下一篇: html5jqueryl轮播图,基于JQ