基于CPLD內(nèi)部的反向器實(shí)現(xiàn)振蕩器應(yīng)用
摘要:使用CPLD內(nèi)部的資源施密特觸發(fā)器和反相器,只需外加一個(gè)RC就可以設(shè)計(jì)出一個(gè)穩(wěn)定的振蕩器,為CPLD或外圍器件提供時(shí)鐘源。靈活方便的設(shè)計(jì)及低成本的特性,使之具有很好的產(chǎn)品商業(yè)使用價(jià)值。
關(guān)鍵字:CPLD;施密特觸發(fā)器;振蕩器
前言
電子技術(shù)的飛速發(fā)展,尤其是消費(fèi)類電子產(chǎn)品在成本、產(chǎn)品功能及品質(zhì)的更高要求,使消費(fèi)類電子產(chǎn)品的設(shè)計(jì)不是簡單地要求設(shè)計(jì)出來,而是要考慮低成本高品質(zhì)。 CPLD的成本低,占用PCB面積小,功耗低和靈活的后期可編程特性在嵌入式設(shè)計(jì)中得到越來越廣泛的應(yīng)用。
由于CPLD資源較小,大部分工程師都用CPLD來實(shí)現(xiàn)整合邏輯電路,擴(kuò)展主處理器的I/O功能,或做電源管理功能,由于CPLD內(nèi)部沒有振蕩器,而振蕩器的功能對于CPLD做電源管理,產(chǎn)品的系統(tǒng)管理尤為重要,如果在CPLD外部加一個(gè)振蕩器就增加了整個(gè)設(shè)計(jì)的成本。利用CPLD內(nèi)部的反向器,再加上外部簡單的RC,即可以實(shí)現(xiàn)一個(gè)簡單的振蕩器供CPLD內(nèi)部設(shè)計(jì)使用,可以降低設(shè)計(jì)成本,靈活性強(qiáng),穩(wěn)定性高。
CPLD內(nèi)部施密特觸發(fā)器
CPLD內(nèi)部施密特觸發(fā)器電器特性見表1。目前大部分使用的CPLD都需要兩個(gè)電源VCC和VCCIO,VCC就是CPLD內(nèi)部的核電壓,VCCIO是CPLD所有I/O 引腳電壓。
從表1看出,VT+和VT-是取決于VCCIO的電壓。目前大部分設(shè)計(jì)都選用VCCIO為3.3V,所以,VT+ (min.) = 0.5 × 3.3V = 1.65V,VT+ (max.) = 0.8× 3.3V = 2.64V
VT- (min.) = 0.2 × 3.3V = 0.66V VT-(max.) = 0.5 × 3.3V = 1.65V
從上面給出的VCCIO 為3.3V計(jì)算可以看出,對于施密特觸發(fā)器當(dāng)輸入電壓在1.65V下輸出都為低電平,當(dāng)輸入電壓在1.65V之上都為高電平,1.65V為高低電平的臨界點(diǎn)。
振蕩器實(shí)現(xiàn)
利用CPLD內(nèi)部的施密特觸發(fā)器使輸入波形得到校正,再加上反向器反向和外部RC實(shí)現(xiàn)振蕩器,只需要在使用CPLD的任意兩個(gè)I/O PIN引腳(當(dāng)然從CPLD內(nèi)部原理來看最好是使用相鄰的兩個(gè)PIN引腳,會減小CPLD內(nèi)部資源的占用)。其中一個(gè)PIN 引腳串入電阻,外接一個(gè)對地電容,當(dāng)內(nèi)部的A點(diǎn)為高電平時(shí),PIN1會通過R1對C1充電,由于電容的電壓不可越變,電壓是對電流的積分,所以電壓會逐漸上升,當(dāng)電平上升至0.5 × VCCIO,CPLD施密特觸發(fā)器才認(rèn)為是高電平,再經(jīng)過內(nèi)部的反向器會反向,所以A 點(diǎn)會變成低電平,這時(shí)C1 會通過R1逐漸放電,當(dāng)放電電平低于0.5 x VCCIO時(shí),反向器反向A點(diǎn)又變回高電平,這樣反復(fù)的振蕩就構(gòu)成了一個(gè)穩(wěn)定的振蕩器時(shí)鐘源(見表1)。
CPLD實(shí)現(xiàn)代碼
本設(shè)計(jì)使用VHDL語言,選用XILINX 公司的COOLRUNNER-II系列的CPLD器件, 基于0.18nm CMOS CPLD, 3.8ns PIN-to-PIN延時(shí),快速JTAG下載,2個(gè)bank,具體實(shí)現(xiàn)見代碼列表。
振蕩器應(yīng)用
上述代碼通過XILINX的編譯綜合器后,會產(chǎn)生一個(gè)可下載檔案,此檔案可以通過JTAG直接下載到芯片中使用,由于代碼示例的為一個(gè)實(shí)時(shí)振蕩器,也就是只有芯片上電,振蕩器部分會一直工作,對于用于電源管理的嵌入式產(chǎn)品設(shè)計(jì),由于一直振蕩帶來額外的電功耗損耗,功耗的損耗和振蕩的頻率是相關(guān)的,當(dāng)頻率越高時(shí),功耗越大。所以,設(shè)計(jì)還可以再被優(yōu)化使用。比如,當(dāng)符合什么條件時(shí)振蕩器才開始振蕩,或者達(dá)到什么條件時(shí)振蕩器停止振蕩,這樣靈活的優(yōu)化設(shè)計(jì)會給產(chǎn)品帶來更多的附加價(jià)值,延長電池的使用壽命。
振蕩器的振蕩頻率是通過外部引腳的電阻和電容來調(diào)整的,當(dāng)電阻越小,電容越小時(shí),振蕩的頻率就很高。當(dāng)電阻很大時(shí),電容也變大,振蕩的頻率就會變低。振蕩器的精度取決于外面電阻和電容的精度,電阻的精度以現(xiàn)在工藝可以做到1%的正負(fù)誤差,電容可以選擇5%的正負(fù)誤差,高精度的電阻和電容會帶來比較精準(zhǔn)的振蕩頻率。
結(jié)語
本文的設(shè)計(jì)充分利用了CPLD內(nèi)部的硬件資源和VHDL靈活嚴(yán)謹(jǐn)?shù)木幊毯屯饧雍唵蔚腞C實(shí)現(xiàn)了一個(gè)振蕩時(shí)鐘源,既可供CPLD內(nèi)部設(shè)計(jì)使用,也可以供給外部其他設(shè)計(jì)使用,該設(shè)計(jì)減小了設(shè)計(jì)的復(fù)雜性,通過CPLD的靈活可編程性降低了產(chǎn)品的成本,具有一定的商業(yè)應(yīng)用價(jià)值。