英創(chuàng)公司新近推出的嵌入式工控主板EM9160是一款專門面向工業(yè)智能設(shè)備的高性價比ARM9+WinCE平臺,該工控主板不僅配置了常規(guī)的標(biāo)準(zhǔn)通訊接口,如以太、串口、USB,而且還配置了當(dāng)前智能控制設(shè)備中常用的SPI、I2C以及脈寬調(diào)制輸出PWM。本文主要介紹EM9160的PWM在性能及使用上的特色,以幫助客戶能快速完成自己的產(chǎn)品開發(fā)。
EM9160共提供3路PWM脈寬調(diào)制輸出通道,其基本性能包括:
1、作為對步進(jìn)電機(jī)等對象的控制脈沖,可以按客戶要求以一定的頻率、占空比,輸出設(shè)定數(shù)目的脈沖,其最高脈沖頻率為每秒600個。
2、支持3路脈沖的同步輸出,每路可獨(dú)立設(shè)置脈沖頻率、占空比、輸出的脈沖數(shù)目。
3、支持連續(xù)的可調(diào)占空比的周期性脈沖波形輸出,作為DA輸出、LCD亮度控制等應(yīng)用。最高輸出頻率1MHz。
在硬件上,3個PWM通道的引出管腳分別位于EM9160 CN2的33# 、35#及36#,它們與EM9160的SPI接口復(fù)用管腳,具體對應(yīng)關(guān)系如下:
EM9160_CN2管腳 |
SPI接口 |
PWM輸出 |
33# |
SPI_DIN |
PWM通道1 |
34# |
SPI_DOUT | |
35# |
SPI_CLK |
PWM通道2 |
36# |
SPI_CS# |
PWM通道3 |
上電啟動時所有管腳處于高阻輸入狀態(tài)。對應(yīng)用程序,并不需要專用的管腳配置函數(shù)來選擇SPI或PWM,而只需直接打開“PWM1:”文件,相應(yīng)管腳將自動切換到PWM狀態(tài),PWM各通道初始狀態(tài)為低電平。
注意:(1)EM9160嵌入式工控主板的PWM脈沖輸出個數(shù)是通過各通道內(nèi)部硬件中斷來控制實(shí)現(xiàn)的,因此輸出脈沖的頻率受到一定的限制,而作為連續(xù)脈沖波形輸出時就沒有這個限制。(2)在上電初始狀態(tài)PWM各通道處于高阻輸出狀態(tài),電平上呈現(xiàn)出高電平,這與PWM脈寬調(diào)制輸出平時為低電平不一致,可通過對各個通道分別接51K上拉電阻和5.1K下拉電阻的方法來解決。
EM9160內(nèi)部已裝載了符合WinCE標(biāo)準(zhǔn)的PWM流式驅(qū)動程序(stream driver),應(yīng)用程序只需要使用與通用串口相似的方法,打開特定文件名“PWM1:”的文件,獲得文件句柄,就可通過WinCE的系統(tǒng)API函數(shù)DeviceIoControl(…)實(shí)現(xiàn)對3個PWM通道的各種操作了,當(dāng)使用完畢時,直接關(guān)閉文件即可。為了方便不熟悉DeviceIoControl函數(shù)的客戶,EM9160的SDK還在其基礎(chǔ)上封裝了4個更簡單的API函數(shù),應(yīng)用程序只需包含頭文件“pwm_api.h”,在打開文件后,直接調(diào)用這幾個API函數(shù)就可實(shí)現(xiàn)對PWM各個通道的控制輸出。
EM9160工控主板SDK關(guān)于PWM的API函數(shù)定義如下:
// 定義PWM參數(shù)結(jié)構(gòu)
typedef struct
{
BOOL bSync; // 是否選擇PWM三相同步輸出,TRUE為同步輸出
DWORD dwFreq[3]; // 分別定義PWM三相輸出脈沖信號的頻率,輸出的頻率范圍為:1 - 600 (Hz)
DWORD dwDuty[3]; // 分別定義PWM三相輸出脈沖信號的占空比,其范圍為:1 - 99 (%)
DWORD dwNbPulse[3]; // 分別定義PWM三相輸出脈沖信號的數(shù)目,》 0: 表示輸出脈沖的數(shù)目,= 0: 連續(xù)波形輸出
} PWM_STATE;
// 功能描述:設(shè)置PWM輸出脈沖信號的參數(shù):頻率、占空比、脈沖數(shù)目等。
// 輸入?yún)?shù) HANDLE hDevice: 運(yùn)行CreateFile( _T(‘PWM1:’),。..。)函數(shù)返回的有效句柄
// PWM_STATE pPWMState: PWM 輸出參數(shù)
// 返回值 = TRUE: PWM 輸出參數(shù)設(shè)置成功。
// = FALSE: PWM 輸出參數(shù)設(shè)置失敗。
BOOL SetupPWM( HANDLE hDevice, PWM_STATE *pPWMState );
// 功能描述:啟動PWM 脈沖信號輸出。
// 輸入?yún)?shù) HANDLE hDevice: 運(yùn)行CreateFile( _T(‘PWM1:’),。..。)函數(shù)返回的有效句柄
// 返回值 = TRUE: 操作成功。
// = FALSE: 操作失敗。
BOOL StartPWM( HANDLE hDevice );
// 功能描述:終止結(jié)束PWM脈沖信號輸出。
// 輸入?yún)?shù) HANDLE hDevice: 運(yùn)行CreateFile( _T(‘PWM1:’),。..。)函數(shù)返回的有效句柄
// 返回值 = TRUE: 操作成功。
// = FALSE: 操作失敗。
BOOL StopPWM( HANDLE hDevice );
// 功能描述:獲取PWM 脈沖信號輸出自動結(jié)束的事件,可通過WaitForSingleObject(。.)來響應(yīng)該事件。
// 輸入?yún)?shù) HANDLE hDevice: 運(yùn)行CreateFile( _T(‘PWM1:’),。..。)函數(shù)返回的有效句柄
// 返回值 = NULL: 操作失敗。
// != NULL: PWM 脈沖信號輸出自動結(jié)束的事件。
HANDLE GetPWMEvent( HANDLE hDevice );
有關(guān)PWM的API函數(shù)的具體使用方法可參考EM9160資料光盤中的范例程序。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35639
發(fā)布評論請先 登錄
相關(guān)推薦
嵌入式工控主板EM9160的PWM功能
英創(chuàng)信息技術(shù)嵌入式主板EM9160精簡ISA總線硬件中斷的使用方法
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b><b class='flag-5'>EM9160</b>精簡ISA總線硬件中斷的<b class='flag-5'>使用方法</b>](https://file.elecfans.com/web1/M00/AC/00/pIYBAF27jViAdEr7AACYefH35f8460.png)
英創(chuàng)信息技術(shù)工控主板EM9160L的低功耗應(yīng)用介紹
英創(chuàng)信息技術(shù)工控主板EM9160對紅外通訊用途介紹
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM9160</b>對紅外通訊用途介紹](https://file.elecfans.com/web1/M00/A8/30/pIYBAF2KEmeAbhWnAAArwSCS8EM127.jpg)
英創(chuàng)信息技術(shù)工業(yè)主板EM9160介紹
英創(chuàng)信息技術(shù)嵌入式Linux工控板EM9160介紹
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>工控</b>板<b class='flag-5'>EM9160</b>介紹](https://file.elecfans.com/web1/M00/B3/2A/o4YBAF4dLg6APjWiAADIc_PIHEc258.png)
英創(chuàng)信息技術(shù)嵌入式Linux工控板EM9160介紹
英創(chuàng)信息技術(shù)工控主板EM9160介紹
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM9160</b>介紹](https://file.elecfans.com/web1/M00/B3/82/pIYBAF4dMoSATTc0AACWceAx29U551.png)
英創(chuàng)信息技術(shù)主板EM9160硬件介紹
英創(chuàng)信息技術(shù)ARM9工控主板的ETA754 PWM模塊應(yīng)用
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b>ARM9<b class='flag-5'>工控</b><b class='flag-5'>主板</b>的ETA754 <b class='flag-5'>PWM</b>模塊應(yīng)用](https://file.elecfans.com/web1/M00/B3/9B/pIYBAF4ehXeAEQ6RAAFQkR_HneA829.png)
英創(chuàng)信息技術(shù)主板EM9160測頻功能的使用介紹
英創(chuàng)信息技術(shù)主板EM9280的主要技術(shù)指標(biāo)簡介
英創(chuàng)信息技術(shù)嵌入式主板支持精確延時操作之二介紹
![<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>支持精確延時操作之二介紹](https://file.elecfans.com/web1/M00/B3/BC/pIYBAF4hHs6AFfrqAADK5alNSgo104.png)
評論