注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- 工业自动化网络论坛 -- 工业自动化网络论坛(非专题) -- 协议标准

中国工控网搜索:

 登陆:密码:  注册  密码

搜索:

工业自动化网络论坛(非专题)分类  

全部论题

协议标准

硬件配置

发表人:emtronix 发表时间:2010/11/11 15:47:00  

 

 本栏论题: 嵌入式工控主板EM9160的PWM功能使用方法  [1030]

    英创公司新近推出的嵌入式工控主板EM9160是一款专门面向工业智能设备的高性价比ARM9+WinCE平台,该工控主板不仅配置了常规的标准通讯接口,如以太、串口、USB,而且还配置了当前智能控制设备中常用的SPI、I2C以及脉宽调制输出PWM。本文主要介绍EM9160的PWM在性能及使用上的特色,以帮助客户能快速完成自己的产品开发。
   
    EM9160共提供3路PWM脉宽调制输出通道,其基本性能包括:
   
    1. 作为对步进电机等对象的控制脉冲,可以按客户要求以一定的频率、占空比,输出设定数目的脉冲,其最高脉冲频率为每秒600个。
   
    2. 支持3路脉冲的同步输出,每路可独立设置脉冲频率、占空比、输出的脉冲数目。
   
    3. 支持连续的可调占空比的周期性脉冲波形输出,作为DA输出、LCD亮度控制等应用。最高输出频率1MHz。
   
    在硬件上,3个PWM通道的引出管脚分别位于EM9160 CN2的33# 、35#及36#,它们与EM9160的SPI接口复用管脚,具体对应关系如下:
   
   
    EM9160_CN2管脚
   
    SPI接口
   
    PWM输出
   
   
    33#
   
    SPI_DIN
   
    PWM通道1
   
   
    34#
   
    SPI_DOUT
   
   
   
   
    35#
   
    SPI_CLK
   
    PWM通道2
   
   
    36#
   
    SPI_CS#
   
    PWM通道3
   
   
   
    上电启动时所有管脚处于高阻输入状态。对应用程序,并不需要专用的管脚配置函数来选择SPI或PWM,而只需直接打开“PWM1:”文件,相应管脚将自动切换到PWM状态,PWM各通道初始状态为低电平。
   
    注意:(1)EM9160嵌入式工控主板的PWM脉冲输出个数是通过各通道内部硬件中断来控制实现的,因此输出脉冲的频率受到一定的限制,而作为连续脉冲波形输出时就没有这个限制。(2)在上电初始状态PWM各通道处于高阻输出状态,电平上呈现出高电平,这与PWM脉宽调制输出平时为低电平不一致,可通过对各个通道分别接51K上拉电阻和5.1K下拉电阻的方法来解决。
   
    EM9160内部已装载了符合WinCE标准的PWM流式驱动程序(stream driver),应用程序只需要使用与通用串口相似的方法,打开特定文件名“PWM1:”的文件,获得文件句柄,就可通过WinCE的系统API函数DeviceIoControl(…)实现对3个PWM通道的各种操作了,当使用完毕时,直接关闭文件即可。为了方便不熟悉DeviceIoControl函数的客户,EM9160的SDK还在其基础上封装了4个更简单的API函数,应用程序只需包含头文件“pwm_api.h”,在打开文件后,直接调用这几个API函数就可实现对PWM各个通道的控制输出。
   
    EM9160工控主板SDK关于PWM的API函数定义如下:
   
    // 定义PWM参数结构
   
    typedef struct
   
    {
   
    BOOL bSync; // 是否选择PWM三相同步输出,TRUE为同步输出
   
    DWORD dwFreq[3]; // 分别定义PWM三相输出脉冲信号的频率,输出的频率范围为:1 - 600 (Hz)
   
    DWORD dwDuty[3]; // 分别定义PWM三相输出脉冲信号的占空比,其范围为:1 - 99 (%)
   
    DWORD dwNbPulse[3]; // 分别定义PWM三相输出脉冲信号的数目,> 0: 表示输出脉冲的数目,
   
    // = 0: 连续波形输出
   
    } PWM_STATE;
   
    // 功能描述:设置PWM输出脉冲信号的参数:频率、占空比、脉冲数目等。
   
    // 输入参数 HANDLE hDevice: 运行CreateFile( _T('PWM1:'),....)函数返回的有效句柄
   
    // PWM_STATE pPWMState: PWM 输出参数
   
    // 返回值 = TRUE: PWM 输出参数设置成功。
   
    // = FALSE: PWM 输出参数设置失败。
   
    BOOL SetupPWM( HANDLE hDevice, PWM_STATE *pPWMState );
   
    // 功能描述:启动PWM 脉冲信号输出。
   
    // 输入参数 HANDLE hDevice: 运行CreateFile( _T('PWM1:'),....)函数返回的有效句柄
   
    // 返回值 = TRUE: 操作成功。
   
    // = FALSE: 操作失败。
   
    BOOL StartPWM( HANDLE hDevice );
   
    // 功能描述:终止结束PWM脉冲信号输出。
   
    // 输入参数 HANDLE hDevice: 运行CreateFile( _T('PWM1:'),....)函数返回的有效句柄
   
    // 返回值 = TRUE: 操作成功。
   
    // = FALSE: 操作失败。
   
    BOOL StopPWM( HANDLE hDevice );
   
    // 功能描述:获取PWM 脉冲信号输出自动结束的事件,可通过WaitForSingleObject(..)来响应该事件。
   
    // 输入参数 HANDLE hDevice: 运行CreateFile( _T('PWM1:'),....)函数返回的有效句柄
   
    // 返回值 = NULL: 操作失败。
   
    // != NULL: PWM 脉冲信号输出自动结束的事件。
   
    HANDLE GetPWMEvent( HANDLE hDevice );
   
    有关PWM的API函数的具体使用方法可参考EM9160资料光盘中的范例程序。
   
   
   
   
   

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳