-
概述
- 脉宽调制(PWM)驱动器负责提供与AUTOSAR指定的PWM信号生成相关的标准服务。PWM通道的底层定时器引擎是一个GTM (TOM或ATOM片)或CCU6 (T12或T13片)定时器通道。
- 依赖硬件
- 详细配置
container:PwmGeneral 中包含Pwm的通用配置
PwmDevErrorDetect 用于指定是否启用开发错误诊断,本例中禁用;
PwmMultiCoreErrorDetect 用于指定是否启用多核开发错误诊断,本例中禁用;
PwmDutycycleUpdatedEndperiod 用于指定是否在当前周期结束时更新占空比参数,本例中开启;
PwmIndex 模块实例ID,从0计;
PwmLowPowerStatesSupport 是否支持低功耗电源模式,默认不支持;
PwmNotificationSupported 是否支持通知,本例中启用;
PwmPeriodUpdatedEndperiod 用于指定是否在当前周期结束时更新周期参数,本例中开启;
PwmChannelCoherentSelection 是否开启在当前周期结束时按通道更新duty/period参数的开关,默认禁用;
PwmHandleShiftByOffset 是否启用通道移位,默认禁用;
PwmDutyShiftInTicks 用于指定占空比和移位值是绝对的还是相对于周期的,本例中启用,采用绝对值;
PwmEnable0Or100DutyNotification 是否支持0%和100%的固定周期和可变周期通道的通知,本例中开启;
PwmPowerStateAsynchTransitionMode 用于指定是否对异步电源状态转换的支持,默认禁用;
PwmSafetyEnable 用于指定是否启用安全模式,本例中禁用;
PwmInitCheckApi 用于指定是否启用初始化检查api,本例中启用;
PwmPowerStateConfig 用于定义一个电源状态和到达此电源状态时要调用的回调,因为不支持电源模式,默认不可编辑;
container:PwmConfigurationOfOptApiServices
PwmDeInitApi 用于指定是否启用失能api,本例中启用;
PwmGetOutputState 用于指定是否启用获取输出状态的api,本例中启用;
PwmSetDutyCycle 用于指定是否启用设置占空比的api,本例中启用;
PwmSetOutputToIdle 用于指定是否启用设置输出空闲状态的api,本例中启用;
PwmSetPeriodAndDuty 用于指定是否启用设置周期和占空比的api,本例中启用;
PwmVersionInfoApi 用于指定是否启用版本信息的api,默认禁用;
container:PwmChannelConfigSet 中包含Pwm通道的具体配置,本例中创建了4个通道;
sub-container:PwmChannel_0 中包含Pwm通道0的具体配置,其余通道同理;
PwmChannelClass 用于指定PWM波的类型,支持下列4种
PwmChannelId 用于指定通道ID,从0计且值必须是连续的;
PwmAssignedHwUnit 用于指定所使用的硬件资源,GTM或CCU6;
PwmDutycycleDefault 占空比初始值,解释如下:
PwmIdleState 用于指定波形空闲时的电平值,默认低电平;
PwmNotification 指定回调函数名称,并在代码中实现定义,本例忽略;
PwmPeriodDefault 周期初始值,解释如下:
PwmPolarity 用于指定波形极性,默认低电平;
PwmMcuClockReferencePoint 用于指定时钟引用点,本例中忽略;
PwmShiftValue 指定默认偏移值,只对PWM_FIXED_PERIOD_SHIFTED类的波起效;
PwmReferenceChannel 用于指定固定周期波的通道引用,只对PWM_FIXED_PERIOD_SHIFTED和PWM_FIXED_PERIOD_CENTER_ALIGNED 类的波起效;
PwmCoherentUpdate 用于指定是否在当前周期结束时更新duty/period参数,本例中禁用;
GtmTimerOutputModuleConfiguration 中包含了用于配置TOM或ATOM计时器的定时需求的设置;
GtmTimerUsed 用于指定定时器通道,本例中用了Atom0的ch0,故为:/Mcu/Mcu/McuHardwareResourceAllocationConf_0/McuGtmAllocationConf_0/McuGtmAtomAllocationConf_0/McuGtmAtomChannelAllocationConf_0;
GtmTimerClockSelect 用于指定时钟源选择,定义如下:
CCU6CC6Configuration 由于使用的Gtm,因此CCU6无须配置;
container:McuHardwareResourceAllocationConf 中包含硬件外设资源的分配;
sub-container:McuGtmAtomChannelAllocationConf 中包含Atom通道的分配;Gtm下属12个Atom,故McuGtmAtomAllocationConf_0 ~ McuGtmAtomChannelAllocationConf_11;每一个Atom下属8个通道,故McuGtmAtomChannelAllocationConf_0 ~ McuGtmAtomChannelAllocationConf_7,本例中只使用了Atom0的前4个通道;
McuGtmAtomChannelAllocationConf 用于指定通道复用情况,支持如下:
McuAtomChannelEventHandledByDsadc 用于指定当事件发生时是否调用DSADC的回调或保留资源的驱动程序,默认禁用;
sub-container:GtmGlobalConfiguration 中包含Gtm的全局配置;
sub-container:GtmAtomGlobalConf 中包含Gtm下属外设Atom的全局配置;tc397中Gtm下属有12个Atom,故GtmAtomGlobalConf_0 ~ GtmAtomGlobalConf_11,篇幅有限其余未列出,配置相似;
sub-container:GtmAtomChannelConf 中包含Gtm下属外设Atom的具体通道的配置;每一个Atom下属8个通道,故GtmAtomChannelConf_0 ~ GtmAtomChannelConf_7,本例中只使用了Atom0的Ch0~3,其余通道未列出,配置相似;
GtmAtomChResetCn0OnTriggerEnable 用于指定是否启用从任何触发器上重置ATOM通道的CN0寄存器,默认禁用;
GtmAtomChInternalTriggerEnable 用于指定是否启用内部触发,默认禁用;
GtmTimerPortPinSelect 用于指定Gtm_Atom_Ch和Port_Pin的对应关系,每一个Gtm_Atom_Ch支持的pin脚可以在配置项的下拉菜单中选择,用户只需要合理匹配即可;
sub-container:PortContainer_2 中包含Pwm输出时使用的物理pin脚的具体配置;
本例中使用Port02的Pin0~3用来输出GTM_TOUT的0~3通道,具体GTM_TOUT通道和PortPin的对应关系请参考引脚文档;配置pin脚的方向为PORT_PIN_OUT,复用模式为ALT1,其他保持默认值即可。
container:CommonPublishedInformatica 中是软件自动生成的版本号默认值,用户无需修改,保持默认即可。
标签:container,启用,指定,本例,用于,驱动,PWM,EB,通道 From: https://www.cnblogs.com/lance9527/p/17085765.html