AURIX系列GTM模块中的PWM部分

在AURIX中的GTM 模块是一种普遍时钟模块,它是作为一种可以随意配置的时钟模块。时钟基于AURIX中的CCU(时钟和时钟控制单元)提供时钟源,实际上所有的外设都是通过这个来提供时钟呢。
同时在GTM中也包含一个CMU(时钟管理单元)。
所以你会发现这里不管是使用GTM中哪些模块,比如TBU TIM TOM,实际上都离不开上面两个时钟管理单元的配置。、
这里主要写一下PWM相关的部分,也就是用TOM模块的内容。
1. CCU(Infrastructural components)
2. CMU(Infrastructural components)
3. TOM (for PWM)
首先是CCU部分,有各类接口获取对应的时钟
CCU 不同的外设时钟源放置来自同一个时钟源,通过对应CCUCONx寄存器来配置不同外设,由图可以看到CGU的总来源可以是osc或backup。
这里写图片描述
而给GTM提供的源,通过查看PLLSTAT寄存器,看分频的情况。
这里写图片描述
现在各个频率分频的默认值:
这里写图片描述
而GTM 的时钟源就是来自SPB 频率
CMU provides several timers source.
这里写图片描述
根据系统时钟TSYS_CLK得到GTM时钟频率:
TCMU_GCLK_EN=( CMU_GCLK_NUM/CMU_GCLK_DEN)*TSYS_CLK
然后设定生成时钟信号源,有0~7总共8个源可以设置不同的频率,最后要开启PWM,直接使能CMU即可,CLK_EN。
这里写图片描述
每个CMU_CLK[x]设置的频率对应寄存器为GTM_CMU_CLK_x_CTRL (x=0-5)
6和7用的单独的两个
其中PWM的产生使用TOM这个模块
TOM提供单独的16个通道,每一个出单独的PWM,输出引脚TOM[i]_CH[x]_OUT,其中i={0,1},x={0~15}
这里写图片描述
实际配置也是按上图从左至右的设置。
1、首先设置TGCx
关于TGC作为TOM的总控制器,主要有三个操作:
1、enable/disable channel
2、Output Enable
3、Force update
而这三个操作有三个触发源:
1、the host CPU (bit HOST_TRIG of register TOMi_TGCy_GLB_CTRL)
2、the TBU time stamp (signal TBU_TS0, TBU_TS1, TBU_TS2)
3、the internal trigger signal TRIG (bunch of trigger signals
TRIG_[x]) (内部触发信号包括每个通道的触发TRIG_CCU0,TIM外部触发TIM_EXT_CAPTURE)

所以对于开启或停止PWM,可以通过TGCx模块直接配置enable/disable channel,来控制开启/停止。
这里写图片描述
2、Tom 通道
使用TOM之前,配置通道控制寄存器TOMi_CHx_CTRL
设置通道的时钟源——需要设置对应通道的CLK_SRC_SR位,
通过TRIGOUT位,设置那种触发源来更新pwm
这里写图片描述
TOM有两种模式:
TOM continuous mode
CN0自动+1,到M0清零
这里写图片描述
TOM One shot mode
一旦channel使能,CN0不+1
只有对CN0的写访问操作能触发CN0 加1
这里写图片描述
更新PWM的值分两种:
1)同步更新PWM 占空比值的过程:
1、disable 执行寄存器更新,操作寄存器UPEN_CTRL
2、在SR0、SR1、CLK_SRC写入新值
3、enable 执行寄存器的更新
这里写图片描述
可以看到每次SR的值改变,是在下一个周期体现。
2)异步更新PWM 占空比值
直接修改CM1的值,这样占空比的改变直接从当前周期开始
注意:在这种情况下使用时,需要完全disable同步更新机制。
这里写图片描述
需要获取通道源时钟频率,调用如下函数:
IfxGtm_Tom_Ch_getClockFrequency(driver->gtm,driver->tom,driver->timerChannel);
GTM作为主的时间模块,可以触发包括AD在内的各个其他模块。类似下面的列表设置
这里写图片描述
所以在要设定PWM什么时刻触发AD时,需要设置GTM中的ADCTRIG0OUT0寄存器,感觉类似上表制定用那个通道触发哪路AD。、
映射关系:
AD Groupx <————-> TOMx + channel x
就这样设置,就可以随意设置多路PWM,同时还有用TOM进行AD触发,从而满足电机等控制应用需求

  • 17
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Aurix GTM 定时器 OC 是一种由英飞凌半导体公司开发的高性能计时器,它是 Aurix 系列微控制器的一部分。OC 表示输出控制,即该定时器可以输出定时周期信号,以控制其他外设的运行时间。Aurix GTM 定时器 OC 可以实现高精度的定时和计数,其计时周期可以精确到微秒级别。 Aurix GTM 定时器 OC 的应用非常广泛,主要用于汽车电子、工业自动化、机器人控制等领域。以汽车电子为例,该定时器可以精确计时汽车的引擎启停时间、车速等参数,方便车辆控制和管理。在工业自动化领域,该定时器可以用于控制机器人运动的步频,精准控制机器人的行走速度和位置。此外,Aurix GTM 定时器 OC 还可以用于控制机器人的主动安全功能,如刹车、避障等。 总之,Aurix GTM 定时器 OC 是一种功能强大、应用广泛的高性能计时器,它可以实现高精度的计时和计数,并且在汽车电子、工业自动化、机器人控制等领域都有着重要的应用价值。 ### 回答2: AURIX GTM定时器OC是一种用于实时嵌入式系统的定时器,它采用了最先进的片上计时方法,提供了高精度的定时和计数功能。该定时器可以用于实现各种计时和测量功能,例如测量信号的周期、脉冲宽度和间隔时间等。它还可以被用作PWM控制器,通过改变信号的占空比来控制输出电压和电流。此外,AURIX GTM定时器OC还可以同时执行多个定时器任务,以提高系统的并行性和效率。 AURIX GTM定时器OC的特点包括: 1. 高精度的计时和计数功能,支持高达1纳秒的时钟分辨率; 2. 支持多种计时和测量模式,包括单次和自动重载计时模式、捕获模式、比较模式和PWM输出模式等; 3. 强大的事件管理功能,支持多种事件触发和事件响应方式,可以自动或手动触发事件; 4. 易于配置和使用,可以通过软件编程、硬件寄存器或配置工具进行配置和控制。 总之,AURIX GTM定时器OC是一种高性能的定时器,它可以用于实现各种复杂的计时和测量功能,提高嵌入式系统的精度和效率。 ### 回答3: AURIX GTM定时器OC代表汽车控制单元的通用定时模块输出比较。它在汽车电子控制系统发挥着非常重要的作用,它能够帮助控制单元进行精确的时间计算和实时控制。 具体来说,在汽车的控制单元,需要进行电流、电压、频率等参数的精确计算,以实现精准的控制和调节。而AURIX GTM定时器OC正是为了满足这一需求而诞生的。 AURIX GTM定时器OC的主要作用是控制模拟信号的输出和匹配。它可以根据电极的电势差,来调节电流和电压的输出,实现信号的匹配和传输。同时,定时器OC也可以进行频率、占空比等参数的调节,从而实现更精准的控制,提高汽车的整体性能。 总之,AURIX GTM定时器OC是汽车电子控制系统的一个非常重要的组成部分,通过它的精准计算和控制,可以实现更加精准的汽车控制。因此,对于开发汽车电子控制系统的工程师来说,熟练掌握AURIX GTM定时器OC的特性和使用方法,是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值