ytm32 m系列芯片基于32位车规级arm cortex-m33内核,cpu全温域主频高达120mhz,提供1.25mb嵌入式闪存,符合iso26262的asil-b等级要求,可靠性满足aec-q100、grade1标准,信息安全方面支持aes、sha以及国密sm4等多种加密算法,并提供符合autosar标准的mcal。
时钟模块是嵌入式软件设计的基础,只有详细了解了嵌入式芯片的时钟结构,在实际应用中才能使芯片发挥全部的性能,同时,根据不同的应用需求,选择合适的时钟源,可以同时兼顾应用的性能需求和功耗需求,从而使系统设计更好的满足应用需求。
主要时钟源介绍ytm32b1me0系列mcu时钟模块通过scu统一管理,芯片支持pll,firc,sirc,fxosc以及sxosc几种时钟源,除了sxosc以外,其余四种时钟源都可以选择为系统时钟源。
锁相环时钟(pll):pll时钟源需要参考内部firc或者外部fxosc晶振产生时钟,pll内部vco振荡器频率范围为200mhz至400mhz,vco输出经过二分频后可以作为系统和模块时钟源,可配置频率范围为100mhz至200mhz。firc:firc为芯片内部rc振荡器,时钟频率是96mhz,可以直接作为系统和模块的时钟源,同时还可以作为pll的参考时钟源,firc不需要依赖外部电路,直接由芯片内部产生。sirc:sirc同样通过内部rc振荡器实现,时钟频率为12mhz,可以直接作为系统和模块时钟源,sirc支持在所有低功耗模式下工作(有单独的使能控制位),可以用来作为模块的低功耗时钟源和io/wku的数字滤波器时钟。fxosc:外部晶振振荡器,fxosc支持4mhz至40mhz外部晶振,芯片内部集成500k反馈电阻,fxosc输出时钟可以直接作为系统和模块时钟源,同时还可以作为pll的参考时钟,另外,为了满足can模块对时钟源的精度要求,can模块可以直接选择fxosc作为模块的时钟源。sxosc:外部32.768k时钟晶体振荡器,sxosc支持32.768k外部晶振,输出时钟可以作为模块时钟(不能作为系统时钟源),sxosc主要功能是为rtc模块提供时钟,另外sxosc支持在所有低功耗模式下工作,因此也可以为模块提供低功耗功能时钟,可以用于io和wku的数字滤波器时钟源。系统时钟架构时钟模块低功耗行为me系列芯片的时钟在低功耗模式下都是可以进行配置的,当在相应的低功耗模式下开启时钟,会造成该低功耗模式的功耗增加。针对不同时钟在不同低功耗模式下的具体行为列举如下:
runsleepdeep sleepstandbypower 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
时钟监测模块车规芯片对于function safety是有很高要求的,ytm32 m系列mcu可以满足asil-b的安全等级要求,在时钟模块设计上,为了满足时钟的安全性需求,芯片内部集成了一个4通道的时钟监测模块cmu,可以在芯片运行过程中实时监测时钟是否稳定可靠。
cmu的基本原理是通过时钟之间的互相监测实现对时钟工作状态的异常监测。在cmu的内部,每个监测通道同时会有两个计数器采用两种不同的时钟进行计数,其中参考时钟计数溢出值固定为128,用于可以设定被监测时钟的异常判定范围,比如采用12mhz的sirc对120mhz的pll输出进行监测,如果允许的频率偏差为正负2%,那么异常判定的上下限可以通过如下公式计算:
系统外设时钟管理ytm32 m系列模块时钟主要有以下三种类型:
模块只需要寄存器访问时钟,这种情况下用户只需要打开ipc中模块的寄存器时钟即可正常使用模块,对于这些模块的功能时钟选择是无效的。比如使用dma的时候,只需要打开访问时钟就可以正常使用了。模块支持功能时钟,这种情况下,用户需要开启ipc中的模块时钟,同时根据需要选择合适的功能时钟,二者同时打开之后模块方可正常工作。比如使用spi模块的时候,应用还需要选择合适的功能时钟,并且spi的波特率计算也都是通过功能时钟频率来进行计算的。模块支持额外的外部时钟输入,或者模块内部集成时钟选择,对于这些模块,应用中除了ipc中进行合适的功能时钟选择之外,还可以根据需要在模块内部进行进一步的时钟选择。比如lptmr模块,除了可以在ipc中进行功能时钟选择以外,还可以在模块内部选择时钟来自ipc还是直接选择sirc或者sxosc,对于lptmr,额外的时钟选择可以让lptmr在power down模式下继续工作,因为power down模式下ipc掉电,无法继续提供时钟。模块时钟列表:no.modulebusgatefunction
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的时钟配置,第三列的bus代表当前模块所属的bus时钟域,不同的bus时钟域主要是时钟频率有差异,这个时钟域的配置用于不能更改,应用上也只需要做频率的区分就可以了,gate代表模块支持通过ipc关闭时钟,yes(1)表示模块时钟在芯片复位之后默认开启。function列表示模块是否支持功能时钟选择,可以看到只有部分模块支持功能时钟,对于其他不支持功能时钟选择的模块,对应的ipc时钟选择寄存器域是无法写入的。addition列代表模块的其他时钟源,这些模块的详细配置如下:
linflexd模块波特率时钟来自fast_bus_clk,当计算linflexd模块波特率的时候,需要依据fast_bus_clk的频率来进行计算(md1中linflexd已经支持功能时钟)flexcan模块的时钟可以选择fast_bus_clk或者fxosc_clk,这部分的选择是在flexcan模块内部实现的。etmr默认时钟来自fast_bus_clk,用户也可以根据需要从外部tclk输入时钟来作为etmr的时钟,注意外部输入时钟的时钟频率不能超过fast_bus_clk的一半。lptmr支持ipc管理时钟,同样也支持模块内部时钟源选择,这么做的原因是powerdown模式ipc模块会断电,无法为lptmr提供工作时钟,如果希望lptmr在powerdown模式继续工作,那么就需要将lptmr的时钟源在模块内部选成sirc或者sxosc时钟。rtc不支持ipc时钟源,rtc的时钟源默认在模块内部选择,这么做可以保证rtc在所有功耗模式下都可以正常工作。wdg也不支持ipc时钟源,wdg的时钟源也是在模块内部选择,支持sirc和sxosc两种时钟源。rcu模块因为涉及reset引脚的数字滤波器功能,如果数字滤波器开启,rcu需要使用sirc时钟来实现对引脚的数字滤波。
医疗VR是否还能起死回生?
基于nRF9E5芯片实现扑翼微型飞行器遥控系统的应用设计
三星Note 9将在夏季提前发布,甚至会早于8月
酶标仪选择时有哪些必要的原则
向CPU监控器电压检测输入添加迟滞,监控上游电源的电源故障警告
YTM32B1ME0系列MCU时钟模块介绍
OPPO一欧洲专利被维持有效
电液伺服万能试验机,企业用户怎么选购?租赁、代理
持续深耕物联网领域,武汉芯源半导体发布Sub-1G系列产品CW32W031
贸泽电子恭贺同济大学电车队获得2016中国大学生电动方程式大赛中国组季军
雷柏VT350双模游戏鼠标评测 到底好不好用
了解为什么你家的LED灯会越来越暗
超声波振动筛电控箱电源发生器设计
康沃尔航空航天宣布已与无人机运营商UAVAid合作
智能电网供电系统的工作原理、组成及应用
润和软件荣获51CTO开源基础软件社区“卓越影响力技术团队”等多项奖项
开关电源、电源转换模块的使用方法
IC载板2022年全球市值或突破100亿美元
微小型PCB线圈能用作 LDC1000 电感至数字转换器传感元件吗
选购低价笔记本:不得不说的五宗罪