由於數位電源控制、LED燈調光或警報器響鈴等…都需要一個頻率控制器來調整電壓、亮度或聲音,當頻率的解析度越高,越接近線性,就可以使產品的品質及可控制範圍提高。
配備於八位元(8-bits)單晶片中的脈衝寬度調變(PWM, Pulse Width Modulation)模組,脈衝寬度(Duty)調整範圍常見是8-bits為主,換句話說,最大Duty解析度將被限制在256階。舉例來說,當在LED亮度調整時,因為光線跟電流比為非線性的,根據規格看起來有256階可以調整,但在低照度時,每調一階人眼感受到的亮度變化度比高亮度時變化劇烈了。
因此Microchip設計了數控震盪器(NCO)模組於單晶片(MCU)中,NCO模組配備了16或20-bits的暫存器來調整脈寬,讓您可以設計一個高解析度的PWM,最大可調範圍由原先的256階升級到65,536 或 1,048,576(萬分之一解析度)階,在程式運行過程中,MCU可以根據設計者的規劃,調整出接近線性的頻率或脈寬。
NCO模組內建於PIC10、PIC12與PIC16系列產品中。其架構如圖一:
其主要特性為:
16位元的數位頻率控制器*1 →最大輸出頻率500kHz
20位元的數位頻率控制器*1 →最大輸出頻率32MHz
增強頻率解析度
多種輸入頻率來源
調整範圍為0.0001%階,達成真實線性頻率控制(根據輸入頻率)
硬體可獨立運作,也可於睡眠(SLEEP)模式下工作*2
兩種輸出模式
固定50%脈寬輸出(FDC, Fixed Duty Cycle Mode)*3
脈寬頻率調變(PFM, Pulse Frequency Modulation)*4
當成通用型20-bit的計時或計數器
根據以上特性加上一些內建於MCU中的周邊硬體,就可以完成多種實用的應用範例電路,例如:
1.數位電源(Digital SMPS-Buck Converter using the PIC12F1501 NCO peripheral)架構如圖(二)
根據圖示顯示,您可以看到只需一個8隻腳的8-bit MCU,既可完成一個數位降壓電路,也因為單晶片中內建多種硬體介面,所以可以大大的減少程式介入,由設計者將內部硬體依據需求連接後硬體將自行運轉,但軟體又可適時地介入調整功能,例如修改或停止輸出電壓,達到增加整體系統的彈性並減少備料數。
2.高解析度LED調光(Combining CLC and NCO to implement HRPWM) 架構如圖(三)
此架構的特色在於LED的光源為非線性,常常在低照度時,所需的PWM解析度相對需要更高,透過PWM加上NCO這兩個模組提供了更高的解析度,此範例中最小調整單位為15ps,因此解決了LED在低照度時亮度調整線性度不佳的問題,可以在低照度中提供微調的效果。
3.曼徹斯特解碼(Manchester Decoder Using the CLC and NCO),架構如圖(四)
此架構提供讀者一種不同的思考,NCO配合單晶片內建的邏輯閘,達到一個曼徹斯特波形解碼,硬體解碼的方法,大量減少軟體用輪循解碼的時間,減少單晶片耗能。
以上為部分運用範例,更多的範例請參考: http://www.microchip.com/NCO,並與我們經驗豐富的設計團隊聯繫。
綜合上述,可以了解到如果需要在一個高解析度的PWM,除了選一個更快的單晶片外,也可用小包裝的單晶片(PIC10 - 6pins, PIC12 – 8 pins )配合NCO模組,達到用較小的電路板及精簡的電子元件完成所需功能。希望以上資訊可以讓您更為了解NCO這個周邊,並引發您運用此模組於更多不同的領域中。
註解:
*1. 部分MCU內建16位元,部分內建20位元細節請參考Datasheet
*2. NCO輸入頻率必須保持,NCO才能再SLEEP模式下運行
*3. 根據頻率不同,脈衝寬度自動調整為頻率的一半輸出
*4. 脈衝寬度為固定的輸入頻率倍數,調整輸出周期
作者 賴惠君 Microchip應用工程師