AD9854優(yōu)勢(shì)和特點(diǎn)
300 MHz內(nèi)部時(shí)鐘速率
FSK、BPSK、PSK、線性調(diào)頻、AM操作
兩個(gè)集成式12位數(shù)模轉(zhuǎn)換器(DAC)
超高速比較器,均方根抖動(dòng):3 ps
出色的動(dòng)態(tài)性能:80 dB SFDR (100 MHz ± 1 MHz AOUT)
4×至20×可編程基準(zhǔn)時(shí)鐘乘法器
兩個(gè)48位可編程頻率寄存器
兩個(gè)14位可編程相位偏移寄存器
12位可編程振幅調(diào)制和開關(guān)輸出形鍵控功能
單引腳FSK和BPSK數(shù)據(jù)接口
通過輸入/輸出接口提供PSK功能
線性或非線性FM線性調(diào)頻功能,具有單引腳頻率保持功能
AD9854電路圖
下面給出一種用AD9854開發(fā)高精度頻率信號(hào)發(fā)生器的簡(jiǎn)易方法,開發(fā)者只需要熟悉MCS-51單片機(jī)編程即可。該系統(tǒng)具有開發(fā)周期短,開發(fā)成本低的特點(diǎn),也可以作為探索AD9854功能的一種方法,它的電路原理圖見圖2。
系統(tǒng)主要由DDS芯片AD9854、單片機(jī)AT89C51、看門狗定時(shí)器X25045和LED顯示驅(qū)動(dòng)芯片MAX7219組成。在這個(gè)系統(tǒng)中提供了8位七段LED顯示器,其中前五位為輸出頻率值,顯示范圍為00.000~99.999MHz,后三位為幅度顯示位,顯示范圍為0~999,表示幅值從零幅度到滿幅度的變化。
16位單片機(jī)對(duì)AD9854控制的實(shí)現(xiàn)
由圖1所示,要對(duì)其進(jìn)行控制,首先要搭建好其外部電路,根據(jù)我們的實(shí)驗(yàn)要求,將REFCLKB腳接上電源,實(shí)行單端輸入方式。再將S/PSE2LECT管腳設(shè)置為1,采用并行輸入輸出方式。
搭建好外部電路后,開始對(duì)AD9854的I/Oupdate信號(hào)進(jìn)行設(shè)置,對(duì)信號(hào)控制是否正確關(guān)系著AD9854是否能正常工作。I/Oupdate信號(hào)是為了將操作輸入的數(shù)據(jù)從I/O口緩沖寄存器轉(zhuǎn)移到DDS的核心寄存器中而產(chǎn)生的一個(gè)由低到高的上升沿。這個(gè)信號(hào)可以從外部提供,也可以由內(nèi)部產(chǎn)生。當(dāng)此信號(hào)由外部提供時(shí),我們應(yīng)將控制寄存器中的INT/EXTUpdateClk位設(shè)置為0,此時(shí)內(nèi)部的系統(tǒng)時(shí)鐘將會(huì)與之同步以防止程序寄存器中的數(shù)據(jù)部分的轉(zhuǎn)移而造成程序執(zhí)行錯(cuò)誤。如要內(nèi)部自行產(chǎn)生,則要將INT/EXTUpdateClk位設(shè)置為1,此時(shí)默認(rèn)的I/OUpdate信號(hào)的周期為65×(SYS2TEMCLOCKPERIOD×2)。同樣內(nèi)部產(chǎn)生的I/Oupdate信號(hào)也可以由32位的UpdatedClock寄存器(地址為16-19)控制,信號(hào)的周期公式是(N+1)×(SYSTEMCLOCKPERIOD×2),其中SYS2TEMCLOCKPERIOD是1/SYSTEMCLOCK,N是需要往32位寄存器中輸入的數(shù)值,它的適用范圍是1至(232-1)。I/OUpdate信號(hào)的高電平的持續(xù)時(shí)間是8個(gè)時(shí)鐘周期。
接下來,對(duì)AD9854中的內(nèi)部的40個(gè)寄存器進(jìn)行設(shè)置。其中地址為1D-20的寄存器為32位的控制寄存器,分別對(duì)工作模式,比較器,輸出幅度,系統(tǒng)時(shí)鐘等進(jìn)行了控制。
首先,對(duì)地址為1D的寄存器進(jìn)行設(shè)置,此寄存器主要控制比較器開關(guān)和各個(gè)輸出通路的開關(guān)。在實(shí)驗(yàn)中,沒有使用到比較器,而且要求各個(gè)通路都有輸出,因此1D地址的控制寄存器保持默認(rèn)值10h。
地址為1E的寄存器主要控制芯片內(nèi)部PLL倍乘器的開關(guān)以及倍乘器倍數(shù)。在實(shí)驗(yàn)中,對(duì)AD9854的外部使用20MHz的晶振作為振蕩源,并將系統(tǒng)工作時(shí)鐘設(shè)定為200MHz,因此要將1E寄存器中的PLLRange位設(shè)置為1,由于用到了AD9854的內(nèi)部PLL倍乘器,所以BypassPLL位設(shè)置為0,倍乘器倍數(shù)應(yīng)設(shè)置為10,因此1E地址的控制器中的內(nèi)容應(yīng)為4Ah。
地址為1F的控制寄存器主要控制芯片的工作模式以及I/Oupdate的內(nèi)外部方式,我們采用的仍然是single-tone模式,而且用的也是內(nèi)部產(chǎn)生I/Oupdate信號(hào),因此寄存器采用的是默認(rèn)值01h
地址為20的控制寄存器主要是對(duì)輸出波形幅值的控制以及在串行輸入輸出時(shí)的一些設(shè)置。在實(shí)驗(yàn)中,我們采用的是并行輸入輸出方式,因此對(duì)串行的一些設(shè)置都默認(rèn)為0。對(duì)于幅值的設(shè)置,如果是要AD9854內(nèi)部產(chǎn)生幅值,則OSKEN位設(shè)置為0,OSKINT位設(shè)置為1。如果是通過專門的幅值寄存器對(duì)輸出幅值進(jìn)行調(diào)控,則OSKEN位設(shè)置為1,OSKINT位設(shè)置為0。實(shí)驗(yàn)中,仍然將此控制寄存器的內(nèi)容設(shè)置為默認(rèn)值20h,通過專門的幅值寄存器對(duì)輸出幅值進(jìn)行調(diào)節(jié)。
設(shè)置完控制寄存器后,我們?cè)賹?duì)頻率寄存器,幅度寄存器,相位寄存器進(jìn)行設(shè)置。芯片中共有兩個(gè)頻率寄存器,兩個(gè)相位寄存器。由于我們采用的Single-Tone模式,因此我們只用PhaseAdjust1和FrequencyTuningWord1這兩個(gè)寄存器。
PhaseAdjust寄存器是對(duì)產(chǎn)生的波形的相位進(jìn)行控制,地址為00和01,它是一個(gè)14位的寄存器,因此產(chǎn)生的波形的相位具有14位的精度。
FrequencyTuningWord寄存器是對(duì)波形的頻率進(jìn)行控制,地址為04至09,它的精度為48位,因此我們需要往里面輸入48位的頻率控制字,頻率控制字的計(jì)算公式是:FTW=(DesiredOutputFrequency×2N)/SYSCLK。其中N是相位累加器的分辨率,我們?cè)诖巳?8,算出來的頻率控制字是一個(gè)十進(jìn)制數(shù)字,因此要把它轉(zhuǎn)化為48位的二進(jìn)制數(shù)。通過此寄存器控制的頻率范圍可從0至1/2的SYSCLK。SYSCLK是芯片的系統(tǒng)時(shí)鐘。
對(duì)幅度進(jìn)行控制的寄存器是地址為21至24的OutputShapeKeyI和OutputShapeKeyQ,它們都是12位的寄存器。
在AD9854進(jìn)行讀寫操作時(shí),重要的問題是要注意它的讀寫時(shí)序,在實(shí)驗(yàn)中,我們未對(duì)AD9854進(jìn)行讀操作,所以下面只介紹了寫操作的時(shí)序。
由2圖所示,在進(jìn)行寫操作時(shí),可將地址和數(shù)據(jù)同時(shí)寫入,在WR引腳接收到一個(gè)高電平后,數(shù)據(jù)和地址被寫入。
具體的寫程序語句如下:
3P_IOB_Data=0x0001;
3P_IOA_Data=0x1e4a;
3P_IOB_Data=0x0000;
這條指令是對(duì)地址為1e的控制寄存器進(jìn)行寫操作,單片機(jī)的IOB0口連接到AD9854的WR引腳。
16位處理器對(duì)AD9854的控制程序
為了更好的說明 16位處理器對(duì) AD9854的控制 ,這里寫了一個(gè)程序 :
#define P_ IOA_Data ( volatile unsigned int 3 ) 0x7000
#define P_ IOA_Buffer ( volatile unsigned int 3 ) 0x7001
#define P_ IOA_D ir ( volatile unsigned int 3 ) 0x7002
#define P_ IOA_A ttrib ( volatile unsigned int 3 ) 0x7003
#define P_ IOB_Data ( volatile unsigned int 3 ) 0x7005
#define P_ IOB_Buffer ( volatile unsigned int 3 ) 0x7006
#define P_ IOB_D ir ( volatile unsigned int 3 ) 0x7007
#define P_ IOB_A ttrib ( volatile unsigned int 3 ) 0x7008
#define P_SystemClock ( volatile unsigned int 3 ) 0x7013
#define P_WatchDog_Clear ( volatile unsigned int 3 ) 0x7012 / /對(duì)單片機(jī) I/O地址設(shè)置
void main ( )
{
3 P_ IOA_D ir = 0xffff;
3 P_ IOA_A ttrib = 0xffff;
3 P_ IOA_Data = 0x0000;
3 P_ IOB_D ir = 0xffff;
3 P_ IOB_A ttrib = 0xffff;
3 P_ IOB_Data = 0x0000; / /對(duì)單片機(jī) I/O口的屬性進(jìn)行操作
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1600;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1700;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1807;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x19CF;
3 P_ IOB_Data = 0x0000; / /對(duì) update信號(hào)周期的設(shè)置
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1d10;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1e0a
P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x1f01;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x2020;
3 P_ IOB_Data = 0x0000; / /對(duì)控制寄存器的設(shè)置
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x210f;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x22ff;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x230f;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x24ff;
3 P_ IOB_Data = 0x0000; / /幅度控制
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x0400;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x05ff;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x06ff;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x07ff;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x08ff;
3 P_ IOB_Data = 0x0000;
3 P_ IOB_Data = 0x0001;
3 P_ IOA_Data = 0x09ff;
3 P_ IOB_Data = 0x0000; / /頻率控制
while (1)
{
3 P_WatchDog_Clear = 0x0001;
}
程序中,將update信號(hào)的周期設(shè)置為20μs,得出的控制字為000007CF。將頻率控制寄存器中寫入00ffffffffff,此數(shù)字轉(zhuǎn)換成十進(jìn)制為1099511627775,代入到頻率控制字的計(jì)算公式中得出可以得到781.25kHz的頻率。用示波器進(jìn)行測(cè)量觀察,得到圖3波形:
由觀察到的波形可以看出 , update信號(hào)的周期為 20μs,輸出波形的頻率為 782. 9kHz,與初始設(shè)定值相一致 ,可知 ,實(shí)驗(yàn)程序是正確的。
上一篇:51單片機(jī)之矩陣鍵盤的驅(qū)動(dòng)實(shí)現(xiàn)
下一篇:AT89S51系列單片機(jī)的特點(diǎn)(AT89S51引腳功能及應(yīng)用電路)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- AI時(shí)代的孩子,如何成為未來的開創(chuàng)者?
- 通用汽車轉(zhuǎn)向LFP電池,LG新能源和三星SDI擬在美建廠
- 蓋世汽車研究院:政策助推疊加技術(shù)迭代 全固態(tài)電池蓄勢(shì)待發(fā)
- 小鵬汽車董事長(zhǎng)預(yù)測(cè):2027年激光雷達(dá)非智能駕駛必備
- 解碼大眾汽車中國(guó)戰(zhàn)略 - 決戰(zhàn)智能化電氣化的三板斧
- 2025從具身智能大腦展望人形機(jī)器人發(fā)展
- “荊楚”人形機(jī)器人即將量產(chǎn),智能時(shí)代的新篇章!
- 小鵬純視覺方案:技術(shù)突圍與市場(chǎng)下沉的雙重博弈
- 為什么無人出租車能“零”事故,而智能駕駛輔助卻事故頻發(fā)?
- 重磅!一顆要顛覆全球智駕的芯片點(diǎn)亮了!
- 《模擬對(duì)話》50周年大合集(2013-2016)
- 今日競(jìng)拍:TI SimpleLink Wifi CC3220S
- 是德科技:五招教您最小化合格/不合格的誤判風(fēng)險(xiǎn)在線直播預(yù)報(bào)名、看直播、填問卷、好禮相送!
- Wi-Fi智能戰(zhàn)隊(duì)征集令,Open1081免費(fèi)試用進(jìn)行中...
- 你眼中的TI DSP有多么的與眾不同?
- 話說我接觸的ADI實(shí)驗(yàn)室電路“評(píng)估板”
- 你曬單我送禮,曬TI樣片訂單即可贏好禮!
- 揭秘正確選擇探頭的5大要素 (泰克原裝探頭促銷,高貴不貴,199元起)
- 快速獲取TI 工業(yè)電機(jī)驅(qū)動(dòng)資源 答題贏好禮
- 電阻選型與應(yīng)用知識(shí)系列大講臺(tái)—電阻檢測(cè)與失效分析
- 這些融資過億的機(jī)器人企業(yè),誰能笑到最后?
- 安規(guī)電容器好壞的標(biāo)準(zhǔn)是什么
- 羅杰斯談物聯(lián)網(wǎng)和5G時(shí)代需要怎樣的新材料?
- 日本電容需求暴增,訂單積壓
- 泛在電力物聯(lián)網(wǎng)帶來哪些變化
- 增量配電業(yè)務(wù)的商業(yè)模式內(nèi)涵
- 雖然站在制造業(yè)風(fēng)口上 國(guó)產(chǎn)機(jī)器人還是有很長(zhǎng)的路要走
- 輪式機(jī)器人可以應(yīng)對(duì)新的挑戰(zhàn)和功能
- 日本開始訓(xùn)練機(jī)器人自我修理與加強(qiáng) 但還需要靠人類才能辨別位置
- DCDC的電流紋波
- EVC 界面閃爍問題,在線等
- Python 從入門到實(shí)踐資料合輯
- 熱敏電阻溫度傳感器
- 急!!evc4怎么在編譯exe(F7)文件時(shí)總是報(bào)"Connection was not created"?
- led點(diǎn)陣顯示屏設(shè)計(jì)文檔
- 關(guān)于MSP430 F149 CCR0和CCR1的問題
- 請(qǐng)問大家如何編寫WINCE下的設(shè)備驅(qū)動(dòng)注冊(cè)表啊!!!
- 急聘DSP Support Engineer-音頻方向(工作地點(diǎn):成都)
- AD650及其V/F和F/V轉(zhuǎn)換電路