基于PSoC的V/F轉(zhuǎn)換器實(shí)現(xiàn)
摘要:介紹一種可編程系統(tǒng)芯片PSoC(Programmable System on-Chip)的主要功能,邏輯結(jié)構(gòu)及其系統(tǒng)實(shí)現(xiàn)。分析了V/F轉(zhuǎn)換器的基本原理,提出了在傳統(tǒng)V/F轉(zhuǎn)換器的基礎(chǔ)上,通過(guò)使用PSoC上的數(shù)模混合信號(hào)陣列芯片實(shí)現(xiàn)壓頻轉(zhuǎn)換的功能。相比傳統(tǒng)技術(shù),新設(shè)計(jì)方式易于多功能集成,簡(jiǎn)化了外圍電路,具有成本低廉,精度高,功耗低,可靠性好的優(yōu)點(diǎn)。
關(guān)鍵字:PSoC V/F轉(zhuǎn)換器 數(shù)?;旌闲盘?hào)陣列芯片
1 引言
由美國(guó)賽普拉斯(CYPRESS)公司推出的可編程片上系統(tǒng)(PSoC)混合信號(hào)陣列是一款完整的系統(tǒng)級(jí)解決方案。該芯片包括可配置的數(shù)字和模擬外設(shè),8位微控制器和三種嵌入式存儲(chǔ)器。與傳統(tǒng)單片機(jī)的根本區(qū)別在于PSoC內(nèi)部集成的數(shù)字和模擬模塊是可配置的,可以根據(jù)不同設(shè)計(jì)要求調(diào)用不同的數(shù)字和模擬模塊,完成芯片內(nèi)部的功能設(shè)計(jì),實(shí)現(xiàn)使用一塊芯片就可以配置成具有多種不同外圍元器件的微控制器,真正實(shí)現(xiàn)了微控制器的通用可配置。PSoC最大限度的將設(shè)計(jì)的靈活性與易用性相結(jié)合,大大提高了開(kāi)發(fā)效率,降低了系統(tǒng)開(kāi)發(fā)的復(fù)雜性和費(fèi)用,同時(shí)增強(qiáng)了系統(tǒng)的可靠性和抗干擾能力。
1.1 PSoC內(nèi)部結(jié)構(gòu)
PSoC微控制器集成了一個(gè)快速8比特的CPU,8~16KB的Flash程序存儲(chǔ)器,SRAM數(shù)據(jù)存儲(chǔ)器,以及數(shù)字和模擬模塊。
PSoC有8個(gè)數(shù)字模塊(4通訊能力)和12個(gè)模擬模塊(4連續(xù)時(shí)間型和8開(kāi)關(guān)電容式)。數(shù)字模塊可被配置為計(jì)時(shí)器,控制器或串行通訊端口。模擬模塊可以通過(guò)連接需要的寄存器,設(shè)置合適的運(yùn)算放大器電路,編程實(shí)現(xiàn)放大器,濾波器,比較器,模數(shù)轉(zhuǎn)換器等功能。入圖一所示。
1.2 PSoC軟件工具
PSoC Desinger是基于Windows的軟件開(kāi)發(fā)工具。包括器件編輯器,應(yīng)用程序編輯器,調(diào)試器。器件編輯器:選擇,放置和配置用戶模塊,資源和引腳;應(yīng)用程序編輯器:包括C編譯程序,匯編程序,庫(kù)管理程序;調(diào)試器:支持在線仿真,設(shè)置斷點(diǎn)并進(jìn)行跟蹤。
(圖一)
2 工作原理
V/F轉(zhuǎn)換是將被測(cè)物理量經(jīng)傳感器轉(zhuǎn)換成與被測(cè)信號(hào)成比例的連續(xù)變化的電壓(或電流)量,再轉(zhuǎn)換為電壓〔或電流)的脈沖頻率(f)或周期(T)。根據(jù)電荷平衡式可知,輸出頻率 ,說(shuō)明輸人電壓 與f存在線性函數(shù)關(guān)系。在PSoC中,使用連續(xù)時(shí)間模塊(CT)和一個(gè)開(kāi)關(guān)電容模塊(SC)就可以實(shí)現(xiàn)V/F轉(zhuǎn)化。
V/F 轉(zhuǎn)換器的原理圖如圖二所示。
(圖二)
圖中包括一個(gè)積分器和一個(gè)施密特觸發(fā)器。積分器可由帶模擬模塊的SC模塊建立,施密特觸發(fā)器可由帶內(nèi)部電阻的CT模塊建立。積分器的輸出電壓由前一個(gè)采樣的輸出電壓和施密特觸發(fā)器的狀態(tài)決定。在SC模塊中將Sign位置為1,可使積分器的增益為負(fù)。施密特觸發(fā)器的輸出狀態(tài)隨著積分器的輸出極性的變化而變化。當(dāng)施密特觸發(fā)器的輸出為負(fù)時(shí),每個(gè)采樣時(shí)鐘會(huì)使積分器的輸出 ,A和電容(F)的比值決定(公式1)。
(2)
3 軟件實(shí)現(xiàn)
3.1 模塊設(shè)置
采用PSoC Desinger作為PSoC的集成開(kāi)發(fā)環(huán)境(IDE)。轉(zhuǎn)換器被放置在PSoC Desinger的Column-O 中,可編程比較器用來(lái)生成施密特觸發(fā)器,反饋電阻與放大器的同相端連接,反相端直接和積分器的輸出相連。因?yàn)榉e分器使用的是自動(dòng)歸零的模式,在每個(gè)時(shí)鐘里SC的輸出在需要的輸出值和AGND間變化。由于施密特觸發(fā)器的遲滯現(xiàn)象,因此就使積分器對(duì)轉(zhuǎn)換器沒(méi)有影響。
積分器放置在ASC10中,可配置的SC模塊用來(lái)生成積分器,Comparator Bus作為輸入源,F(xiàn)Cap被置為32, ACap被置為1,這樣就可以在每個(gè)給定輸入電壓里得到最大可能的積分過(guò)程。為了處理來(lái)自PSoC的Vss接地輸入信號(hào),PSoC Desinger中的ARefMux被置為REFLO,RefMux被置為Vdd/2 Vdd/2。如果要使用以AGND為參考的輸入信號(hào),就得把ARefMux參數(shù)置為AGND,同時(shí)設(shè)置好輸入和輸出管腳。
3.2 程序結(jié)構(gòu)
void main()
{
CMPPR_COMP_CRO|=BIT (2); //連接放大器RTopMux端
CMPPR_COMP_CR1=(CMPPR_COMP_CR1& OxCO)|Ox2F; //設(shè)置NMux和Pmux的連接
CMPPR_COMP_CR2&=BIT(6); //將輸出鎖存
CMPPR_start (CMPPR_HIGHPOWER);
AMD_CR0|=0x04;
INTEGR_Start(INTEGR_HIGHPOWER);
BYPASS_FUNC_REG=BYPASS_FUNC_REG&OxFC|0x02;
BYPASS_control_REG|=0x03;
BYPASS_Start();
While(1); //一直循環(huán)下去
}
3.3 測(cè)試結(jié)果
輸入電壓(V) | 理論輸出頻率 (KHZ) | 實(shí)際輸出頻率 (KHZ) | 誤差率 |
0.5 | 1.0 | 0.980 | -2.0% |
1.0 | 2.0 | 2.030 | 1.5% |
1.5 | 3.0 | 3.064 | 2.13% |
2.0 | 4.0 | 4.113 | 2.82% |
2.5 | 5.0 | 4.912 | -1.76% |
3.0 | 6.0 | 5.886 | -1.9% |
3.5 | 7.0 | 7.225 | 3.21% |
4.0 | 8.0 | 7.748 | -3.15% |
4.5 | 9.0 | 8.837 | -1.81% |
5.0 | 10.0 | 10.306 | 3.06% |
(圖四)
從圖中可看出,用PSoC實(shí)現(xiàn)的V/F轉(zhuǎn)換器線性度比較良好,誤差小,具有廣泛的應(yīng)用范圍。
4 結(jié)束語(yǔ)
本文介紹了應(yīng)用PSoC設(shè)計(jì)實(shí)現(xiàn)V/F轉(zhuǎn)換器。從中可以看到PSoC設(shè)計(jì)靈活,開(kāi)發(fā)簡(jiǎn)單,能大大提高開(kāi)發(fā)效率,降低系統(tǒng)開(kāi)發(fā)的復(fù)雜性和費(fèi)用,縮短產(chǎn)品開(kāi)發(fā)周期,具有廣闊的應(yīng)用前景。
5 本文作者創(chuàng)新點(diǎn)
應(yīng)用PSoC高度集成的硬件模塊和完善的軟件開(kāi)發(fā)平臺(tái),根據(jù)需要實(shí)時(shí)動(dòng)態(tài)地配置輸入電壓和輸出頻率的比值,具有很大的靈活性。