欢迎光临
我们一直在努力

chx用什么配置【AUTOSAR实战系列】(7):MCAL之GTM-TOM模块原理与EB配置

在英飞凌 TC234 的 GTM(Generic Timer Module,通用定时器模块)中,TOM(Timer Output Module) 是最常用的子模块之一。它的核心功能是产生脉冲信号(如 PWM)

1.1 整体框图

image

1.2 全局通道控制TGC

(1)通过外部或内部事件同步驱动多个TOM通道

TGC0控制通道0-7,TGC1控制通道8-15

支持4中同步控制机制:

  • 全局使能/禁用

  • 全局输出使能

  • 强制更新寄存器

  • 时钟源更新使能

(2)触发源

  • 主机CPU

  • 时间基准单元TBU

  • 内部触发信号TRIG

    • 通道 x 的 CCU0 触发(TRIG_CCU0)
    • 前一个通道 x-1 的触发(TRIG_x-1)
    • 外部 TIM 通道捕获信号(TIM_EXT_CAPTURE[t])

1.3 TOM通道TOM_CHx

(1)核心组成

  • CCU0,设定PWM周期,设置CM0寄存器,生成周期匹配触发信号 TRIG_CCU0(用于同步或级联其他通道)。

  • CCU1,设定PWM占空比,设置CM1寄存器,生成占空比匹配触发信号 TRIG_CCU1。

  • SOU,配置输出起始电平,根据 TRIG_CCU0 和 TRIG_CCU1 的触发,通过 SR 触发器生成最终的 PWM 波形。

2.1 配置Mcu-Gtm->Cmu模块

(1)选择Mcu->McuModuleConfiguration选项卡,双击选择打开其中的配置文件McuModuleConfiguration_0,找到GtmConfiguration选项卡。

image

(2)双击打开配置文件GtmConfiguration_0,找到Cmu选项卡,点击“+”添加GTM时钟管理模块Cmu_0。

image

(3)双击进入Cmu_0选项卡,

使能CmuFixedClock时钟,该时钟为TOM模块提供时钟。时钟可选择GTM的全局时钟,也可选择GTM全局时钟分频值,CMU_CLOCK_0_DIVIDER分频值为2,CMU_CLOCK_1_DIVIDER分频值为24,CMU_CLOCK_2_DIVIDER分频值为28,CMU_CLOCK_3_DIVIDER分频值为212,CMU_CLOCK_4_DIVIDER分频值为216。用户手册提到该时钟仅有上述5个分频值,剩余5,6,7分频选项不应该被选择。

image

2.2 配置Mcu-Gtm->Tom模块(1路PWM)

(1)点击Tom进入TOM配置界面, 可看到TOM分为两个模块TOM0和TOM1,这里我们选择Tom_1的通道2作为PWM输出。

image

image

(2)双击Tom_1进入该选项卡,包含Tom的所有通道

image

(3)双击打开TomChannel_2配置Tom通道2,每个通道都有如下5个配置项。

image

TomChannelUsage:选择USED_BY_GTM_DRIVER

TomChannelEnable

  • AT_START,通道在初始化后立即自动启用,无需等待外部触发

  • ON_GLOBAL_TRIGGER,通道初始化后保持禁用,直到收到 TGC的触发信 号

不使能TomChDisableOnTgcTrigger

TomChannelOut

  • TomChannelOutputControl选择ENABLE_OUT_AT_START,通道初始化后立即激活输出引脚,输出初始电平

  • TomChOutputDisableOnTgcTrig选择为禁能

  • TomChannelOutputSignalLevel选择LOW,占空比计算基于低电平持续时间

  • TomChannelPortPinSelect选择TOUT70_SELA_PORT20_PIN14

TomChannelTimerParameters:该项可配置PWM的占空比和周期,例输出频率为20KHZ,占空比为50%的PWM。GTM当前频率为100MHZ,该通道选择的分频系数为1,所以Tom1_Channel2频率为100MHZ。

CM0控制周期值,CM1控制占空比。当设置CM0等于5000时,周期为50ns,即频率为20KHZ。PWM_HZ = 100M/5000 = 20KHZ

1)CN0 = 0,计数器初始值

2)CM0=5000,周期

3)CM1=2500,占空比

4)Sr0=5000,周期影子寄存器

5)Sr1=2500,占空比影子寄存器

6)使能TomChUpdateEnableOnCn0Reset

7)TomChannelClockSelect,配置该通道的时钟

8)TomChannelCounterCn0Reset,CN0复位由本通道事件触发

  • ON_COMPARE_MATCH_ON_CHANNEL:每当CN0大于等于CM0时复位

  • ON_TRIGGER_FROM_PREV_CHANNEL:由前一个通道的特殊事件触发

9)TomChannelExtCounterCn0Reset,CN0复位由外部事件触发

10)TomChannelTriggerOutput,这个配置决定 TOM通道在什么情况下会发出一个“触发信号”,用来控制其他模块(比如其他通道、ADC、CCU等)

  • CCU0_TRIG_OF_CHANNEL,根据CCU0模块的判断结果触发

  • TRIG_FROM_PREVIOUS_CHANNEL,前一个通道的触发信号直接复制给我

11)TomChannelExtTriggerOutput,同上

TomChannelInterrupt不使能

image

2.3 配置Mcu-Gtm->Tom模块(6路PWM)

时钟配置与1路PWM相同

(1)点击Tom进入TOM配置界面, 可看到TOM分为两个模块TOM0和TOM1,这里我们选择Tom_1的通道1-6作为PWM输出,通道0作为基准,通道7重点触发ADC采样。

(2)配置TomChannel_0

通道0作为所有PWM输出周期基准。即所有通道CN0跟随Channel0通道的CN0复位

  • TomChannelCounterCn0Reset = ON_COMPARE_MATCH_ON_CHANNEL

ON_COMPARE_MATCH_ON_CHANNEL,当本通道的比较匹配事件发生时,复位自己的计数器 CN0

ON_TRIGGER_FROM_PREV_CHANNEL,当前一个通道触发时,本通道的 CN0 被复位

  • TomChannelTriggerOutput = CCU0_TRIG_OF_CHANNEL

TRIG_FROM_PREVIOUS_CHANNEL,触发信号来自上一个通道的触发输出

CCU0_TRIG_OF_CHANNEL,触发信号来自当前通道的比较单元(CCU0)

image

image

(3)配置TomChannel_1

CM0、CM1根据实际情况配置

TomChannelOutputSignalLeve= LOW

TomChannelCounterCn0Reset = ON_TRIGGER_FROM_PREV_CHANNEL

TomChannelTriggerOutput = TRIG_FROM_PREVIOUS_CHANNEL

image

image

(4)配置TomChannel_2

TomChannelOutputSignalLevel = HIGH

TomChannelCounterCn0Reset = ON_TRIGGER_FROM_PREV_CHANNEL

TomChannelTriggerOutput = TRIG_FROM_PREVIOUS_CHANNEL

image

image

(5)Channel3-Channel6配置与通道1,2类似,不再赘述

(6)Channel7触发ADC采样

image

image

2.4 配置Port

这里TOM1的CH0到CH7都按照如下配置。

image

2.5 生成配置文件

image

3.1 导入库文件和EB生产的配置文件

不需要添加额为的库文件

替换一下重新生成的配置文件即可

image

3.3 添加导入文件的路径在Include Paths项目下

跳过,参考【AUTOSAR实战系列】(6):MCAL之GTM-TIM模块原理与EB配置

API接口 解释 Gtm_EnableTomChannel 使能相应的TOM通道 Gtm_DisableTomChannel 禁能相应的TOM通道 Gtm_SetTomShadowValSr0 修改影子寄存器SR0值(影响周期) Gtm_SetTomShadowValSr1 修改影子寄存器SR1值(影响占空比)

5.1 一路通道输出PWM

int main(void)

    	Mcu_DistributePllClock();
    }
    Port_Init(&Port_ConfigRoot[0]); // 初始化Port
    Dio_Init(&Dio_ConfigRoot[0]); // 初始化Dio
    Icu_17_GtmCcu6_Init(&Icu_ConfigRoot[0U]); // 初始化Icu
    Icu_17_GtmCcu6_StartSignalMeasurement(0); // 开始测量,EB中配置的是监测P33.4IO口
    Gtm_EnableTomChannel(1,12); //一路PWM输出
    while(1)
    
    }
}

5.2 六路通道输出PWM

调用的接口相同,只是EB里面的配置不同

MCU:TC234

调试器:Lauterbach

调试软件:TRACE32 ICD TriCore USB

使用示波器连接到MCU的P20.14引脚,可观察到如下图:

image

赞(0)
未经允许不得转载:上海聚慕医疗器械有限公司 » chx用什么配置【AUTOSAR实战系列】(7):MCAL之GTM-TOM模块原理与EB配置

登录

找回密码

注册