基于靈動微電子MM32F013系列ADC任意通道工作模式在MCU的應用場景中,處處都有用到ADC,比如電池電量的采集、溫度采集、電機應用中電流檢測等等。MM32F013x的ADC模塊新增了任意通道工作模式,支持在多種應用場景中更靈活的應用;本文靈動微電子代理英尚微針對任意通道工作模式,分享在MM32F013系列上實現(xiàn)任意通道工作模式的使用與具體配置。
任意順序多通道功能 在MM32F013x系列的MCU中新增了ADC對任意通道的支持,在任意通道配置(ADC_ANY_CR.CHANY_MDEN)使能后,其優(yōu)先級高于常規(guī)通道配置,后續(xù)的轉換按任意通道配置的方式轉換。
任意通道模式支持單次轉換模式、單周期轉換模式和連續(xù)掃描模式。
A/D轉換開始條件: ?軟件啟動 ?外部觸發(fā)啟動,且軟件可配置外部觸發(fā)延時 ?Timer1/2/3匹配或TRGO信號,外部EXTI信號源
相關的寄存器 具體功能與詳細描述,請參考MM32F013x系列的用戶手冊。
任意通道工作模式 1、單次轉換模式 在單次轉換模式下,A/D轉換相應通道上只執(zhí)行一次,具體流程如下: ?軟件設置寄存器ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,設置轉換通道,置位CHANY_MDEN。(單次轉換模式,只需設置CHANY_SEL0) ?通過軟件、外部觸發(fā)輸入及定時器溢出置位ADCR寄存器的ADST,開始A/D轉換。 ?A/D轉換完成時,A/D轉換的數(shù)據(jù)值將存儲于數(shù)據(jù)寄存器ADDATA和ADDRn中。 ?A/D轉換完成時,狀態(tài)寄存器ADSTA的ADIF位置1。若此時控制寄存器ADCR的ADIE位置1,將產生AD轉換結束中斷請求。 ?A/D轉換期間,ADST位保持為1。A/D通道采樣結束后,ADST位自動清0,A/D轉換器進入空閑模式。 ?若在A/D轉換過程中,軟件更新ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,硬件不會立即更新這些配置,只會在當前設置的通道都轉換結束時更新,然后等待下一次軟件置位ADST。 該模式仍然支持通過過配置當外部事件(比如TIMTrig或EXTI)觸發(fā)轉換時序。
單周期掃描模式 在單周期掃描模式下,A/D轉換相應通道上執(zhí)行一遍按配定順序的轉換,具體流程如下: ?軟件設置寄存器ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,將需要轉換的通道、數(shù)量設置好,然后置位CHANY_MDEN。 ?通過軟件、外部觸發(fā)置位ADCR寄存器的ADST,外部觸發(fā)可軟件配置觸發(fā)延時,A/D轉換方向從CHANY_SEL0到CHANY_SEL15,轉換通道數(shù)量由CHANY_NUM配置,且CHANY_SEL0到CHANY_SEL15是任意配置的,可以完全相同,或完全不相同。 ?每路A/D轉換完成時,A/D轉換的數(shù)據(jù)值將有序裝載到相應通道的數(shù)據(jù)寄存器中,ADIF轉換結束標志被設置,若此時控制寄存器ADCR的ADIE位置1,將產生AD轉換結束中斷請求。 ?A/D最后一個通道采樣結束后,ADST位自動清0,A/D轉換器進入空閑模式。 ?若在A/D轉換過程中,軟件更新ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,硬件不會立即更新這些配置,只會在當前設置的通道都轉換結束時更新,然后等待下一次軟件軟件置位ADST。 在一些場景中,需要在執(zhí)行一遍上述采樣后,對采樣順序做調整;或減少采樣通道數(shù),以減少采樣總體時間,可以通過簡單的配置一兩個寄存器實現(xiàn)靈活的配置;
3、連續(xù)掃描模式 在連續(xù)掃描模式下,A/D轉換通道依軟件配置一直執(zhí)行,直到軟件禁止。具體流程如下: ?軟件設置寄存器ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,將需要轉換的通道、數(shù)量設置好,然后置位CHANY_MDEN。 ?通過軟件、外部觸發(fā)置位ADCR寄存器的ADST,外部觸發(fā)可軟件配置觸發(fā)延時,A/D轉換方向從CHANY_SEL0到CHANY_SEL15,轉換通道數(shù)量由CHANY_NUM配置,且CHANY_SEL0到CHANY_SEL15是任意配置的,可以完全相同,或完全不相同。 ?每路A/D轉換完成時,A/D轉換的數(shù)據(jù)值將有序裝載到相應通道的數(shù)據(jù)寄存器中,ADIF轉換結束標志被設置,若此時控制寄存器ADCR的ADIE位置1,將產生AD轉換結束中斷請求。 ?通過軟件、外部觸發(fā)置位ADCR寄存器的ADST,外部觸發(fā)可軟件配置觸發(fā)延時,A/D轉換方向從CHANY_SEL0到CHANY_SEL15,轉換通道數(shù)量由CHANY_NUM配置,且CHANY_SEL0到CHANY_SEL15是任意配置的,可以完全相同,或完全不相同。 ?只要ADST位保持為1,持續(xù)進行A/D轉換。當ADST位被清0,當前A/D轉換完成后停止,A/D轉換器進入空閑狀態(tài)。 ?若在A/D轉換過程中,軟件更新ADC_ANY_CFG,ADC_CHANY0,ADC_CHANY1,硬件不會立即更新這些配置,只會在當前設置的通道都轉換結束時更新,即下一個掃描周期開始新的通道轉換。 應用還可以結合外部觸發(fā)功能與DMA傳輸功能,實現(xiàn)TIM觸發(fā)多通道ADC轉換,DMA裝載數(shù)據(jù)的功能。 |