<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > c51單片機驅動(dòng)AD9954的程序及調試

c51單片機驅動(dòng)AD9954的程序及調試

作者: 時(shí)間:2012-10-24 來(lái)源:網(wǎng)絡(luò ) 收藏
第一次用51單片機寫(xiě)程序,仔細讀了一遍datasheet、并參考前面同學(xué)的示例程序之后,只簡(jiǎn)單的實(shí)現了單頻輸出(Single-tone Mode)。

一開(kāi)始調試,先要正確控制SYNC_CLK,因為這個(gè)輸出引腳就是內部DDS時(shí)鐘的4分頻(假設DDS時(shí)鐘最高為400MHz,那么SYNC_CLK此時(shí)應當輸出100MHz;反之,通常用SYNC_CLK來(lái)推測DDS系統時(shí)鐘)。前提是必須復位Control Function Register No.1(CFR1:0x00)中的bit1(SYNC_CLK Disable)。

然后根據輸入時(shí)鐘的頻率正確設置CFR2中的倍頻系數REFCLK Multiplier和VCO Range(0:100~250MHz;1:250~400MHz)。只要外部電路沒(méi)什么錯的地方,SYNC_CLK一般都OK了。

用了才發(fā)現,真的還不錯,400MHz的系統時(shí)鐘就先不說(shuō)了,居然可以用控制字Amplitude Scale Factor (ASF:0x02)調節輸出信號的幅度,前提是打開(kāi)CFR1中的OSK Enable。并且14bit的長(cháng)度也能夠達到足夠高的幅度控制精度了。當時(shí)作信號源的時(shí)候,還用外接AD835+TLV5638控制幅度,現在想來(lái)真是憨啊。

還有就是,輸出信號的相位可調??刂谱諴hase Offset Word(POW0 0x05)中含有14bit的相位偏移控制字,因此相位調節的精度也是相當高的,可達360°/16384 = 0.022°,在大多數情況下肯定夠用,比AD9851的5bit控制字(360°/32 = 11.25°)強多了。具體見(jiàn)程序1。

然后想嘗試一下線(xiàn)性?huà)哳l功能(Linear-sweeping Mode),調了一整天都沒(méi)出來(lái),然后就放假回家了。

最近在搞畢業(yè)設計(頻率特性測試儀Frequency Response Analyzer)的同時(shí),又把原來(lái)的測試板拿出來(lái)調試,Single-Tone Mode當然是沒(méi)問(wèn)題的,這次主要是再一次研究Linear-Sweeping Mode。于是打開(kāi)原來(lái)寫(xiě)的程序,看了一會(huì )兒,調了一會(huì )兒,突然發(fā)現一個(gè)極其簡(jiǎn)單的錯誤——控制字的一個(gè)字節位置寫(xiě)錯了,改過(guò)來(lái)再測試,一切OK。具體見(jiàn)程序2。去年居然花了一整天去查都沒(méi)查出來(lái),Wordless。

好了,現在該最后一關(guān)了——。Datasheet有關(guān)章節再看了一遍,然后大概寫(xiě)了一個(gè)程序試了一下,出來(lái)的波形一團糟。于是參考了AD官網(wǎng)的AD9954示例代碼(ASM的,具體見(jiàn)程序3),并和自己寫(xiě)的一步一步對比,最后終于搞定了。是因為向RAM寫(xiě)數據的時(shí)候,只需要在第一次送數據前送一次RAM指令字節(RAM:0x0b),具體見(jiàn)程序4。但是我沒(méi)注意到這一點(diǎn),每次數據前都送一遍0x0b,結果就悲劇了。不過(guò)最后還是發(fā)現原因了,嘿嘿!

下圖是RAM Segment Address Ramp Rate設置為0x0400(1024)時(shí)的切換時(shí)間測量波形。兩個(gè)光標之間的時(shí)間大概是10.24us,因為10.24us = 1024×10ns,說(shuō)明更新速率是10ns,即SYNC_CLK,和線(xiàn)性?huà)哳l時(shí)的最快頻率更新速度一樣。

利用AD9954的RAM Mode可以很方便的實(shí)現對數掃頻,只需要計算出相應的對數頻率點(diǎn)并存儲進(jìn)RAM即可。

除此之外,AD9954還可以實(shí)現高速調頻波。如果固定波表1000個(gè)點(diǎn),那么調制波的頻率可以是100kHz,50kHz,33.33kHz……,即100/n kHz(n正整數)。如果采用不定波表500~999個(gè)點(diǎn),則可以實(shí)現200kHz以?xún)鹊?,調制波的頻率步進(jìn)不大于0.4%的調頻波。但實(shí)現起來(lái)有些麻煩,所以一般不用AD9954作調制波頻率連續可調的調頻波信號源。

點(diǎn)擊瀏覽下一頁(yè)

現在A(yíng)D9954的程序部分了解得差不多了,等畢業(yè)設計結束之后,有時(shí)間了就升級一下以前做的信號源。AD835,TLV5638直接去掉,再加入比較基礎的調頻/調幅功能,還有就是加入一個(gè)EEPROM用于幅度校準存儲。另外,硬件電路方面做一板PCB降降噪聲,同時(shí)功放輸出的功率也要提升到10Vpp@50歐負載。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: c51單片機 AD9954 RAM模式

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>