<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051F130的信號源發(fā)生器設(shè)計(jì)

          基于C8051F130的信號源發(fā)生器設(shè)計(jì)

          作者: 時(shí)間:2011-08-29 來源:網(wǎng)絡(luò) 收藏

          摘要: 以Cygnal 單片機(jī) 和波形產(chǎn)生器MAX038 為核心, 輔以高性能D/ A 轉(zhuǎn)換器AD7533 和AD7303及數(shù)字電位器X9C103 等外圍電路了1 種。給出了詳細(xì)的硬件方案和軟件方案。經(jīng)實(shí)際測試, 該能輸出頻率小于15 M Hz, 幅度200 mV~ 20 V( VPP ) 連續(xù)可調(diào), 占空比在15%~ 85% 變化的方波、正弦波、三角波, 輸出波形失真度小于0. 3%, 輸出頻率精度優(yōu)于2 ×10- 4 , 具有外圍電路簡單、精度高、低失真度等優(yōu)點(diǎn), 得到了廣泛應(yīng)用。

          本文引用地址:http://www.ex-cimer.com/article/172519.htm

            引言

            產(chǎn)生電路可以由RC 震蕩電路、LC 震蕩電路以及由555 定時(shí)器構(gòu)成的震蕩電路制成,更多的則是用專門的函數(shù)信號IC 產(chǎn)生,但它們的功能較少, 精度不高, 頻率上限只有300 kHz, 無法產(chǎn)生更高頻率的信號, 另外調(diào)節(jié)方式也不夠靈活, 頻率和占空比不能獨(dú)立調(diào)節(jié), 二者互相影響。也有采用專門DDS 芯片的信號發(fā)生器, 但電路結(jié)構(gòu)復(fù)雜, 成本較高 。而專門針對極低頻率的信號源其設(shè)計(jì)頻率范圍又較窄 , 應(yīng)用范圍小。為此, 本文研究并設(shè)計(jì)出了一種單片機(jī) 和MAX038 的信號源發(fā)生器, 能在15 MHz 內(nèi)產(chǎn)生三角波、正弦波、方波, 精度高、失真度小、能有效彌補(bǔ)上述設(shè)計(jì)的不足, 滿足大部分測試對信號源的要求。

            1 信號源發(fā)生器的總體設(shè)計(jì)

            該信號源發(fā)生器主要以單片機(jī) 為控制核心, 通過對Maxim 公司波形發(fā)生器芯片MAX038 及其外部電路控制實(shí)現(xiàn)其不同幅度和頻率, 不同類型信號的輸出, 其中C8051F130 是Silicon Laborat or ies 公司推出的一種具有8051 內(nèi)核及指令集完全兼容的集成混合信號片上系統(tǒng), 執(zhí)行指令最快速度可達(dá)100 MIPS, 內(nèi)部具有8448( 8K+ 256) 字節(jié)片內(nèi)RAM 和128 K 字節(jié)的flash 存儲器,擁有多達(dá)64 個(gè)輸入輸出口, 可以完全滿足本設(shè)計(jì)的控制需求, MAX038 是1 個(gè)只需要少量外部元件便能產(chǎn)生準(zhǔn)確正弦波、三角波和方波的波形產(chǎn)生器, 輸出頻率和占空比可以通過外圍電路的電流、電壓和電阻進(jìn)行調(diào)節(jié)。整個(gè)信號源發(fā)生器由頻率控制部分、波形選擇部分、占空比調(diào)節(jié)部分、鍵盤輸入控制部分、信號狀態(tài)顯示部分、電源部分等構(gòu)成, 電路框圖如圖1 所示。

            

          圖1  信號源發(fā)生器

            圖1 信號源發(fā)生器

            2 信號源發(fā)生器各部分硬件電路設(shè)計(jì)

            2. 1 波形選擇部分

            直接使用C8051F130 上I/ O 口P0. 0、P0. 1 連接MAX038 上A0 和A1 管腳, 對輸入進(jìn)行設(shè)置即能產(chǎn)生正弦波、方波和三角波, 管腳電平和波形之間的關(guān)系如表1所示。

            表1 A0 和A1 管腳電平對應(yīng)波形關(guān)系

            

          表1  A0 和A1 管腳電平對應(yīng)波形關(guān)系

            波形切換可以在任意時(shí)候進(jìn)行, 而不管輸出信號的相位, 切換時(shí)間小于0. 3 us。

            2. 2 頻率控制部分

            MAX038 輸出信號的頻率由注入引腳IIN 的電流IIN 、COSC 引腳端接的電容CF 以及引腳FADJ 上的電壓V FADJ 決定。當(dāng)VFADJ = 0 V 時(shí), 基本輸出頻率Fo 由下式給出:

            

            式中: IIN 為流入IIN 引腳的電流( 為獲得最佳性能取10 A到400 A ) , CF 為連接COSC 引腳和地的電容( 在20 pF~ 100 F 中選取) , 如果VFADJ 是已知, 則任意輸出頻率Fx = Fo [ 1- (0. 2915 VFADJ ) ] , 在本設(shè)計(jì)中通過10位D/A 轉(zhuǎn)換器A D7533 輸出不同電壓, 連接1 個(gè)30 k 的電阻控制流入MAX038 IIN 管腳的電流與C8051F130 控制CD4051 選擇不同的CF 共同決定信號的輸出頻率值, 整個(gè)輸出信號的頻率分為7 個(gè)頻段, 頻段劃分與CF 值和流入IIN 電流值對應(yīng)關(guān)系如表2 所示。

            表2 頻段劃分與CF 值和流入IIN 電流值對應(yīng)關(guān)系

            

          表2 頻段劃分與CF 值和流入IIN 電流值對應(yīng)關(guān)系

            2. 3 占空比調(diào)節(jié)部分

            DADJ 引腳端上的電壓控制輸出波形的占空比, 當(dāng)VDADJ = 0 時(shí)占空比為50%, 當(dāng)電壓從+ 2. 3 V 到- 2. 3 V將引起輸出占空比從15%~ 85%變化, 電壓變化1 V 可使占空比變化15%, 占空比調(diào)節(jié)部分選用串行輸入、雙電壓輸出的8 位D/ A 轉(zhuǎn)換器AD7303, 通過C8051F130 控制AD7303 輸出- 2. 3~ + 2. 3 V, 接入DADJ 引腳調(diào)節(jié)占空比。

            2. 4 幅度調(diào)節(jié)部分

            在經(jīng)過頻率控制和占空比調(diào)節(jié)之后, MAX038 輸出端能輸出幅度為2 V( VPP ) 的有關(guān)波形, 對地對稱即相對對地電位而言是- 1~ + 1 V, 輸出阻抗小于0. 1 Ω , 可直接向50 pF的容性負(fù)載提供的驅(qū)動電流為±20 mA 。為滿足實(shí)際使用對信號源的要求, 還需要幅度調(diào)節(jié)電路調(diào)節(jié)輸出信號幅度和增加信號驅(qū)動能力, 幅度調(diào)節(jié)電路由寬帶高速電流反饋運(yùn)放AD811 構(gòu)成的反相比例運(yùn)算電路構(gòu)成, 其中反饋電阻大小由單片機(jī)C8051F130 控制X9C103 數(shù)字電位器實(shí)現(xiàn), 輸出信號隨運(yùn)放增益的不同, 幅度可以在200 mV~20 V( VPP ) , 增減步進(jìn)量為200 mV ( VPP ) 。圖2 給出了信號源發(fā)生器頻率控制部分、占空比調(diào)節(jié)部分和幅度調(diào)節(jié)部分的電原理圖。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();