PWM(Pulse-Width Modulation)在電源管理、電機控制等場所的應用非常廣泛。英創公司的嵌入式工控主板也充分地考慮到了這樣的應用需求,所以在EM9000、EM9360、EM9260、EM9160及最新的EM9170中,均設計了一路或多路PWM信號輸出。如需要更多的PWM通道,則可以使用ETA754模塊再擴展出兩路PWM信號輸出。ETA754是基于精簡ISA總線的擴展模塊,可與英創公司的所有主板產品配合使用,ETA754擴展模塊的核心是一片經典的82C54三通道可編程定時器芯片。
為了說明如何使用ETA754,以EM9170作為應用平臺進行舉例說明。由于82C54的特點,要使其輸出PWM信號,需要使用兩路計數器配合使用,即計數器0通道的輸出連接到計數器1和計數器2的GATE信號上(相互之間可以互換)。所以一片82C54最多可以輸出兩路PWM信號,它的輸出信號連接圖如下所示:
基于上圖的應用,存在幾個特點需要注意:
1、兩路PWM信號的輸出頻率是一樣的
2、最低輸出頻率為153HZ
3、要使PWM信號的占空比分辨率達到1%,最高輸出頻率為100KHz
4、輸出頻率超過100KHz后,占空比分辨率為:(f/100KHz)%
基于EM9170測試時,一共只有三個函數,即打開、關閉、設置輸出。函數說明如下:
/*
功能:ETA754初始化
輸入參數:
無輸入參數
返回值:
操作成功:
操作失敗:-1
*/
int ETA754Init();
/*
功能:關閉ETA754
輸入參數:
Channel:要設置工作模式的計數器通道,限Channel _1\ Channel _2有效。
返回值:
操作成功:
操作失敗:-1
*/
int ETA754Close( unsigned char Channel );
/*
功能:在ETA754的計數器通道和通道上產生PWM信號輸出,以下參數是計數器輸入時鐘頻率為MHz
輸入參數:
Channel:要設置的PWM通道,限Channel _1\ Channel _2有效。
PWMFrequency:輸出的PWM信號頻率,最小HZ,最高MHz
PWMDuty:輸出的PWM信號的占空比,-99有效(在Hz-100KHz之間,占空比分辨率能達到%)
如輸出頻率超過KHz,則占空比的分辨率只能做到(x/100000)/100。
返回值:
操作成功:當前輸出的頻率
操作失敗:-1
*/
int ETA754_PWM( unsigned char Channel, int PWMFrequency , int PWMDuty );
下面的例子就是從PWM1通道和PWM2通道輸出相同頻率、不同占空的代碼:
ETA754Init(); // 初始化ETA754及所占用的ISA總線資源
ETA754_PWM( Channel_1 , 100000 , 50 ); // 從PWM1口輸出100KHz、50%占空比的信號
ETA754Close(Channel_1); // 禁止PWM1口輸出信號,這時為低電平
ETA754_PWM( Channel_2 , 100000 , 20 ); // 從PWM1口輸出100KHz、20%占空比的信號
ETA754Close(Channel_2); // 禁止PWM2口輸出信號,這時為低電平
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35533
發布評論請先 登錄
相關推薦
評論