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