MCAL配置-PWM(EB23.0)

本文围绕AUTOSAR中的PWM配置展开,介绍了General和PwmChannel两部分配置项。General部分涉及多个API的添加或删除、错误检测开关等;PwmChannel部分涵盖通道ID、硬件资源、占空比、周期等参数设置,对各配置项的功能、取值及默认情况做了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PWM配置项的介绍

一、General

1、PwmDeInitApi

从代码中添加/删除Pwm_17_GtmCcu6_Delnit() API。

TRUE:Pwm_17_GtmCcu6_Delnit() API可供用户使用。

FALSE:Pwm_17_GtmCcu6_Delnit() API对用户不可用。

注意:默认情况下禁用Pwm_17_GtmCcu6_Delnit() API以最小化可执行代码大小。

2、PwmGetOutputState 

从代码中添加/删除Pwm_17_GtmCcu6_GetOutputState() API。

TRUE:Pwm_17_GtmCcu6_GetOutputState() API可供用户使用。

FALSE:Pwm_17_GtmCcu6_GetOutputState() API对用户不可用。

注意:默认情况下禁用Pwm_17_GtmCcu6_GetOutputState() API以最小化可执行代码大小。

3、PwmSetDutyCycle

从代码中添加/删除服务Pwm_17_GtmCcu6_SetDutyCycle() API。

TRUE: Pwm_17_GtmCcu6_SetDutyCycle() API对用户可用。

FALSE: Pwm_17_GtmCcu6_SetDutyCycle() API对用户不可用。

注意:Pwm_17_GtmCcu6_SetDutyCycle() API默认禁用以最小化可执行代码大小。

4、PwmSetOutputToIdle

从代码中添加/删除服务Pwm_17_GtmCcu6_SetOutputToldle()。

TRUE: Pwm_17_GtmCcu6_SetOutputToldle() API对用户可用。

FALSE: Pwm_17_GtmCcu6_SetOutputToldle() API对用户不可用。

注意:Pwm_17_GtmCcu6_SetOutputToldle() API默认禁用以最小化可执行代码大小。

5、PwmSetPeriodAndDuty

从代码中添加/删除服务Pwm_17_GtmCcu6_SetPeriodAndDuty()。

TRUE: Pwm_17_GtmCcu6_SetPeriodAndDuty() API可供用户使用。

FALSE: Pwm_17_GtmCcu6_SetPeriodAndDuty() API对用户不可用。

注意:默认情况下禁用Pwm_17_GtmCcu6_SetPeriodAndDuty() API以最小化可执行代码大小。

6、PwmVersionInfoApi

从代码中添加/删除服务Pwm_17_GtmCcu6_GetVersionInfo。

TRUE: Pwm_17_GtmCcu6_GetVersionInfo() API可供用户使用。

FALSE: Pwm_17_GtmCcu6_GetVersionInfo() API对用户不可用。

注意:默认情况下禁用Pwm_17_GtmCcu6_GetVersionInfo() API以最小化可执行代码大小。

7、PwmDevErrorDetect 

将(DET)检测和通知切换到ON或OFF。

TRUE:启用。

FALSE:禁用。

8、PwmMultiCoreErrorDetect

启用或禁用与多核相关的DET检测和报告。仅在启用DET/Safety时才适用。

9、PwmDutycycleUpdatedEndperiod

全局开关,使能在当前周期结束时更新占空比参数。

TRUE:更新占空比在当前生成的波形周期结束时完成(当前波形完成)。

FALSE:立即更新占空比(就在服务调用之后,当前波形更新为新的占空比值)。

默认值设置为“硬件默认值”。

注意:如果全局开关为TRUE,那么对于PWM_VARIABLE_PERIOD通道,占空比和周期将在当前生成的波形的周期结束时更新。

备注:此参数仅适用于GTM通道。

10、PwmIndex

11、PwmLowPowerStatesSupport 

由于不支持电源模式,该参数不启用。

添加/删除所有电源状态管理相关的API (PWM_SetPowerState;PWM_GetCurrentPowerState、PWM_GetTargetPowerState、PWM_PreparePowerState、PWM_Main_PowerTransitionManager)表示硬件提供低功耗状态管理。

12、PwmNotificationSupported 

通知支持的开关。

TRUE:支持通知。

FALSE:不支持通知。

注意:默认值设置为FALSE以最小化可执行代码大小。

13、PwmPeriodUpdatedEndperiod 

启用在当前周期结束时更新period参数的全局开关。

TRUE:可变周期通道的周期和占空比在当前生成波形的周期结束时更新(当前波形完成)。

FALSE:立即更新变周期通道的周期和占空比(就在服务调用之后,当前波形更新为新的周期值)。

PWM_FIXED_PERIOD、pwm_fixed_period_shift和PWM_FIXED_PERIOD_CENTER_ALIGNED类通道不受此参数设置的影响。

备注:默认值为“硬件默认值”。

备注:此参数仅适用于GTM通道。

14、PwmChannelCoherentSelection 

在当前周期结束时启用占空比/周期参数的智能通道更新开关。

TRUE:周期/占空比的更新是基于PWM通道特定配置PwmCoherentUpdate配置参数完成的。FALSE:根据PwmDutycycleUpdatedEndPeriod和PwmPeriodUpdatedEndPeriod全局参数更新周期/占空比。

备注:此参数仅适用于GTM通道。

15、PwmHandleShiftByOffset 

当PwmHandleShiftByOffset被启用时,移位的通道以偏移量开始,并将类似于固定周期通道。当不选择PwmHandleShiftByOffset时,从引用的固定周期通道触发移位通道。

备注:此参数仅适用于GTM通道。

16、PwmDutyShiftInTicks 

确定占空比和移位值是绝对的还是相对于周期的。

TRUE:占空比和移位值作为绝对刻度输入。

FALSE:输入占空比和移位值相对于周期。

0为0%,Ox8000为100%。

注意:默认值设置为FALSE,因为它是非autosar功能。

17、PwmEnable0Or100DutyNotification 

如果设置为ON,则固定周期和可变周期通道支持0%和100%的通知。

如果设置为OFF,则固定周期和可变周期通道的0%和100%不支持通知。

注意:默认值设置为FALSE以最小化可执行代码大小。

18、PwmPowerStateAsynchTransitionMode 

由于不支持电源模式,该参数不启用。

启用/禁用对异步电源状态转换的PWM驱动器的支持。

19、PwmSafetyEnable 

启用安全错误报告的开关(范围和合理性检查)。

注意:当启用此开关时,AUTOSAR DET默认启用。

默认情况下启用安全相关错误的检测,以确保在产品生命周期中解决安全问题。

20、PwmInitCheckApi 

开启安全初始化检查API。

注意:默认情况下启用安全相关错误的检测,以确保在产品生命周期中解决安全问题。

二、PwmChannel

1、PwmChannelId

PWM通道Id。该值被分配给从PwmChannel容器短名称派生的符号名称。Id值必须连续。注意:对每个新的PWM通道计算一个连续的值。选择最小通道ID作为默认值。

注意:PwmChannelld的值在一个配置集中应该是唯一的。

2、PwmAssignedHwUnit 

用于产生PWM的硬件资源:GTM或CCU6。

注意:对于无GTM的设备,此参数将只保留CCU6选项。在这种情况下,默认值将是CCU6。

3、PwmDutycycleDefault

通道占空比的默认值。可以根据PwmDutyShiftInTicks参数输入绝对刻度或相对百分比。

当PwmDutyShiftInTicks设置为OFF时,该值相对于周期。0是0%,0x8000是100%。

当PwmDutyShiftInTicks设置为ON时,该值以绝对刻度为单位。

0是0%,如果相同的值大于或等于PwmPeriodDefault,则占空比为100%。

范围:

如果TOM/ATOM/CCU6的PwmDutyShiftInTicks为STD_OFF,则0~ 0x8000。

如果PwmDutyShiftInTicks为STD_ON且模块为TOM或CCU6时,则0 ~ 0xFFFF。

如果PwmDutyShiftInTicks为STD_ON且模块为ATOM时,则0 ~ 0xFFFFFF。

注:硬件复位为FALSE时,默认为FALSE。

4、PwmIdleState 

表示信号停止(即调用)后PWM的输出状态Pwm_17_GtmCcu6_SetOutputToldle)。

注:默认为硬件复位值。

5、PwmPeriodDefault

用于初始化的周期值。

如果PwmChannelClass为PWM_FIXED_PERIOD或PWM_VARIABLE_PERIOD,则此值重要。

范围:

0 ~ OxFFFF,当模块为TOM或CCU6时;

0到OxFFFFFF,当模块是ATOM。

备注:默认值与硬件复位值匹配。

6、PwmPolarity 

定义每个PWM通道的起始极性。

注意:默认设置为PWM_LOW,因为硬件重置值为FALSE。

PWM_HIGH: PWM通道输出在周期开始时高,然后在达到占空率计数时低。

PWM_LOW: PWM通道输出在周期开始时低,然后在达到占空率计数时高。

7、PwmMcuClockReferencePoint 

包含对McuClockReferencePoint的引用。由于没有使用此参数,因此它是禁用的。

8、PwmShiftValue

根据PWM_FIXED_PERIOD类通道配置初始移位值。可以根据PwmDutyShiftinTicks参数输入绝对刻度或相对百分比。

当PwmDutyShiftInTicks设置为OFF时,该值相对于周期。

0是0%,0x8000是100%。

当PwmDutyShiftInTicks设置为ON时,该值以绝对刻度为单位。值0为0%。

与参考通道的PwmPeriodDefault值相同则为100%。

如果PwmChannelClass是pwm_fixed_period_shifts,这是重要的。

注意:默认设置为匹配硬件复位值。

9、PwmReferenceChannel  

如果PwmChannelClass是pwm_fixed_period_shift或PWM_FIXED_PERIOD_CENTER_ALIGNED,则此值有效。

如果PwmChannelClass是pwm_fixed_period_shifts或PWM_FIXED_PERIOD_CENTER_ALIGNED,则必须提供引用通道。

引用通道只能为PWM_FIXED_PERIOD。

注意:默认值为空白,因为用户必须从MCU驱动程序中选择适当的参考值。

10、PwmCoherentUpdate 

启用在当前周期结束时更新占空比/周期参数的开关。

TRUE:周期/占空比的更新在当前生成波形的周期结束时完成(当前波形完成)。

FALSE:周期/占空比立即更新(就在服务调用之后,电流波形被切断)。

根据PwmChannelClass,更新结束周期可以为占空比工作,也可以为占空和周期工作。可变周期通道更新占空比和周期,而其他PwmChannelClass通道只更新占空比。

备注:此参数仅适用于GTM通道。

11、PwmChannelClass

PWM_FIXED_PERIOD: PWM通道有固定的周期。只能改变占空比。

PWM_FIXED_PERIOD_CENTER_ALIGNED:这类PWM通道是指周期与一个PWM_FIXED_PERIOD通道相关,占空比将正好落在周期的中间。只有占空比可以为这个通道类改变。

注意:当设备中有GTM硬件时,PWM_FIXED_PERIOD_CENTER_ALIGNED通道适用。

PWM_FIXED_PERIOD_SHIFTED:这类PWM通道是指周期与一个PWM_FIXED_PERIOD通道相关和占空比被要求的固定百分比移位。只能改变占空比。

PWM_VARIABLE_PERIOD:这类PWM通道具有可变周期和占空比。两者都可以在运行时更改。此通道不应被任何其他通道引用,也不引用任何通道。

注意:如果PwmSetPeriodAndDuty设置为false,PWM_VARIABLE_PERIOD不适用。

12、PwmNotification

PWM驱动程序使用PwmNotification来调用用户定义的函数,以生成相应通道的边缘。参数可以是通知函数的名称或地址(数值)。

注1:由于函数的名称是可配置的,所以默认值保持为NULL。

注2:PWM驱动程序不验证配置的功能名称或地址的正确性,责任落在用户身上。

如果McuAtomChannelEventHandledByDsadc /McuAtomChannelEventHandledByDsadc为TRUE,则当TOM/ATOM通道分别发生事件时,通知回调将由DSADC处理,而不是由PWM处理。因此,对于该通道,PwmNotification参数将不可编辑。

13、GtmTimerUsed 

分配给PWM通道的TOM或ATOM通道资源。

该参数列出所有GTM定时器通道(TOM或ATOM)。MCU中引用的定时器通道应该具有TomChannelUsage/AtomChannelUsage作为USED_BY_PWM_DRIVER。

注意:默认值设置为BLANK,因为用户必须从MCU驱动程序中选择适当的参考值。

14、GtmTimerClockSelect 

GTM时钟的选择。

15、GtmTimerPortPinSelect 

GTM针脚的选择。

MCAL配置PWM中断时,可以按照以下步骤进行操作: 1. 首先,查阅RH850芯片的参考文档,找到与PWM中断相关的章节或部分。参考文档中应该包含了关于中断的配置和使用方法。 2. 在Davinci工具中,找到MCAL PWM模块的配置选项。根据项目原理图和参考文档的指导,确定需要配置的中断相关的寄存器和参数。 3. 配置PWM中断的触发条件和优先级。根据项目需求,可以选择边沿触发或电平触发,并设置中断的优先级。 4. 在代码中,编写中断服务函数。根据MCAL的规范和参考文档的指导,实现中断服务函数的功能。 5. 在主程序中,使能PWM中断。根据MCAL的规范和参考文档的指导,使用相应的函数或寄存器设置来使能PWM中断。 通过以上步骤,可以完成MCAL配置PWM中断的操作。请注意,具体的配置步骤可能会因为不同的芯片和MCAL版本而有所差异,因此请参考相关的参考文档和工具的使用手册进行具体操作。 #### 引用[.reference_title] - *1* *2* *3* [【AUTOSAR】RH850(F1KM) MCU PWM配置(MCAL)](https://blog.csdn.net/xinsuiwodong2014/article/details/128984307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值