我想在
tiM 模块 (CMU_CLK0) 中使用 Fgtm 频率(在我的情况下为 200Mhz)
根据用户手册,CMU_CLK0 频率取决于以下因子/分频器:
1) GTM_CLS_CLK_CFG (CLS0_CLK_DIV)
2) 全局时钟分频器 (Z/N)
3) 时钟源 0 分频器 (CMU_CLK0_CTRL)
我将 GTM_CLS_CLK_CLK_CFG 寄存器中的 CLS0_CLK_DIV 配置为在没有时钟分频器的情况下启用 (01b)
我将 Z (NUM) 配置为 1,将 N (DEN) 配置为 1(如用户手册中所述,NUM 写了两次)
我在 CMU_CLK0_CTRL 中将 CNT 配置为 0
我生成了一个具有 500Hz 和 50 占空比的 PWM 信号(使用 mcUnode 进行测试)然后将其连接到 TIM 通道,计算结果显示 PWM 信号的频率为 1Khz,这意味着如果我除以 100Mhz 我会得到正确的值,所以 TIM 频率是 100Mhz 而不是 200Mhz
笔记:
1) Fgtm 正确配置为 200Mhz,GTM 分频器为 1 (2* Fspb),SPB 分频器为 3,系统频率为 300Mhz,在所有相关寄存器 (ccuCons) 和 Lauterbach(有一项功能可以显示所有配置时钟的值)
所以问题不在于 Fgtm
2) TIM 通道配置正确
CNTS_SEL = 0
GPR0_SEL = 3 GPR1_SEL = 3
FLT_EN = 0(不需要过滤器)
CLK_SEL = 0 (CMU_CLK0)
OSM = 0(连续 模式 )
TIM_MODE = 0(PWM 测量 模式 )
DSL = 1(上升边缘),ISL 是 DSL
当然,该频道是在配置之后启用的
3) 我观察到,如果我将全局分频器 (Z) 设置为 2 或者将 CMU_CLK0_CTRL 中的 CNT 设置为 1,我会得到同样的行为,看起来 GTM 时钟系统总是将 Fgtm 除以 2
你能帮我解决这个问题吗?,这是 Aurix 中的已知错误吗?