嵌入式技术william hill官网
直播中

lalajie

9年用户 1231经验值
擅长:模拟技术 存储技术
私信 关注
[经验]

Nuvoton M487开发板的PWM驱动评测步骤分享

一、M487 PWM简介
1、EPWM
 8个独立PWM 输出,16位计数器,12位预分频,最大时钟 192MHz
 12位死区时间
 计数方式有:上计数,下计数,上/下计数
 支持刹车功能
 对每一个PWM输出管脚支持屏蔽功能和三态使能
 12个独立PWM 输出,16位计数器,12位预分频,最大时钟 192MHz
 可配成12个输入捕获,16位时间值
 12位死区时间
 计数方式有:上计数,下计数,上/下计数
 可配置成3对互补模式PWM输出
 有相位同步功能
 支持刹车功能可自恢复
 对每一个PWM输出管脚支持屏蔽功能和三态使能
 可立即触发EADC/DAC启动转换
 可延时触发EADC/DAC启动转换(M48xGC/M48xE8)
 硬件短路输出检测(M48xGC/M48xE8)
2、BPWM
 如果定时器中断信号产生,支持芯片从空闲/掉电模式唤醒
 8个独立PWM 输出,16位计数器,12位预分频,最大时钟 192MHz
 12位死区时间
 计数方式有:上计数,下计数,上/下计数
 支持刹车功能
 对每一个PWM输出管脚支持屏蔽功能和三态使能
二、软件环境
rt-thread studio
SecureCRT
Logic 1.2.18
三、硬件环境
Nuvoton M487 开发板
Logic逻辑分析仪
四、建立测试环境
1、启动rt-thread studio建立基于Nuvoton M487的基本工程
2、配置工程打开PWM驱动

3、编译并烧写到开发板
在finsh输入list_device查看设备

可以查看PWM设备已经加载成功
4、配置PWM引脚
工程生成的nutool_pincfg.cfg文件好像只能用1.20版本打开,而我用的是1.23版本,又没找到1.20版本

只能在开发板原理图上看看有没现成可用的PWM引脚,在mikroBUS接口上有一个PWM输出


再通过nutool_PinView工具查看相应引脚的PWM通道
EPWM0的CH4通道可以使用
5、编写产生PWM的代码
pwm_dev = (struct rt_device_pwm *)rt_device_find("epwm0");

if (pwm_dev == RT_NULL)

{

//LOG_E("pwm run failed! can't find %s device!
", "epwm0");

return RT_ERROR;

}

rt_pwm_enable(pwm_dev,4);

rt_pwm_set(pwm_dev, 4, 1000, 500);
6、逻辑分析仪工具查看产生PWM信号
与程序设定的PWM频率、占空比一致
五、测评总结
1、工程生成的pincfg文件不能用1.20更高的版本打开,官网也没有1.20版本下载,导致pincfg文件没法配置
2、查看新唐对rt-thread的PWM驱动适配源码的配置项
struct rt_pwm_configuration

{

rt_uint32_t channel; /* 0-n */

rt_uint32_t period; /* unit:ns 1ns~4.29s:1Ghz~0.23hz */

rt_uint32_t pulse; /* unit:ns (pulse<=period) */

/*

* RT_TRUE : The channel of pwm is complememtary.

* RT_FALSE : The channel of pwm is nomal.

*/

rt_bool_t complementary;

};
只能配置频率、占空比、通道等的简单功能配置,只能作为一个简单PWM信号发生器,其它功能没法通过驱动框架进行配置,如需使用电机驱动,死区控制等的功能还是直接操作StdDriver驱动使用吧
总结一句:这个PWM的驱动适配就是一个鸡肋!!!

原作者:kun222

更多回帖

发帖
×
20
完善资料,
赚取积分