【S32K3 入門系列】- ADC 模塊簡介(下)

一、前言

       在 《【S32K3 入門系列】- ADC 模塊簡介(上)》中我們介紹了四種通道類型的區別、ADC 的功能框圖、ADC 的工作流程、時鐘源的範圍等。本文是上一篇博文的延續,將繼續介紹 S32K3 的ADC 模塊。

二、ADC 模塊簡介

2.1 ADC 的三種觸發模式

       ADC 模塊的工作流程非常純粹,它在收到觸發信號後,會按照之前配置的參數開始轉換當前被啟用的通道。因此,實現複雜轉換的完整性完全取決於觸發信號的生成。現在我們逐一來看 ADC 模塊的三種主要觸發信號類型:標準觸發、注入觸發和 BCTU 觸發。

2.1.1 標準觸發:

       標準觸發是最常見的觸發模式,它是由軟體或者硬體來啟動一次 DMA 轉換,轉換模式一般分為單次轉換模式(One-Shot mode)和連續掃描模式(Scan mode)單次轉換模式就是把所有使能的標準通道(由 NCMR 寄存器使能)轉換完成後就自動停止轉換,而連續掃描模式就是連續循環轉換。其中軟體觸發模式就是給 MCR[NSTART] 寫 1,而硬體觸發就是通過 TRGMUX 模塊來配置其他外設信號觸發標準通道轉換。

這時候就存在轉換順序的問題,轉換順序一般是由轉換通道的類型所決定,轉換順序為 Precision—>standard—>External,若是同類型通道,則轉換順序是由通道的序號決定,同類型通道從小到大依次轉換,當所有通道轉換完成後 ECH 中斷置位。

       例如:設備中存在 A→B→C→D→E→F→G→H 通道,需要一次性轉換 B→D→E通道。轉換從通道  B  開始,接著是通道  D  和通道  E 的轉換。在通道 E 轉換結束時,掃描通道停止,如下圖:

 

2.1.2 注入觸發:

       當一次注入觸發信號來了,ADC模塊就會立即去轉換使能的注入通道(由JCMR寄存器使能),如果當前ADC模塊正在轉換標準通道,那麼此時ADC會中斷轉換並開始轉換注入通道,等注入通道轉換完成後再恢復標準通道的轉換。流程示意圖如下:

       例如:設備正處於一次性轉換 B→C→D→E 的流程中,此時轉換流走到了 Convert C 時注入 I、J  的轉換通道,則立即開始 I、J 的轉換,然後返回 Convert C 的轉換流,就類似中斷的機制,當遇到注入觸發時就會先去處理中斷再返回處理原來的程序。注入觸發方式也是有軟體觸發和硬體觸發兩種,軟體觸發就是 MCR[JTRGEN]寫  1,而硬體觸發就是通過  TRGMUX  模塊來配置其他外設信號觸發  ADC  注入通道轉換。

2.1.3 BCTU 觸發:

       BCTU 觸發就是用外部模塊 BCTU 發起信號去觸發 ADC 模塊。下圖是兩個模塊之間的連接:

       其中 BCTU 發送給 ADC 觸發信號 Tregger 和通道號 Channel,而 ADC 模塊則返回三個信號,分別是 Next command,End of conversion 和  Data, 其中  Next command 表示 ADC 模塊已經準備好接受下一次的觸發信號了,End of conversion 表示當前轉換完成,數據可用,至於 Data  就是轉換的結果數據。

       其中 BCTU 有兩種模式去控制 ADC,分別是 BCTU Trigger mode 和 BCTU Control mode。

       BCTU Trigger mode:

       這個模式其實就是增強型注入觸發,處於該種模式下,當 ADC 模塊接收到來自 BCTU 的觸發信號時,ADC 模塊就會終止當前轉換,立即響應 BCTU 的觸發,原理和注入觸發是一致的。也就是說三者的優先級關係為 BCTU 觸發 > 注入觸發 > 標準觸發。所以當 ADC 處於響應 BCTU 的狀態時,注入觸發信號是無效的。

       BCTU Control mode:

       這種模式就比較簡單了,就是 BCTU 一家獨大,完全接手 ADC 的控制權,此時只有 BCTU 可以啟動轉換,另外兩種觸發信號無效。

2.2 自檢

       S32K3 系列的 MCU 一般具有 ASIL-D 功能安全等級,為確保晶片的正常運行,S32K3 的  ADC 具有自檢功能。啟用自檢後,ADC 會自動檢查其組件,並在發現錯誤時標記錯誤,此處入門過程一般使用不到,不贅述,只做簡單介紹。

2.3 模擬看門狗

       模擬看門狗非常簡單,就是設置兩個值 THRH 和 THRL,當滿足以下條件的一種時會產生中斷信號


2.4 轉換時間

       最後提一下轉換時間的計算,轉換時間的基準是 ADC 的時鐘源,轉換時間為:

       預採樣時間 + 採樣時間 + 比較時間 + 數據處理時間 + 觸發處理時間

       預採樣時間(PST,等於  ST  並延時 1 個 ADC_CLK 周期,一般預採樣不使能,所以一般等於  0)

       採樣時間(ST,可配置,最小值為  8  個  ADC_CLK  周期)

       比較時間(CT,固定,每  bit  4  個  ADC_CLK  周期)

       數據處理時間(DP,固定,2  個  ADC_CLK  周期)

       觸發處理時間(TPT,固定,1  個  ADC_CLK 周期)

       所以,總轉換時間=([(PST+ST+CT+DP) * 通道數 ]+TPT)* ADC_CLK 周期。


三、結語

   
   到此 S32K3 ADC 的入門簡介已經介紹結束,若是對 S32K3 系列的其它模塊感興趣,可以進入我的主頁查看其它模塊的博文


四、參考文檔

       [1] NXP - 《 S32K3xx Reference Manual

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論