?

ADC 控制器的設計方法及實現

2023-12-28 02:51
微處理機 2023年6期
關鍵詞:斷電規則控制器

唐 虹

(中國電子科技集團公司第四十七研究所,沈陽 110000)

1 引 言

MCU 內ADC 的控制器設計主要是完成對ADC模擬部分的控制[1-2]??刂浦饕ǎ翰蓸娱_關的產生、采樣時間的設置、采樣通道的選取、產生數據的處理、模擬看門狗的設計、中斷的產生。通過對ADC控制器的設計便可實現對ADC 的時序控制、開關使能、通道選擇等功能[3]。針對ADC 的數字部分,在此設計一種逐次比較型ADC 的控制器設計,著重介紹其設計原理和實現過程。

2 總體設計

電路采用自頂向下分層次的正向設計思想[4-5],并采用模塊化設計。所設計的ADC 控制器包括通道選擇模塊(adc_ain_mux)、DMA 傳輸控制模塊(adc_dma)、數據對齊處理模塊(data_alignment)、信號同步模塊(adc_sync)、時序產生模塊(ss_seq_gen)、數據寄存模塊(datareg)、ADC 控制產生模塊(adc_ctl)、模擬看門狗模塊(ADC_AWDCTRL)、寄存器讀寫模塊(ADCRegBlock)、總線接口模塊(ADCApbif)、觸發產生模塊(adc_trig)以及ADC 轉換時序控制模塊(adc_convtimg),共計12 個模塊??傮w設計的原理框圖如圖1 所示。

圖1 電路模塊化結構圖

3 ADC 控制產生模塊設計

控制產生模塊adc_ctl 是ADC 設計的核心部分,需要加以特別而周全的考慮。adc_ctl 模塊主要由adc_ctl_fsm 和start 模塊(包括Rstart 和Jstart 信號控制邏輯)以及其他的邏輯控制(包括Pd_adc_ctl 和State_ctl_output,后者又包括other_ctrl、Rstart_wait和RPROC_wait 信號控制邏輯)構成。如圖2 所示是adc_ctl 模塊的結構框圖。

圖2 adc_ctl 模塊結構圖

adc_ctl 模塊的功能就是根據ADC 的設置,產生ADC 啟動信號和掉電控制信號、采樣序列控制控制信號,并且控制外部通道的轉換。

adc_ctl_fsm 模塊的主要功能是控制外部通道的轉換。如圖3 所示為ADC1 的adc_ctl_fsm 狀態轉換圖。具體設計方法為:

圖3 ADC1 的adc_ctl_fsm 狀態轉換圖

當APB 總線復位時,ADC 處于IDLE 狀態。當Rstart 信號有效,即規則觸發信號有效時,ADC 將由IDLE 狀態切換到RPROC 狀態,進行規則通道的轉換;如果在規則通道轉換期間(RPROC 狀態)產生外部注入觸發(Jstart 有效),ADC 將由IDLE 狀態切換到RST_R 狀態,即當前轉換被復位;ADC 緊接著由RST_R 狀態切換到JPROC 狀態,即注入通道序列被以單次掃描方式進行轉換;當注入轉換完成(Jdone&RPROC_wait)時,ADC 將由JPROC 狀態切換到RST_J 狀態,ADC 緊接著由RST_J 狀態切換到RPROC 狀態,恢復上次被中斷的規則組通道轉換。當ADC 非斷電(~ADON),或是ADC 規則通道轉換完成,并且處于非自動注入模式(~JAUTO&Rdone),ADC 將由RPROC 狀態切換到IDLE 狀態;如果設置了JAUTO 位,在規則組通道轉換完成之后(JAUTO&Rdone),注入組通道被自動轉換,即ADC狀態由RPROC 狀態切換到JPROC 狀態。如果是持續轉換,并且規則通道轉換完成之后,規則通道組將從頭開始進行規則通道轉換。

當ADC 處于IDLE 狀態之下,如果Jstart 有效,即當注入觸發信號有效時,ADC 將由IDLE 狀態切換到JPROC 狀態,進行注入通道的轉換;當JAUTO置位還設置了CONT 位,即自動注入模式并且持續轉換置位,那么當注入轉換完成之后,即Jdone&(CONT&JAUTO)有效,ADC 將由JPROC 狀態切換到RPROC 狀態,將繼續規則通道的轉換。當自動注入模式下持續轉換置位時,規則通道至注入通道的轉換序列將被連續執行。在ADC 斷電(~ADON),或是ADC 注入通道轉換完成,并且非“(CONT&JAUTO)||RPROC_wait||Rstart_wait”的情況下,ADC 將由JPROC狀態切換到IDLE 狀態。如果在注入轉換期間(JPROC 狀態)產生規則事件,注入轉換不會被中斷,但在注入序列結束后(Jdone&Rstart_wait),ADC將由JPROC 狀態切換到RST_J 狀態,ADC 緊接著由RST_J 狀態切換到RPROC 狀態,規則組通道轉換被執行。即當Jdone&Rstart_wait 有效時,ADC 將由JPROC 狀態切換到RST_J 狀態。如果是持續轉換,并且注入通道已轉換完成,轉換將從注入通道組開頭開始注入通道轉換;如果Jstart 有效或者在其他條件下ADC 保持JPROC 狀態不變,即仍在執行ADC 的注入轉換。

當ADC 處于RST_R 狀態時,當ADC 斷電(~ADON),ADC 將由RST_R 狀態切換到IDLE 狀態,否則RST_R 狀態切換到JPROC 狀態。

當ADC 處于RST_J 狀態時,當ADC 斷電(~ADON),ADC 將由RST_J 狀態切換到IDLE 狀態,否則ADC 將由RST_J 狀態切換到RJPROC 狀態。

當ADC 處于RST_Ralte 狀態時,對于ADC1 的狀態機,當ADC 斷電(~ADON),ADC 將由RST_Ralte狀態切換到IDLE 狀態。

Start 模塊主要負責產生adc_ctl_fsm 的規則通道和注入通道的啟動信號Jstart 和Rstart。Rstart 信號邏輯圖如圖4 所示。Jstart 邏輯圖與此一致。

圖4 Rstart 信號邏輯圖

4 功能仿真

基于上述討論,在ADC 控制器設計完成后,將其與MCU 其他模塊進行系統整合,對于ADC 模擬IP,通過撰寫仿真模型完成模擬與數字之間的仿真[6]。搭建仿真與驗證平臺進行功能仿真驗證。ADC 仿真驗證平臺的原理框圖如圖5 所示,其中包括處理器內核ARM Cortex-M3、flash 存儲器(用于存放測例程序),ADC 控制器設計、ADC 模擬IP 仿真模型以及平臺激勵信號[7-8]。

圖5 ADC 控制器仿真驗證平臺

圖6 為ADC 控制器的仿真波形圖。該例程是MCU 內部兩個ADC 同時工作,當有來自ADC1 的外部觸發(Jtrig_r)產生,在第一個觸發產生時,ADC1上的所有注入通道被轉換,該程序設置為ADC1 注入通道長度為4,每次觸發ADC1 完成4 個數據轉換;第二個觸發產生時,ADC2 上的所有注入通道被轉換,該程序設置為ADC2 注入通道長度為4,每次觸發ADC2 完成4 個數據。依此規律反復循環轉換,即實現設計預期的功能目標。

圖6 ADC 注入組觸發仿真波形

5 結束語

通過本設計的研究,即可完成ADC 控制器的設計與實現,并將其集成在MCU 中,驗證功能的正確性。該設計可以被廣泛應用于各類MCU 的ADC 控制中,完成對ADC 的控制及數據處理,可以豐富ADC的功能,具有一定的通用性。

猜你喜歡
斷電規則控制器
撐竿跳規則的制定
數獨的規則和演變
高壓感應電動機斷電重啟時的瞬態仿真
日光燈斷電關閉及自動延時開關設計
讓規則不規則
TPP反腐敗規則對我國的啟示
一種基于STM32的具有斷電保護機制的采集存儲系統設計
高、低壓斷電對高爐噴煤系統的影響及處理
模糊PID控制器設計及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合