YTM32 M系列芯片基于32位車規(guī)級(jí)ARM Cortex-M33內(nèi)核,CPU全溫域主頻高達(dá)120MHz,提供1.25MB嵌入式閃存,符合ISO26262的ASIL-B等級(jí)要求,可靠性滿足AEC-Q100、Grade1標(biāo)準(zhǔn),信息安全方面支持AES、SHA以及國(guó)密SM4等多種加密算法,并提供符合AUTOSAR標(biāo)準(zhǔn)的MCAL。
時(shí)鐘模塊是嵌入式軟件設(shè)計(jì)的基礎(chǔ),只有詳細(xì)了解了嵌入式芯片的時(shí)鐘結(jié)構(gòu),在實(shí)際應(yīng)用中才能使芯片發(fā)揮全部的性能,同時(shí),根據(jù)不同的應(yīng)用需求,選擇合適的時(shí)鐘源,可以同時(shí)兼顧應(yīng)用的性能需求和功耗需求,從而使系統(tǒng)設(shè)計(jì)更好的滿足應(yīng)用需求。
主要時(shí)鐘源介紹
YTM32B1ME0系列MCU時(shí)鐘模塊通過SCU統(tǒng)一管理,芯片支持PLL,F(xiàn)IRC,SIRC,F(xiàn)XOSC以及SXOSC幾種時(shí)鐘源,除了SXOSC以外,其余四種時(shí)鐘源都可以選擇為系統(tǒng)時(shí)鐘源。
- 鎖相環(huán)時(shí)鐘(PLL):PLL時(shí)鐘源需要參考內(nèi)部FIRC或者外部FXOSC晶振產(chǎn)生時(shí)鐘,PLL內(nèi)部VCO振蕩器頻率范圍為200MHz至400MHz,VCO輸出經(jīng)過二分頻后可以作為系統(tǒng)和模塊時(shí)鐘源,可配置頻率范圍為100MHz至200MHz。
- FIRC:FIRC為芯片內(nèi)部RC振蕩器,時(shí)鐘頻率是96MHz,可以直接作為系統(tǒng)和模塊的時(shí)鐘源,同時(shí)還可以作為PLL的參考時(shí)鐘源,F(xiàn)IRC不需要依賴外部電路,直接由芯片內(nèi)部產(chǎn)生。
- SIRC:SIRC同樣通過內(nèi)部RC振蕩器實(shí)現(xiàn),時(shí)鐘頻率為12MHz,可以直接作為系統(tǒng)和模塊時(shí)鐘源,SIRC支持在所有低功耗模式下工作(有單獨(dú)的使能控制位),可以用來作為模塊的低功耗時(shí)鐘源和IO/WKU的數(shù)字濾波器時(shí)鐘。
- FXOSC:外部晶振振蕩器,F(xiàn)XOSC支持4MHz至40MHz外部晶振,芯片內(nèi)部集成500K反饋電阻,F(xiàn)XOSC輸出時(shí)鐘可以直接作為系統(tǒng)和模塊時(shí)鐘源,同時(shí)還可以作為PLL的參考時(shí)鐘,另外,為了滿足CAN模塊對(duì)時(shí)鐘源的精度要求,CAN模塊可以直接選擇FXOSC作為模塊的時(shí)鐘源。
- SXOSC:外部32.768K時(shí)鐘晶體振蕩器,SXOSC支持32.768K外部晶振,輸出時(shí)鐘可以作為模塊時(shí)鐘(不能作為系統(tǒng)時(shí)鐘源),SXOSC主要功能是為RTC模塊提供時(shí)鐘,另外SXOSC支持在所有低功耗模式下工作,因此也可以為模塊提供低功耗功能時(shí)鐘,可以用于IO和WKU的數(shù)字濾波器時(shí)鐘源。
系統(tǒng)時(shí)鐘架構(gòu)
時(shí)鐘模塊低功耗行為
ME系列芯片的時(shí)鐘在低功耗模式下都是可以進(jìn)行配置的,當(dāng)在相應(yīng)的低功耗模式下開啟時(shí)鐘,會(huì)造成該低功耗模式的功耗增加。針對(duì)不同時(shí)鐘在不同低功耗模式下的具體行為列舉如下:
| Run | Sleep | Deep Sleep | Standby | Power Down | |
|---|---|---|---|---|---|
| FIRC | Optional | Optional | Optional | OFF | OFF |
| SIRC | ON | ON | Optional | Optional | Optional |
| FXOSC | Optional | Optional | Optional | OFF | OFF |
| SXOSC | Optional | Optional | Optional | Optional | Optional |
| PLL | Optional | Optional | Optional | OFF | OFF |
時(shí)鐘監(jiān)測(cè)模塊
車規(guī)芯片對(duì)于Function Safety是有很高要求的,YTM32 M系列MCU可以滿足ASIL-B的安全等級(jí)要求,在時(shí)鐘模塊設(shè)計(jì)上,為了滿足時(shí)鐘的安全性需求,芯片內(nèi)部集成了一個(gè)4通道的時(shí)鐘監(jiān)測(cè)模塊CMU,可以在芯片運(yùn)行過程中實(shí)時(shí)監(jiān)測(cè)時(shí)鐘是否穩(wěn)定可靠。
CMU的基本原理是通過時(shí)鐘之間的互相監(jiān)測(cè)實(shí)現(xiàn)對(duì)時(shí)鐘工作狀態(tài)的異常監(jiān)測(cè)。在CMU的內(nèi)部,每個(gè)監(jiān)測(cè)通道同時(shí)會(huì)有兩個(gè)計(jì)數(shù)器采用兩種不同的時(shí)鐘進(jìn)行計(jì)數(shù),其中參考時(shí)鐘計(jì)數(shù)溢出值固定為128,用于可以設(shè)定被監(jiān)測(cè)時(shí)鐘的異常判定范圍,比如采用12MHz的SIRC對(duì)120MHz的PLL輸出進(jìn)行監(jiān)測(cè),如果允許的頻率偏差為正負(fù)2%,那么異常判定的上下限可以通過如下公式計(jì)算:

系統(tǒng)外設(shè)時(shí)鐘管理
YTM32 M系列模塊時(shí)鐘主要有以下三種類型:
- 模塊只需要寄存器訪問時(shí)鐘,這種情況下用戶只需要打開IPC中模塊的寄存器時(shí)鐘即可正常使用模塊,對(duì)于這些模塊的功能時(shí)鐘選擇是無效的。比如使用DMA的時(shí)候,只需要打開訪問時(shí)鐘就可以正常使用了。
- 模塊支持功能時(shí)鐘,這種情況下,用戶需要開啟IPC中的模塊時(shí)鐘,同時(shí)根據(jù)需要選擇合適的功能時(shí)鐘,二者同時(shí)打開之后模塊方可正常工作。比如使用SPI模塊的時(shí)候,應(yīng)用還需要選擇合適的功能時(shí)鐘,并且SPI的波特率計(jì)算也都是通過功能時(shí)鐘頻率來進(jìn)行計(jì)算的。
- 模塊支持額外的外部時(shí)鐘輸入,或者模塊內(nèi)部集成時(shí)鐘選擇,對(duì)于這些模塊,應(yīng)用中除了IPC中進(jìn)行合適的功能時(shí)鐘選擇之外,還可以根據(jù)需要在模塊內(nèi)部進(jìn)行進(jìn)一步的時(shí)鐘選擇。比如lpTMR模塊,除了可以在IPC中進(jìn)行功能時(shí)鐘選擇以外,還可以在模塊內(nèi)部選擇時(shí)鐘來自IPC還是直接選擇SIRC或者SXOSC,對(duì)于lpTMR,額外的時(shí)鐘選擇可以讓lpTMR在power down模式下繼續(xù)工作,因?yàn)閜ower down模式下IPC掉電,無法繼續(xù)提供時(shí)鐘。
模塊時(shí)鐘列表:
| No. | Module | Bus | Gate | Function |
|---|---|---|---|---|
| 0 | - | - | - | - |
| 1 | - | - | - | - |
| 2 | - | - | - | - |
| 3 | - | - | - | - |
| 4 | - | - | - | - |
| 5 | - | - | - | - |
| 6 | - | - | - | - |
| 7 | - | - | - | - |
| 8 | DMA | SYS_CLK | YES | - |
| 9 | - | - | - | - |
| 10 | - | - | - | - |
| 11 | - | - | - | - |
| 12 | - | - | - | - |
| 13 | - | - | - | - |
| 14 | - | - | - | - |
| 15 | TRACE | - | - | - |
| 16 | EFM | SLOW_BUS_CLK | YES(1) | - |
| 17 | GPIO | SYS_CLK | YES | YES |
| 18 | PCTRLA | SLOW_BUS_CLK | - | - |
| 19 | PCTRLB | SLOW_BUS_CLK | - | - |
| 20 | PCTRLC | SLOW_BUS_CLK | - | - |
| 21 | PCTRLD | SLOW_BUS_CLK | - | - |
| 22 | PCTRLE | SLOW_BUS_CLK | - | - |
| 23 | - | - | - | - |
| 24 | - | - | - | - |
| 25 | - | - | - | - |
| 26 | - | - | - | - |
| 27 | LINFlexD0 | SLOW_BUS_CLK | YES | - |
| 28 | LINFlexD1 | SLOW_BUS_CLK | YES | - |
| 29 | LINFlexD2 | SLOW_BUS_CLK | YES | - |
| 30 | LINFlexD3 | SLOW_BUS_CLK | YES | - |
| 31 | LINFlexD4 | SLOW_BUS_CLK | YES | - |
| 32 | LINFlexD5 | SLOW_BUS_CLK | YES | - |
| 33 | - | - | - | - |
| 34 | - | - | - | - |
| 35 | I2C0 | SLOW_BUS_CLK | YES | YES |
| 36 | I2C1 | SLOW_BUS_CLK | YES | YES |
| 37 | I2C2 | SLOW_BUS_CLK | YES | YES |
| 38 | - | - | - | - |
| 39 | - | - | - | - |
| 40 | - | - | - | - |
| 41 | - | - | - | - |
| 42 | SPI0 | SLOW_BUS_CLK | YES | YES |
| 43 | SPI1 | SLOW_BUS_CLK | YES | YES |
| 44 | SPI2 | SLOW_BUS_CLK | YES | YES |
| 45 | SPI3 | SLOW_BUS_CLK | YES | YES |
| 46 | SPI4 | SLOW_BUS_CLK | YES | YES |
| 47 | SPI5 | - | - | - |
| 48 | FlexCAN0 | FAST_BUS_CLK | YES | - |
| 49 | - | - | - | - |
| 50 | - | - | - | - |
| 51 | - | - | - | - |
| 52 | FlexCAN1 | FAST_BUS_CLK | YES | - |
| 53 | - | - | - | - |
| 54 | - | - | - | - |
| 55 | - | - | - | - |
| 56 | FlexCAN2 | FAST_BUS_CLK | YES | - |
| 57 | - | - | - | - |
| 58 | - | - | - | - |
| 59 | - | - | - | - |
| 60 | FlexCAN3 | FAST_BUS_CLK | YES | - |
| 61 | FlexCAN4 | FAST_BUS_CLK | YES | - |
| 62 | FlexCAN5 | FAST_BUS_CLK | YES | - |
| 63 | - | - | - | - |
| 64 | ADC0 | SLOW_BUS_CLK | YES | YES |
| 65 | ADC1 | SLOW_BUS_CLK | YES | YES |
| 66 | - | - | - | - |
| 67 | ACMP0 | SLOW_BUS_CLK | YES | YES |
| 68 | - | - | - | - |
| 69 | - | - | - | - |
| 70 | PTU0 | FAST_BUS_CLK | YES | - |
| 71 | PTU1 | FAST_BUS_CLK | YES | - |
| 72 | TMU | SLOW_BUS_CLK | - | - |
| 73 | eTMR0 | FAST_BUS_CLK | YES | - |
| 74 | eTMR1 | FAST_BUS_CLK | YES | - |
| 75 | eTMR2 | FAST_BUS_CLK | YES | - |
| 76 | eTMR3 | FAST_BUS_CLK | YES | - |
| 77 | eTMR4 | FAST_BUS_CLK | YES | - |
| 78 | eTMR5 | FAST_BUS_CLK | YES | - |
| 79 | - | - | - | - |
| 80 | - | - | - | - |
| 81 | - | - | - | - |
| 82 | - | - | - | - |
| 83 | - | - | - | - |
| 84 | TMR0 | SLOW_BUS_CLK | YES | - |
| 85 | - | - | - | - |
| 86 | - | - | - | - |
| 87 | - | - | - | - |
| 88 | - | - | - | - |
| 89 | - | - | - | - |
| 90 | pTMR0 | SLOW_BUS_CLK | YES | - |
| 91 | - | - | - | - |
| 92 | - | - | - | - |
| 93 | lpTMR0 | SLOW_BUS_CLK | YES | YES |
| 94 | - | - | - | - |
| 95 | - | - | - | - |
| 96 | RTC | SLOW_BUS_CLK | YES | - |
| 97 | REGFILE | - | - | - |
| 98 | WKU | - | - | - |
| 99 | - | - | - | - |
| 100 | - | - | - | - |
| 101 | CRC | SYS_CLK | YES | - |
| 102 | TRNG | SLOW_BUS_CLK | YES | - |
| 103 | HCU | SYS_CLK | YES | - |
| 104 | - | - | - | - |
| 105 | - | - | - | - |
| 106 | WDG | SLOW_BUS_CLK | YES(1) | - |
| 107 | EWDG | - | - | - |
| 108 | - | - | - | - |
| 109 | - | - | - | - |
| 110 | - | - | - | - |
| 111 | - | - | - | - |
| 112 | - | - | - | - |
| 113 | INTM | SLOW_BUS_CLK | YES | - |
| 114 | EMU | FAST_BUS_CLK | YES | - |
| 115 | - | - | - | - |
| 116 | - | - | - | - |
| 117 | - | - | - | - |
| 118 | - | - | - | - |
| 119 | STU | SLOW_BUS_CLK | YES | - |
| 120 | - | - | - | - |
| 121 | - | - | - | - |
| 122 | - | - | - | - |
| 123 | CIM | - | - | - |
| 124 | SCU | SLOW_BUS_CLK | YES(1) | - |
| 125 | - | - | - | - |
| 126 | PCU | SLOW_BUS_CLK | YES(1) | - |
| 127 | RCU | SLOW_BUS_CLK | YES(1) | - |
上表是YTM32B1ME0的時(shí)鐘配置,第三列的BUS代表當(dāng)前模塊所屬的BUS時(shí)鐘域,不同的bus時(shí)鐘域主要是時(shí)鐘頻率有差異,這個(gè)時(shí)鐘域的配置用于不能更改,應(yīng)用上也只需要做頻率的區(qū)分就可以了,Gate代表模塊支持通過IPC關(guān)閉時(shí)鐘,YES(1)表示模塊時(shí)鐘在芯片復(fù)位之后默認(rèn)開啟。Function列表示模塊是否支持功能時(shí)鐘選擇,可以看到只有部分模塊支持功能時(shí)鐘,對(duì)于其他不支持功能時(shí)鐘選擇的模塊,對(duì)應(yīng)的IPC時(shí)鐘選擇寄存器域是無法寫入的。Addition列代表模塊的其他時(shí)鐘源,這些模塊的詳細(xì)配置如下:
- LINFlexD模塊波特率時(shí)鐘來自
FAST_BUS_CLK,當(dāng)計(jì)算LINFlexD模塊波特率的時(shí)候,需要依據(jù)FAST_BUS_CLK的頻率來進(jìn)行計(jì)算(MD1中LINFlexD已經(jīng)支持功能時(shí)鐘) - FlexCAN模塊的時(shí)鐘可以選擇
FAST_BUS_CLK或者FXOSC_CLK,這部分的選擇是在FlexCAN模塊內(nèi)部實(shí)現(xiàn)的。 - eTMR默認(rèn)時(shí)鐘來自FAST_BUS_CLK,用戶也可以根據(jù)需要從外部TCLK輸入時(shí)鐘來作為eTMR的時(shí)鐘,注意外部輸入時(shí)鐘的時(shí)鐘頻率不能超過FAST_BUS_CLK的一半。
- lpTMR支持IPC管理時(shí)鐘,同樣也支持模塊內(nèi)部時(shí)鐘源選擇,這么做的原因是PowerDown模式IPC模塊會(huì)斷電,無法為lpTMR提供工作時(shí)鐘,如果希望lpTMR在PowerDown模式繼續(xù)工作,那么就需要將lpTMR的時(shí)鐘源在模塊內(nèi)部選成SIRC或者SXOSC時(shí)鐘。
- RTC不支持IPC時(shí)鐘源,RTC的時(shí)鐘源默認(rèn)在模塊內(nèi)部選擇,這么做可以保證RTC在所有功耗模式下都可以正常工作。
- WDG也不支持IPC時(shí)鐘源,WDG的時(shí)鐘源也是在模塊內(nèi)部選擇,支持SIRC和SXOSC兩種時(shí)鐘源。
- RCU模塊因?yàn)樯婕癛eset引腳的數(shù)字濾波器功能,如果數(shù)字濾波器開啟,RCU需要使用SIRC時(shí)鐘來實(shí)現(xiàn)對(duì)引腳的數(shù)字濾波。
電子發(fā)燒友App
























評(píng)論