ST STM32G4_說明在 CubeMX 下 ADC Clock 無法選擇 Prescaler 參數

1. 目的

通常我們使用 ST 的 STM32G474 來開發數位電源相關應用,其中 STM32G474 的 ADC 功能在數位電源應用上是一個重要的環節。

此篇博文說明為什麼在使用 CubeMX 工具初始化 STM32G474 的 ADC 功能時,要選擇除頻 Synchronous clock mode divided by 1 或 Synchronous clock mode divided by 2 會無法選擇。

另外也會說明STM32G474 ADC 的 Asynchronous clock mode 或 Synchronous clock mode 時的優點。

編譯軟體工具 :

STM32CubeMX  6.10.0 ( 圖形介面設定 & 產生程式軟體 ) 

2. 問題 : 為什麼CubeMX ADC clock 無法選擇 Synchronous /1 or /2 模式

可以看到如下圖,我們在設定 STM32G474 MCU 的 ADC 周邊,當要設定 Clock Prescaler 時,卻無法選擇 Synchronous clock mode divided by 1 ( 同步模式除1 ) 或是 Synchronous clock mode divided by 2 ( 同步模式除2 )。


3. 說明

3.1. STM32G474 Reference Manual 裡面提到,ADC 的兩個 clock 來源 :

       Synchronous clock 與 Asynchronous clock。

3.1.1. Synchronous clock ( clock 來源與 System clock 同步 )

           Clock來源為 adc_hclk,同步於 System Clock,除頻選擇有三個,/1 or /2 or /4。

3.1.2. Asynchronous clock ( clock 來源與 System clock 非同步 )

          Clock 來源為 adc_ker_ck,與 System Clock 不同步,除頻選擇有 /1, /2, /4, /6, /8, /10, /12, /16, /32, /64, /128, /256。


( STM32G474 Reference Manual )

3.2. STM32G474 Datasheet 裡面提到ADC 的頻率限制,如果所有的 ADC 模組都要使用時,而且 VDDA 大於等於 2.7V, ADC 的頻率範圍限制在 140 KHz ~ 52 MHz



( STM32G474 Datasheet )

當MCU頻率為156MHz時,除頻選擇 Synchronous clock ( 與 System clock 同步 ) 的三種計算如下:

  1. 156 MHz / 4 = 34MHz, 所以 /4 在範圍內是可以設定的。
  2. 156 MHz / 2 = 78MHz, 已經超出 52MHz 的限制, 所以CubeMX變成反白不能選。
  3. 156 MHz / 1 = 156MHz, 已經超出 52MHz 的限制, 所以CubeMX變成反白不能選。
經由上面的計算與說明,這樣我們就可以知道為什麼 CubeMX會無法選擇 Synchronous clock ( 與 System clock 同步 ) 的 /1 與 /2。

3.3 這邊說明當使用 Asynchronous clock ( 與 System clock 非同步 ) 為什麼可選擇任何除頻參數 ( /1 ~ /256 ) :

在選擇 Asynchronous clock 時,它的來源為 ADC12 clock,ADC12 clock 的來源為PLLP,而 PLLP 直接設定為52MHz,無論除頻參數為多少都不會超過 52MHz,所以當 ADC clock 來源選擇 Asynchronous clock ( 與 System clock 非同步 ) 就可以選擇所有範圍 ( /1 ~ /256 )。( 參考如下圖 CubeMX 設定 )


4. ADC Synchronous clock 與 Asynchronous clock 的差異

4.1. Asynchronous clock ( 與 System clock 非同步 ) 優點 :

選擇非同步模式,優點是不管甚麼情況下都可以達到 ADC 最大時脈頻率,/1、/2、/4、/6、/8、/12、/16、/32、/64、/128、/256 來得到你所要的 ADC 時脈頻率。

4.2. Synchronous clock ( 與 System clock 同步 ) 優點 :

選擇同步模式,當你 ADC 是要透過 Timer 固定時間去觸發 ADC的話,選擇同步是會更精準的與 System Clock 時間觸發。

以上兩種各有優點,就看使用者的需求來決定使用 Synchronous clock ( 與 System clock 同步 ) 或是 Asynchronous clock ( 與 System clock 非同步 )。

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

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

評論