關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 利用單片機定時器實現信號采樣和PWM控制

        利用單片機定時器實現信號采樣和PWM控制

        作者: 時間:2009-11-03 來源:網絡 收藏
        方式廣泛應用于各種系統中,但對脈沖寬度的調節一般采用硬件來。如使用器或在系統中增加電路[1]等,則成本高、響應速度慢,而且PWM控制器與系統之間存在兼容問題。另外,控制系統中的通常是由A/D來完成,因此檢測精度要求較高時,調理電路復雜,而且因A/D的位數高,從而使設計的系統成本居高不下。

          本文以應用于溫度控制系統為例,介紹Motorola公司生產的新型MSP430F413內的Time_A設計可以用時間量進行溫度以及PWM調節的方法。為了可在使用少量外圍電路的情況下控制系統的高精度測量和控制,一方面用時間量,在省去1片A/D的情況下得到12位的高精度;另一方面在定時中斷內完全用軟件實現PWM調節,以易于進行數據的通信和顯示。該系統在中斷內可以解決波形產生的實時在線計算和計算精度問題,可精確、實時地計算設定頻率下的脈沖寬度。

        本文引用地址:http://www.104case.com/article/163506.htm

        1MSP430F413及

          MSP430系列的F413在超低功耗和功能集成上都有一定的特色,可大大減小外圍電路的復雜性,它的實時處理能力及各種外圍模塊使其可應用在多個低功耗領域[2]。MSP430F413中通用16位Timer_A有如下主要功能模塊。

          (1)一個可連續遞增計數至預定值并返回0的計數器。

          (2)軟件可選擇時鐘源。

          (3)5個捕獲/比較寄存器,每個有獨立的捕獲事件。

          (4)5個輸出模塊,支持脈寬調制的需要。

          定時器控制寄存器TACTL的各位可控制Timer_A的配置,并定義16位定時器的基本操作,可選擇原始頻率或分頻后的輸入時鐘源及4種工作模式。另外還有清除功能和溢出中斷控制位。5個捕獲/比較寄存器CCRx的操作相同,它們通過各自的控制寄存器CCTLx進行配置。

        2時間量采樣及PWM控制的實現原理

          以應用于溫度控制系統為例,介紹用定時器實現采樣和PWM控制的方法。該溫度控制系統包括單片機、溫度測量電路、負載驅動電路及電源控制、低電壓檢測和顯示電路等其他外圍部分。

          單片機MSP430F413中用于測量和控制溫度的主要I/O口有:

          P1.0:輸出50Hz方波,用于產生三角波。

          P1.2:驅動溫度控制執行元件,2kHz方波PWM輸出。

          P2.0:脈寬捕捉。

        2.1 單片機端口的中斷設置

          溫度控制系統的50Hz方波輸出、PWM輸出和輸入捕捉都是由定時中斷來實現。這3個中斷分別由P0、P1和P2口的外圍模塊引起,屬于外部可屏蔽中斷。初始化時,對這3個I/O口進行中斷設置,并對Time_A控制寄存器TACTL設置,包括輸入2分頻、選用輔助時鐘ACLK等。當定義完捕獲/比較寄存器后,重新賦值TACTL,啟動定時器,開始連續遞增計數。

        2.2 脈寬捕捉實現溫度值的采樣

          溫度測量電路將溫度值轉換為電壓值,同時單片機產生的50Hz方波經電容充放電電路變換得到同頻率的三角波,其電壓值切割三角波,從而將溫度值轉換為相應寬度的脈沖送入單片機。波形變化如圖1所示。

          通過設置CCTLx中的模式位,可將對應的捕獲/比較寄存器CCRx設定為捕獲模式,用于時間事件的精確定位。如果在選定的輸入引腳上發生選定脈沖的觸發沿,則定時器計數的值將被復制到CCRx中。根據這一原理,選定P2.0為輸入引腳,設置CCTL2為捕獲模式,所測溫度值由模擬量經測量電路轉換為脈沖后,P2.0捕捉脈沖下降沿,進入中斷T2,得到與溫度值一致的單位時間內的脈沖數,存入CCR2作進一步處理。

          這樣,系統就在不使用A/D的情況下完成了模數轉換。因為單片機的時鐘精確度高,而且時間量是一個相對精度極高的量,但本系統中用時間量進行溫度采樣可獲得12位的高精度,同時采用50Hz脈沖,可以大大消除工頻干擾。這些都為進行精確的溫度控制提供了必要的條件。

        pwm相關文章:pwm原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 监利县| 宁武县| 虹口区| 花莲市| 太湖县| 曲水县| 鄂托克旗| 临西县| 晋江市| 蒲江县| 太仓市| 上饶市| 绥德县| 同心县| 阜城县| 广灵县| 同德县| 隆德县| 梁平县| 秭归县| 建始县| 封丘县| 伊春市| 高碑店市| 堆龙德庆县| 巴彦县| 宝鸡市| 保康县| 忻州市| 镇康县| 大丰市| 岑巩县| 禹州市| 白水县| 德惠市| 建瓯市| 海南省| 大安市| 武宁县| 宁明县| 大邑县|