最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

GD32/STM32 ADC模塊(一)使用心得

2022-11-11 22:57 作者:云漢含星  | 我要投稿

芯片GD32F407VET(GD32的人說完全兼容STM32)

注意事項:

1. 采樣值不能為負電壓多個ADC同時采樣時。會因為這一個負電壓,導致和他同時采集的其他數(shù)據(jù)也全部異常。
????例如:ADC0和ADC1同步采樣,都采樣3個數(shù)據(jù)。若規(guī)則ADC1規(guī)則通道2的實際電壓為負電壓。則由于ADC0和ADC1同時采樣,ADC0和ADC1的規(guī)則通道2數(shù)據(jù)都是錯誤的,但是通道1,3都是正確的數(shù)據(jù)。因為我采了一個負1.5V電壓。具體多少V會出錯我也不知道。如果多通道采樣時,發(fā)現(xiàn)只要和某一個信號一起采集,結果就異常,那么就可以查看一下信號源是否是個負電壓。

2.ADC的DMA配置問題

????配置同步模式后,配置了同步的ADC的數(shù)據(jù)會存儲在ADC的公用寄存器0x308中。獨立工作的ADC采集的數(shù)據(jù)放在自己的數(shù)據(jù)寄存器0x4C中。(ADC的基址為0x40012000。ADC0的Offset為0x000,ADC1的Offset為0x100,ADC2的Offset為0x200)

? ? ? 還需要注意DMA的模式配置,如果配置的模式不對,也不會按照預期的進行采樣。

????????這里面最常用的時DMA模式1。也就是一次性傳輸32bit數(shù)據(jù)。常規(guī)的是ADC0和ADC1雙通道采樣,ADC2獨立工作。在網(wǎng)上也能找到很多相關的資料。

3. ADC采樣總時間估算

????比如說ADC工作在21M,采樣時間選擇3個周期。那么總的轉(zhuǎn)換時間就是15個周期。
????采樣總時間?= (3+12) /21?=??0.7142us

4.為什么需要配置DMA來獲取ADC值?

????????原因我認為有兩個。

????????一是因為采樣數(shù)量:ADC采集數(shù)據(jù)走注入通道的話。每個ADC只有四個注入通道,可以掃描采集四個數(shù)據(jù),理想情況下3個ADC可以采集12個數(shù)據(jù)。但是規(guī)則通道可以配置八個ADC通道,配上DMA總共可以采集24個數(shù)據(jù)。而且注入通道可以和規(guī)則通道同時配置。我之前就嘗試過走注入通道對三相電壓采樣,同時可以采集三路數(shù)據(jù)。而規(guī)則通道則是雙ADC同步模式并且配置了DMA。

????二是效率:規(guī)則模式的ADC只有一個數(shù)據(jù)寄存器。沒有配置同步采樣數(shù)據(jù)就在0x4C,配置了同步采樣數(shù)據(jù)就在0x308。不配置DMA我們就必要一個一個的采集轉(zhuǎn)換。而配置了DMA就可以開啟ADC的掃描模式。一次觸發(fā),就依次采樣轉(zhuǎn)換所有配置的ADC通道,并且由DMA搬運到內(nèi)存中。

開發(fā)中的總結

? ? 配置越簡單越好。原因有兩個:一是因為復雜了之后可能沒有辦法保證ADC能夠穩(wěn)定的工作,這個我深有體會,雙通道規(guī)則同步+三通道注入的模式,穩(wěn)定運行了兩周后,忽然發(fā)現(xiàn)ADC有可能采集不到數(shù)據(jù)。二是如果后期為了降低成本,選擇了低一檔的芯片替代,可能不支持一些高級的特性。

遺留的一些問題:

三重規(guī)則并行模式下,每一次轉(zhuǎn)換時序都不一致。雖然總是保證了ADC0->ADC1->ADC2->ADC0->ADC1->ADC2的采樣順序。但是觸發(fā)的首個采樣點順序也是ADC0->ADC1->ADC2。但是現(xiàn)在因為首次采樣點也在變化,導致取出的數(shù)據(jù)位置也一致在變化。如下例子所示:
第一次采樣:ADC0CH1 ->ADC1CH1->ADC2CH1->ADC0CH2->ADC1CH2->ADC2CH2。
第二次采樣:ADC1CH1 ->ADC2CH1->ADC0CH1->ADC1CH2->ADC2CH2->ADC0CH2。
第三次采樣:ADC2CH1 ->ADC0CH1->ADC1CH1->ADC2CH2->ADC0CH2->ADC1CH2。

? ? 按照找理解文檔的預期效果來說,應該每輪采集的DMA取出的數(shù)據(jù)應該保持一致才對。這一點到底正確與否,需要和GD的人溝通之后才能知道結果。

目前狀態(tài)

????????現(xiàn)在配置的模式是ADC0和ADC1工作再規(guī)則同步模式下,配置DMA通道從0x308取值,ADC2獨立工作,配置DMA從ADC3的數(shù)據(jù)寄存器0x4C取值(ADC2的基址為0x200)。到寫文為為止,已經(jīng)連續(xù)工作三天沒有出現(xiàn)任何采樣問題(硬件給了兩路參考電壓,所以可以用這個來糾偏,同時可以判定是否采樣出錯)。

下一期將會附上ADC的配置方法。

最后附兩張圖STM32F4xx的寄存器映射圖,理解這個基址。



GD32/STM32 ADC模塊(一)使用心得的評論 (共 條)

分享到微博請遵守國家法律
恩施市| 文安县| 蓬安县| 鹿邑县| 涿州市| 郑州市| 镇赉县| 广东省| 寻乌县| 新乐市| 亳州市| 安新县| 辽中县| 芜湖县| 西乌珠穆沁旗| 山丹县| 岳西县| 延吉市| 手机| 巴林右旗| 杭州市| 盐池县| 监利县| 清水河县| 揭阳市| 孙吴县| 申扎县| 苗栗市| 永新县| 丹寨县| 逊克县| 临武县| 勃利县| 江山市| 南溪县| 海淀区| 阳山县| 甘谷县| 漾濞| 于田县| 茶陵县|