0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創(chuàng)信息技術ESM335x輸出脈沖計數(shù)介紹

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2020-02-04 10:30 ? 次閱讀

ESM335x的PWM1和PWM2除了可用于產生標準的PWM信號外還支持輸出脈沖計數(shù)功能,輸出脈沖計數(shù)的工作原理是驅動程序每輸出一個PWM波就產生一個中斷并計數(shù),當計數(shù)達到用戶設定的脈沖個數(shù)后,驅動程序自動停止PWM輸出,由于系統(tǒng)響應中斷有一定的延時,所以驅動程序對輸出脈沖的最高頻率限制在5KHz。

應用程序通過打開PWM設備("PWM1:"或"PWM2:")使用脈沖計數(shù)功能,下面是示例代碼:

#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;//頻率參數(shù)為0,停止PWM輸出

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

pwm_info.dwNum = 3;//PWM脈沖計數(shù)輸出模式

pwm_info.dwFreq = 5000;//頻率范圍1Hz~5KHz

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

pwm_info.dwPol = 1;//極性,無輸出時IO保持為高電平

//脈沖輸出完成或超時后WriteFile函數(shù)返回, dwBytes返回實際輸出的脈沖個數(shù)

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

CloseHandle( hPWM );

return 0;

}

上面代碼中的pwm_info用于設置PWM參數(shù),其定義如下:

typedef struct

{

/*PWM頻率,單位:Hz,PWM模式輸出頻率范圍1Hz~50MHz,脈沖計數(shù)模式頻率范圍1Hz~5KHz

= 0: 停止PWM輸出*/

DWORDdwFreq;

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

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

DWORDdwNum;/*輸出脈沖個數(shù), =0:連續(xù)的PWM輸出*/

} PWM_INFO, *PPWM_INFO;

當參數(shù)設置dwFreq=5000, dwDuty=500, dwPol=1, dwNum=3時,輸出的波形如下:

只有當PWM脈沖信號輸出時,其對應的IO才會被驅動為高電平或低電平,其余時間PWM引腳為高阻輸入狀態(tài),由于ESM335x主板上GPIO上拉電阻的作用,在沒有脈沖輸出時,PWM引腳為上拉輸入狀態(tài)(高電平)。如果實際使用,時希望PWM平時保持為低電平,則需要在PWM信號上增加反向器,比如增加一級非門。

在PWM引腳上增加1K歐的下拉電阻,同時將設置dwPol=0,也可以保證PWM引腳在沒有輸出時保持為低電平,下圖是在PWM引腳上增加了下拉電阻,同時參數(shù)設置為dwFreq=5000, dwDuty=500, dwPol=0, dwNum=3時輸出的波形:

利用反向電路或增加下拉電阻,這兩種方法都可以保證PWM信號在ESM335x上電啟動過程中和沒有脈沖輸出時保持為低電平。

PWM脈沖通常用來控制步進電機,脈沖頻率決定電機轉速,脈沖個數(shù)控制電機的角位移。步進電機在啟動過程中,需要控制脈沖從一個較低的頻率逐漸增加到電機正常工作時的頻率,電機在停止時也有一個相應的減速過程。在使用ESM335x的PWM驅動步進電機時,可以多次調用WriteFile函數(shù),然后每次修改PWM脈沖頻率來實現(xiàn)步進電機的加速和減速過程。需要注意的是在即便應用程序連續(xù)不斷的調用WriteFile函數(shù),在每次調用之間都會有幾十到幾百微秒不等的延時。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35548
收藏 人收藏

    評論

    相關推薦

    芯盛智能榮獲2024年信息技術應用創(chuàng)新工作委員會卓越貢獻成員單位

    日前,中國電子工業(yè)標準化技術協(xié)會信息技術應用創(chuàng)新工作委員會(以下簡稱 “信創(chuàng)工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對在信創(chuàng)工作中作出突出貢獻的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?140次閱讀

    飛騰助力首屆教育信息技術應用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術協(xié)會信創(chuàng)工委會支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?190次閱讀

    AM335x和AMIC110 Sitara?處理器技術參考手冊

    電子發(fā)燒友網站提供《AM335x和AMIC110 Sitara?處理器技術參考手冊.pdf》資料免費下載
    發(fā)表于 11-14 15:07 ?1次下載
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara?處理器<b class='flag-5'>技術</b>參考手冊

    中科創(chuàng)達榮獲2024年軟件和信息技術服務優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業(yè)”以及“2024年軟件和信息技術服務優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?545次閱讀

    AM335x功耗估算工具

    電子發(fā)燒友網站提供《AM335x功耗估算工具.pdf》資料免費下載
    發(fā)表于 10-12 11:46 ?0次下載
    AM<b class='flag-5'>335x</b>功耗估算工具

    AM335x硬件設計指南

    電子發(fā)燒友網站提供《AM335x硬件設計指南.pdf》資料免費下載
    發(fā)表于 09-19 11:05 ?0次下載
    AM<b class='flag-5'>335x</b>硬件設計指南

    具有脈沖計數(shù)接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據表

    電子發(fā)燒友網站提供《具有脈沖計數(shù)接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據表.pdf》資料免費下載
    發(fā)表于 08-13 09:20 ?0次下載
    具有<b class='flag-5'>脈沖計數(shù)</b>接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字<b class='flag-5'>輸出</b>溫度傳感器數(shù)據表

    具有脈沖計數(shù)接口的 LMT01 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據表

    電子發(fā)燒友網站提供《具有脈沖計數(shù)接口的 LMT01 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據表.pdf》資料免費下載
    發(fā)表于 08-13 09:19 ?0次下載
    具有<b class='flag-5'>脈沖計數(shù)</b>接口的 LMT01 0.5°C 精度雙引腳數(shù)字<b class='flag-5'>輸出</b>溫度傳感器數(shù)據表

    esp8266的脈沖計數(shù)問題求解

    我正在編寫 nodemcu esp8266 的代碼,它涉及脈沖計數(shù)、存儲和返回 nodemcu,使用 raspberry pi 作為服務器。為此,我使用了 3 個 nodemcu esp8266
    發(fā)表于 07-10 06:49

    脈沖計數(shù)器的工作原理和基本結構

    脈沖計數(shù)器,作為電子測量和自動化控制領域中一種重要的設備,其工作原理和基本結構對于理解其功能和性能至關重要。脈沖計數(shù)器主要用于統(tǒng)計和測量脈沖信號的個數(shù),具有高精度、高速度、高可靠性等特點,廣泛應用
    的頭像 發(fā)表于 05-15 17:14 ?2640次閱讀

    脈沖計數(shù)器的分類和作用

    在電子技術和數(shù)字系統(tǒng)中,脈沖計數(shù)器作為一種基本而重要的邏輯器件,其應用廣泛且功能多樣。脈沖計數(shù)器不僅能夠實現(xiàn)基本的計數(shù)操作,還具備多種輸出
    的頭像 發(fā)表于 05-15 17:11 ?1346次閱讀

    簡單認識脈沖計數(shù)

    在數(shù)字電路和電子測量領域中,脈沖計數(shù)器作為一種基本而重要的工具,其應用十分廣泛。脈沖計數(shù)器,也被稱為脈沖頻率計或脈沖數(shù)計,主要用于統(tǒng)計和測量輸入脈沖
    的頭像 發(fā)表于 05-15 17:08 ?1950次閱讀

    在STM8L中如何使用定時器的寄存器對外部脈沖進行計數(shù)?

    我現(xiàn)在使用的是STM8L152單片機,想利用tim2 或則tim3 進行外部脈沖計數(shù)(1個脈沖信號輸入后,tim2或tim3定時器的數(shù)值寄存器值自動+1或者-1)。 請高手不吝賜教,謝謝。
    發(fā)表于 05-11 06:05

    stm8外部中斷用來脈沖計數(shù),外部中斷開始計數(shù),LED燈就不正常了的原因?

    外部中斷用來脈沖計數(shù)。不計數(shù)時,定時器正常,每秒翻轉一次LED燈。外部中斷開始計數(shù),LED燈就不正常了,有時兩三秒,有時五六秒才翻轉。一開始以為是優(yōu)先級,可是配置軟件優(yōu)先級后還是一樣啊。。。大神們指點一下
    發(fā)表于 04-22 07:29

    電路中如何實現(xiàn)脈沖計數(shù)功能和相位檢測

    在進行DA轉換,頻率脈沖電壓轉換,pwm轉變成對應的模擬量,電路是怎么實現(xiàn)對固定要求長度或固定頻率脈沖個數(shù)進行計數(shù)進而轉換成模擬量的功能? 在進行變頻器有源逆變pwm回饋時,如何檢測電網電壓的相位,僅僅是用大阻值電阻降壓分辨其三
    發(fā)表于 01-31 19:55