英创公司新近推出的高性价比工控主板产品em9170,其主板内部带有2路脉宽调制(pwm)输出通道,可用于通用的工业控制。本文介绍em9170的pwm通道的基本使用方法。
em9170的2路pwm均与系统的gpio复用管脚,其中pwm1与gpio12复用管脚,而pwm2与gpio13复用管脚。在上电初始化阶段,这两个管脚均设置为gpio的输入模式带100k上拉电阻。当应用程序需要操作pwm时,只需要打开对应的设备文件:
handle hpwmfile;
hpwmfile = createfile(_t('pwm1:'), // name of device
generic_read|generic_write, // desired access
file_share_read|file_share_write, // sharing mode
null, // security attributes (ignored)
open_existing, // creation disposition
file_flag_random_access, // flags/attributes
null); // template file (ignored)
这时的管脚将自动转为pwm输出。可使用的设备文件名为“pwm1:”和“pwm2:”。
em9170的pwm驱动程序,被设计成通过执行文件写来设置pwm参数及启动pwm输出。所写内容由以下结构定义:
typedef struct {
dword dwfreq; // pwm freq in hz
dword dwduty; // pwm duty in %
dword dwduration; // duration of pwm output (msec), = 0: -> infinit
} pwminfo, *ppwminfo;
上述定义包括在范例程序的pwm.h头文件中。在保证1%精度占空比的条件下,可输出的pwm最高重复频率为600khz。占空比是指正脉冲的相对宽度。
典型的调用方法为:
pwminfo pwminfo;
dword dwnumberofbytestowrite;
dword dwnumberofbyteswritten;
bool bret;
pwminfo.dwfreq = 1000; // pwm重复频率 = 1000hz
pwminfo.dwduty = 50; // pwm占空比 = 50%
pwminfo.dwduration = 10000; // pwm输出保持10s后停止
dwnumberofbytestowrite = sizeof(pwminfo);
dwnumberofbyteswritten = 0;
bret = writefile(hpwmfile, (lpcvoid)&pwminfo,dwnumberofbytestowrite,&dwnumberofbyteswritten, null);
pwminfo.dwfreq = 2000; // pwm重复频率 = 2000hz
pwminfo.dwduty = 80; // pwm占空比 = 80%
pwminfo.dwduration = 0; // 始终保持输出直至新的写操作或文件关闭
dwnumberofbytestowrite = sizeof(pwminfo);
dwnumberofbyteswritten = 0;
bret = writefile(hpwmfile, (lpcvoid)&pwminfo, dwnumberofbytestowrite, &dwnumberofbyteswritten, null);
若pwm脉冲的重复频率不变,仅仅是改变占空比,em9170的pwm可保证输出不间断地改变占空比参数。这对一些需要连续控制的应用很有必要的。
当不再需要pwm脉冲输出时,只需简单关闭相应的文件即可:
closehandle(hpwmfile);
在关闭pwm输出后,pwm1管脚将保持在低电平,pwm2管脚将保持在高电平。
PCBA加工中人工目检的检测内容有哪些
吉利与蔚来签署协议,将全面开展换电业务
触模式交流开关的工作原理及装配
LED显示屏在学校的应用,它具有什么优势
对于家用光伏逆变器你了解多少?
英创信息技术嵌入式主板EM9170的PWM介绍
腾讯推出了可以诊断帕金森症的AI辅助诊断技术
stm32单片机按键控制的用法解析
AI芯片攻坚战已然打响 深度学习技术逐渐成为主流
Saber软件与电源变换器设计实现
三星电子2020年一季度营业利润同比增长2.7%
MC34063A构成的供电电源电路
铸铁冷焊的焊接方法及注意事项
高精度高边检流放大器监测PWM负载电流
北京在区块链上的应用进度情况怎样
魅族Pro7概念图发布,打破魅族以来的设计传统
LED照明驱动厂商:上海智浦欣微电子有限公司简介
基于一种磁致伸缩的线性位移测量系统LMPS 34介绍
一份科技行业高薪清单曝光了,年薪最高达到34.5万美元
稳压管工作特性是什么?