一、Semidriver E3400 & E3600 系列時鐘
1、以 E3430 為例,時鐘模塊
處理器集成了以下時鐘和復位生成塊。
① RC_RTC :RC 32KHz 振盪器
② RC_OSC :RC 24MHz 振盪器
③ PLL :PLL
④ CKGEN :時鐘發生器
⑤ RSTGEN :復位發生器
2、FS_32K
FS_32K 是一種具有故障保護功能的 32KHz 系統發生器。
FS_32K 的主要功能如下:
• 支持片外 xtal 32KHz 時鐘源。
• 支持片上 RC 32KHz 時鐘源。
• 支持故障保護自動切換。
FS_32K 的高級框圖如下:
(1)FS_32K 時鐘模塊時鐘來源
① 時鐘源一般默認是內部 RC32K
特性如下: RC 32K 時鐘模塊的供電來自 RTC_VDD
Parameter | Symbol | Condition | Min | Typ | Max | Unit |
VIN power | VIN | - | 3 | 3.3 | 3.6 | V |
Power consumption | Iout | - | 0.5 | 1.2 | uA | |
Frequency | Fre | 20 | 32 | 50 | kHz | |
Setting time | Tset | When power up | - | 0.3 | 1 | ms |
Duty Cycle | Duty | - | 45 | 50 | 55 | % |
RTC POR threshold | Vpor_rtc | - | 0.6 | 1.5 | 2 | V |
RTC BOR threshold | Vbor_rtc | - | 0.46 | 1 | 1.37 | V |
② 用戶可以自行切換到外部晶振 32.768K
(2)FS_32K 時鐘模塊時鐘切換
① 切換到外部晶振需要等 MCU 上電後一秒進行切換
② 切換函數如下:
Mcu_RtcTrySwitchToXtal(FS_32K_BASE_ADDR);
3、FS_24M
FS_24M 是一種具有故障保護功能的 24MHz 系統發生器。
FS_24M 的主要功能如下:
• 支持片外 xtal 24MHz 時鐘源。
• 支持片上 RC 24MHz 時鐘源。
• 支持片外單端 24MHz 時鐘源。
• 支持故障保護自動切換。
FS_24M 的高級框圖如下:
(1)FS_24M 時鐘模塊時鐘來源
① 默認使用內部 RC 24M 時鐘源後自動切換外部 24M
時鐘初始化後,使用的是外部的 24M 時鐘源,寄存器已經配置使用外部 24M 晶振
內部 RC 24M 時鐘源特性如下:(一般使用外部時鐘源,只看外部晶振特性)
Parameter | Symbol | Condition | Min | Typ | Max | Unit |
VIN power | VIN | - | 3 | 3.3 | 3.6 | V |
Power consumption | Iout | - | 45 | 55 | 75 | uA |
Frequency | Fre | 22 | 24 | 26 | MHz | |
Clock start up Time | Tstart | When power |
up
4、FS_32K & FS_24M 安全機制
(1)每個時鐘模塊有自己的監控模塊
當 failsafe function 開啟,內部時鐘和外部時鐘可以在任何一方時鐘缺失時,自動切換。
(2)功能安全機制
Fs_clk_32k 和 Fs_clk_24m 相互檢查監控,當閾值超過設定值,功能安全機制可以讀到時鐘的錯誤。
此監視器可通過軟體關閉,默認為啟用狀態。Fs32k 的頻率範圍是從 12k~128k, Fs24m 頻率範圍默認為6m~48m。這個閾值可以是由軟體改變。在更改閾值之前,軟體需要關閉監視器。
5、PLL
PLL_WRAPPER 的主要功能如下:
• 與 CKGEN 合作完成 PLL 時鐘分配。
• 模擬 Pll 狀態監視器。
• 模擬 Pll 控制
E3430 主頻達到 600MHz,一般採用 PLL 倍頻方式提升主頻。
PLL_WRAPPER的高級框圖如下:
(1) PLL 時鐘來源
PLL 時鐘源是 Fs_24M ,E3430 MCAL Release 版本工程時鐘源就是外部晶振 24M.
PLL 特性如下:
Parameters | Symbol | Min | Typ | Max | Unit |
Input Power Supply | AVDD_SAFETY / AVDD_AP | 3 | 3.3 | 3.6 | V |
Reference Frequency range | Fin | - | 24 | - | MHz |
Output Frequency range | Fout | 400 | - | 1200 | MHz |
Duty Cycle | DUTYout | 48 | 50 | 52 | % |
Period Jitter (Peak to Peak) | Tpj | - | - | 2% | Tout |
Fractional Accuracy | Fraaccu | - | 1/2^(24) | - | |
SSC Modulation Rate | F ssc_m | 30 | - | 33 | KHz |
SSC Modulation Range | Fssc_rg | 0.10% | - | 3.10% | Fout |
SSC Modulation Step | Fssc_step | - | 0.10% | - | Fout |
Start Up Time (max) | Tstar | - | 120 | - | uS |
Power consumption | IDC | 5 | - | mA |
(2)PLL 時鐘誤差計算
PLL Period Jitter (Peak to Peak) 最大是 2% , 對於各個模塊的時鐘來計算,有以下公式,舉個例子,假如 600M 主頻,配置到 CAN 的波特率是 500K, 那麼 CAN 的時鐘的 Jitter 就是:
jitter=1/1mhz*2%/sqrt(600/0.5)
另外,外部的晶振的誤差也必須加上,才是最終的時鐘誤差。
二、時鐘配置
1、MCAL Release 版本代碼
在 MCAL EB 配置中,目前已經配置了各個模塊的時鐘源,用戶只需要勾選使用即可,暫時沒有開放給用戶自己配置時鐘樹。
三、參考
芯馳官網:TRM & Datasheet 手冊
評論