一、测试环境
SemiDrive 支持系统 G9 系列目录中,PTG5.1.2 版本只适用于 G9H,其中 MCAL_v1.3.0 例程较为全面。最近进行了 PWM 模块的例程测试,操作过程 hands on 如下:
注:此版本使用 eMMC Only 的启动方式(拨码:0001),不使用 OSPI Flash。
硬件:SemiDrive G9H ref A02 图(1)
软件:PTG5.1.2 + MCAL_v1.3.0
软件环境搭建以及 G9H Ref A02 操作方法参考:《SD_G9_Quick_Start_Rev2.4.pdf》
图(1)
2024/10/28~11/03 万圣节特别企划,点击此处参与有奖活动吧~
二、配置&Demo
- 模块介绍:
PWM 驱动用于产生脉冲宽度调制 ( Pulse-Width Modulation ) 波形。共包含 8 个 PWM HW Module,8 个T imer 控制输出的 TIMER PWM HW module,其中每个 Module 支持 4 路 PWM 波形输出,总共最多支持 64 路 PWM 波形输出。本次实验使用 safety 域的 TIMER2。
PWM | domain |
PWM1 ~ PWM2 | safety |
TIMER1 PWM ~ TIMER2 PWM | |
PWM3 ~ PWM8 | ap |
TIMER3 PWM ~ TIMER8 PWM |
表一 PWM default 资源分布
本次实验参考已引出排线的引脚,计划使用 TIMER PWM HW module 2 的 CH2 作为 PWM 的输出端。
图一 PWM 输出引脚
- EB配置
参考硬件原理图,复用 GPIO_A0 功能为 TMR2_CH2,其余配置不动。如图二:
图二 引脚复用
PwmChannelId: Pwm Id,注意该 Id 的值必须从 0 开始连续,最大值不超过 63
PwmHwModule: 芯片PWM Id 与 TIMER 实现的 PWM ID,PWM1~PWM8,TIMER PWM1~TIMER PWM8
这里选用 TIMER_PWM_MODULE2
PwmDutyCycleDefault:Pwm 默认占空比设置,取值范围为 0~32768,对应占空比 0%~100%
PwmIdleState:Pwm Idle 状态时输出电平设置(PWM_LOW)
PwmPeriodDefault:Pwm 输出波形周期控制,其中最小 0,最大为 4.392,单位是秒
PwmPolarity:Pwm 输出波形极性控制(PWM_HIGH)
PwmHwOutPutChType:芯片 Pwm 输出通道选择,与 PwmHwModule 息息相关
这里选用 PWM_OUTPUT_CH2
PwmMcuClockReferencePoint : Pwm 输入 clk 选择,无需配置
PwmChannelClass:Pwm 周期 PwmPeriodDefault 是否可 usr 设置
这里选用 PWM_VARIABLE_PERIOD:usr 可设置(否则调用设置周期和占空比接口时会有报错。)
PwmModuleFrequency:芯片PWM 时钟频率显示,不可配置(400:400Mhz)
PwmHwModulePrescaler:芯片PWM 时钟频率分频
注意:真实分频倍数为 PwmHwModulePrescaler+1,例如设置为 39,实则为 40 倍分频
图三 PwmChannel
PwmDeinitApi:是否开放 Pwm Deinit 功能。
PwmSetDutyCycle:是否开放 Pwm duty 设置接口。
PwmSetOutputToIdle:是否开放 Pwm Idle 状态设置接口。
PwmSetPeriodAndDuty:是否开放 Pwm 周期与占空比设置接口。
这里需勾选,否则调用设置周期和占空比接口时会有报错。
PwmVersionInfoApi:是否开放获取版本号接口。
图四 PwmConfigurationOfOptApiService
- 代码和Log
实例中使用 Pwm_SetPeriodAndDuty 接口,可直接设置指定通道 PWM 的周期和占空比。经过 Pwm.c->Timer_Pwm_Ip.c 层层调用。将周期参数的值通过公式转换后,写入寄存器TIMER_PWM_CNT_G0_OVF(图五),其中周期参数的 1 个单元的时长代表 10ns。
图五 测试例程
图六 周期设置实现逻辑
对照 Log 和测量结果:
Case 700:设置周期为 10ms,占空比为 37.5% 的 PWM 输出(图七),从数字示波器的测量结果来看符合预期(图八)。
图七 测试例程Log
图八 数字示波器测量结果
三、参考文献
- 《SemiDrive_9Series_MCAL User Guide》
- 《G9 Series Processor Technical Reference Manual》
欢迎在博文下方留言评论,我们会及时回复您的问题。
如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com 作者:Alan
更多资讯,请关注原文作者!