為微控制器增加PWM/模擬通道的方法
微控制器是將微型計算機的主要部分集成在一個(gè)芯片上的單芯片微型計算機。在片上PWM(脈沖寬度調制)資源方面,低成本的8位單片微控制器是很吝嗇的。設計人員在采用PWM資源時(shí),經(jīng)常被迫要犧牲一個(gè)捕捉/比較通道或定時(shí)器通道,因為PWM通道要共用相同的片上資源。很多基于微控制器的獨立電氣設備都不會(huì )使用同步串行端口。因此,可以用微控制器的波特率發(fā)生器和并/串轉換器部分來(lái)生成位模式,構成一個(gè)256位的PWM形式。然后用RC濾波器過(guò)濾這個(gè)PWM輸出,提取出一個(gè)模擬信號。同步通信沒(méi)有異步通信的起始位和停止位,因此位模式可以產(chǎn)生出長(cháng)周期的高電平或低電平。
本文引用地址:http://dyxdggzs.com/article/187272.htm

圖1,可以用片上未用的同步串行端口產(chǎn)生PWM信號,并將其轉換為一個(gè)慢速運動(dòng)的模擬信號。
采用這種概念,可以用一個(gè)十進(jìn)制數165產(chǎn)生原數據(圖2)。一個(gè)PWM轉換周期包含生成的256位,即32字節。“on”位的數量對應于轉換為PWM的原數據值。因此,對于165位的原數據,有165位個(gè)on,91位個(gè)off。要產(chǎn)生一個(gè)165位的on周期,前20個(gè)字節(即160位)傳送為0×ff個(gè)on態(tài)字節。訣竅在于第21個(gè)字節(或過(guò)渡字節)的組成。該字節的一些LSB(最低有效位)為1,其余為0,構成所需要的on周期長(cháng)度。在這一例子中,電路需要5個(gè)以上的on位:160+5=165。因此,過(guò)渡字節的形式應為0001111b(字節=0×1f)。

圖2,采用這種概念,可以用十進(jìn)制值165產(chǎn)生原數據。
圖3以流程圖的形式表示這個(gè)過(guò)程。通過(guò)選擇晶體、PLL(鎖相環(huán))和波特率,可以根據自己的應用修改PWM頻率。用簡(jiǎn)單的RC濾波器就可以將PWM轉換為一個(gè)慢速運動(dòng)的模擬值。雖然本方法描述的是一個(gè)8位PWM,但也可以修改每個(gè)PWM周期的總位數,從而增加或降低分辨率。相應地增加或減少了轉換時(shí)間。

圖3,通過(guò)選擇晶體、PLL和波特率,可以針對自己應用修改PWM頻率。
代碼采用的是Microchip公司的PIC18F4525,它用一只4MHz晶體,以及用于同步串行通信的10kHz波特率,獲得10000/256=39.31Hz的PWM頻率??梢杂靡粋€(gè)0.1s的RC濾波器對其作濾波,對慢速運動(dòng)的模擬信號來(lái)說(shuō)這已足夠,如運動(dòng)控制應用的速度設置點(diǎn)。采用20MHz晶體時(shí),可以實(shí)現大于1.5MHz的同步串行波特率,以及數kHz的PWM頻率。
pwm相關(guān)文章:pwm原理
評論