0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM335x输出脉冲计数介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-04 10:30 次阅读

ESM335x的PWM1和PWM2除了可用于产生标准的PWM信号外还支持输出脉冲计数功能,输出脉冲计数的工作原理是驱动程序每输出一个PWM波就产生一个中断并计数,当计数达到用户设定的脉冲个数后,驱动程序自动停止PWM输出,由于系统响应中断有一定的延时,所以驱动程序对输出脉冲的最高频率限制在5KHz。

应用程序通过打开PWM设备("PWM1:"或"PWM2:")使用脉冲计数功能,下面是示例代码:

#include "stdafx.h"

#include "bsp_drivers.h"

int _tmain(int argc, _TCHAR* argv[])

{

HANDLEhPWM;

PWM_INFO pwm_info;

DWORDdwBytes;

BOOL bRc;

hPWM = CreateFile( TEXT("PWM1:"),

GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_RANDOM_ACCESS,

NULL);

pwm_info.dwNum = 0;//PWM输出模式

pwm_info.dwFreq = 100000;//频率范围1Hz~50MHz

pwm_info.dwDuty = 500;//占空比50%, 单位0.1%

pwm_info.dwPol = 1;//极性

bRc = WriteFile( hPWM, &pwm_info, sizeof( PWM_INFO), &dwBytes, NULL );

pwm_info.dwFreq = 0;//频率参数为0,停止PWM输出

bRc = WriteFile( hPWM, &pwm_info, sizeof( PWM_INFO), &dwBytes, NULL );

pwm_info.dwNum = 3;//PWM脉冲计数输出模式

pwm_info.dwFreq = 5000;//频率范围1Hz~5KHz

pwm_info.dwDuty = 500;//占空比50%, 单位0.1%

pwm_info.dwPol = 1;//极性,无输出时IO保持为高电平

//脉冲输出完成或超时后WriteFile函数返回, dwBytes返回实际输出的脉冲个数

bRc = WriteFile( hPWM, &pwm_info, sizeof( PWM_INFO), &dwBytes, NULL );

CloseHandle( hPWM );

return 0;

}

上面代码中的pwm_info用于设置PWM参数,其定义如下:

typedef struct

{

/*PWM频率,单位:Hz,PWM模式输出频率范围1Hz~50MHz,脉冲计数模式频率范围1Hz~5KHz

= 0: 停止PWM输出*/

DWORDdwFreq;

DWORDdwDuty;/*占空比, 单位:0.1%, 范围:0 - 1000*/

DWORD dwPol;/*PWM极性, =0:高电平有效, =1:低电平有效*/

DWORDdwNum;/*输出脉冲个数, =0:连续的PWM输出*/

} PWM_INFO, *PPWM_INFO;

当参数设置dwFreq=5000, dwDuty=500, dwPol=1, dwNum=3时,输出的波形如下:

只有当PWM脉冲信号输出时,其对应的IO才会被驱动为高电平或低电平,其余时间PWM引脚为高阻输入状态,由于ESM335x主板上GPIO上拉电阻的作用,在没有脉冲输出时,PWM引脚为上拉输入状态(高电平)。如果实际使用,时希望PWM平时保持为低电平,则需要在PWM信号上增加反向器,比如增加一级非门。

在PWM引脚上增加1K欧的下拉电阻,同时将设置dwPol=0,也可以保证PWM引脚在没有输出时保持为低电平,下图是在PWM引脚上增加了下拉电阻,同时参数设置为dwFreq=5000, dwDuty=500, dwPol=0, dwNum=3时输出的波形:

利用反向电路或增加下拉电阻,这两种方法都可以保证PWM信号在ESM335x上电启动过程中和没有脉冲输出时保持为低电平。

PWM脉冲通常用来控制步进电机,脉冲频率决定电机转速,脉冲个数控制电机的角位移。步进电机在启动过程中,需要控制脉冲从一个较低的频率逐渐增加到电机正常工作时的频率,电机在停止时也有一个相应的减速过程。在使用ESM335x的PWM驱动步进电机时,可以多次调用WriteFile函数,然后每次修改PWM脉冲频率来实现步进电机的加速和减速过程。需要注意的是在即便应用程序连续不断的调用WriteFile函数,在每次调用之间都会有几十到几百微秒不等的延时。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6087

    浏览量

    35672
收藏 人收藏

    评论

    相关推荐

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 191次阅读

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 230次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 272次阅读

    AM335x和AMIC110 Sitara™处理器技术参考手册

    电子发烧友网站提供《AM335x和AMIC110 Sitara™处理器技术参考手册.pdf》资料免费下载
    发表于 11-14 15:07 1次下载
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara™处理器<b class='flag-5'>技术</b>参考手册

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 574次阅读

    AM335x功耗估算工具

    电子发烧友网站提供《AM335x功耗估算工具.pdf》资料免费下载
    发表于 10-12 11:46 0次下载
    AM<b class='flag-5'>335x</b>功耗估算工具

    AM335x硬件设计指南

    电子发烧友网站提供《AM335x硬件设计指南.pdf》资料免费下载
    发表于 09-19 11:05 0次下载
    AM<b class='flag-5'>335x</b>硬件设计指南

    具有脉冲计数接口的 LMT01-Q1 0.5°C 精度双引脚数字输出温度传感器数据表

    电子发烧友网站提供《具有脉冲计数接口的 LMT01-Q1 0.5°C 精度双引脚数字输出温度传感器数据表.pdf》资料免费下载
    发表于 08-13 09:20 0次下载
    具有<b class='flag-5'>脉冲计数</b>接口的 LMT01-Q1 0.5°C 精度双引脚数字<b class='flag-5'>输出</b>温度传感器数据表

    具有脉冲计数接口的 LMT01 0.5°C 精度双引脚数字输出温度传感器数据表

    电子发烧友网站提供《具有脉冲计数接口的 LMT01 0.5°C 精度双引脚数字输出温度传感器数据表.pdf》资料免费下载
    发表于 08-13 09:19 0次下载
    具有<b class='flag-5'>脉冲计数</b>接口的 LMT01 0.5°C 精度双引脚数字<b class='flag-5'>输出</b>温度传感器数据表

    esp8266的脉冲计数问题求解

    我正在编写 nodemcu esp8266 的代码,它涉及脉冲计数、存储和返回 nodemcu,使用 raspberry pi 作为服务器。为此,我使用了 3 个 nodemcu esp8266
    发表于 07-10 06:49

    脉冲计数器的工作原理和基本结构

    脉冲计数器,作为电子测量和自动化控制领域中一种重要的设备,其工作原理和基本结构对于理解其功能和性能至关重要。脉冲计数器主要用于统计和测量脉冲信号的个数,具有高精度、高速度、高可靠性等特点,广泛应用
    的头像 发表于 05-15 17:14 2745次阅读

    脉冲计数器的分类和作用

    在电子技术和数字系统中,脉冲计数器作为一种基本而重要的逻辑器件,其应用广泛且功能多样。脉冲计数器不仅能够实现基本的计数操作,还具备多种输出
    的头像 发表于 05-15 17:11 1414次阅读

    简单认识脉冲计数

    在数字电路和电子测量领域中,脉冲计数器作为一种基本而重要的工具,其应用十分广泛。脉冲计数器,也被称为脉冲频率计或脉冲数计,主要用于统计和测量输入脉冲
    的头像 发表于 05-15 17:08 2026次阅读

    在STM8L中如何使用定时器的寄存器对外部脉冲进行计数

    我现在使用的是STM8L152单片机,想利用tim2 或则tim3 进行外部脉冲计数(1个脉冲信号输入后,tim2或tim3定时器的数值寄存器值自动+1或者-1)。 请高手不吝赐教,谢谢。
    发表于 05-11 06:05

    stm8外部中断用来脉冲计数,外部中断开始计数,LED灯就不正常了的原因?

    外部中断用来脉冲计数。不计数时,定时器正常,每秒翻转一次LED灯。外部中断开始计数,LED灯就不正常了,有时两三秒,有时五六秒才翻转。一开始以为是优先级,可是配置软件优先级后还是一样啊。。。大神们指点一下
    发表于 04-22 07:29