精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

16位單片機對AD9854控制的探討

姚小熊27 ? 來源:網絡整理 ? 2018-05-16 16:16 ? 次閱讀

AD9854優勢和特點

300 MHz內部時鐘速率

FSK、BPSK、PSK、線性調頻、AM操作

兩個集成式12位數模轉換器DAC

超高速比較器,均方根抖動:3 ps

出色的動態性能:80 dB SFDR (100 MHz ± 1 MHz AOUT)

4×至20×可編程基準時鐘乘法器

兩個48位可編程頻率寄存器

兩個14位可編程相位偏移寄存器

12位可編程振幅調制和開關輸出形鍵控功能

單引腳FSK和BPSK數據接口

通過輸入/輸出接口提供PSK功能

線性或非線性FM線性調頻功能,具有單引腳頻率保持功能

AD9854電路圖

下面給出一種用AD9854開發高精度頻率信號發生器的簡易方法,開發者只需要熟悉MCS-51單片機編程即可。該系統具有開發周期短,開發成本低的特點,也可以作為探索AD9854功能的一種方法,它的電路原理圖見圖2。

16位單片機對AD9854控制的探討

系統主要由DDS芯片AD9854、單片機AT89C51、看門狗定時器X25045和LED顯示驅動芯片MAX7219組成。在這個系統中提供了8位七段LED顯示器,其中前五位為輸出頻率值,顯示范圍為00.000~99.999MHz,后三位為幅度顯示位,顯示范圍為0~999,表示幅值從零幅度到滿幅度的變化。

16位單片機對AD9854控制的實現

采用對AD9854進行控制的單片機是凌陽公司的SPCE061A,它是一款16位的微處理器CPU的時鐘頻率可達0.32MHz-49.152MHz,32K字的閃存,2K字的工作靜態存儲器,總共有32位的I/O端口,分為16位的IOA口和16位的IOB口,每個口都可以單獨地進行輸入輸出設置。但是這款單片機不具有其他單片機的讀寫時序控制引腳,因此在對AD9854的控制中,需要單獨拿出一個引腳作為讀寫時序引腳。

16位單片機對AD9854控制的探討

由圖1所示,要對其進行控制,首先要搭建好其外部電路,根據我們的實驗要求,將REFCLKB腳接上電源,實行單端輸入方式。再將S/PSE2LECT管腳設置為1,采用并行輸入輸出方式。

搭建好外部電路后,開始對AD9854的I/Oupdate信號進行設置,對信號控制是否正確關系著AD9854是否能正常工作。I/Oupdate信號是為了將操作輸入的數據從I/O口緩沖寄存器轉移到DDS的核心寄存器中而產生的一個由低到高的上升沿。這個信號可以從外部提供,也可以由內部產生。當此信號由外部提供時,我們應將控制寄存器中的INT/EXTUpdateClk位設置為0,此時內部的系統時鐘將會與之同步以防止程序寄存器中的數據部分的轉移而造成程序執行錯誤。如要內部自行產生,則要將INT/EXTUpdateClk位設置為1,此時默認的I/OUpdate信號的周期為65×(SYS2TEMCLOCKPERIOD×2)。同樣內部產生的I/Oupdate信號也可以由32位的UpdatedClock寄存器(地址為16-19)控制,信號的周期公式是(N+1)×(SYSTEMCLOCKPERIOD×2),其中SYS2TEMCLOCKPERIOD是1/SYSTEMCLOCK,N是需要往32位寄存器中輸入的數值,它的適用范圍是1至(232-1)。I/OUpdate信號的高電平的持續時間是8個時鐘周期。

接下來,對AD9854中的內部的40個寄存器進行設置。其中地址為1D-20的寄存器為32位的控制寄存器,分別對工作模式,比較器,輸出幅度,系統時鐘等進行了控制。

首先,對地址為1D的寄存器進行設置,此寄存器主要控制比較器開關和各個輸出通路的開關。在實驗中,沒有使用到比較器,而且要求各個通路都有輸出,因此1D地址的控制寄存器保持默認值10h。

地址為1E的寄存器主要控制芯片內部PLL倍乘器的開關以及倍乘器倍數。在實驗中,對AD9854的外部使用20MHz的晶振作為振蕩源,并將系統工作時鐘設定為200MHz,因此要將1E寄存器中的PLLRange位設置為1,由于用到了AD9854的內部PLL倍乘器,所以BypassPLL位設置為0,倍乘器倍數應設置為10,因此1E地址的控制器中的內容應為4Ah。

地址為1F的控制寄存器主要控制芯片的工作模式以及I/Oupdate的內外部方式,我們采用的仍然是single-tone模式,而且用的也是內部產生I/Oupdate信號,因此寄存器采用的是默認值01h

地址為20的控制寄存器主要是對輸出波形幅值的控制以及在串行輸入輸出時的一些設置。在實驗中,我們采用的是并行輸入輸出方式,因此對串行的一些設置都默認為0。對于幅值的設置,如果是要AD9854內部產生幅值,則OSKEN位設置為0,OSKINT位設置為1。如果是通過專門的幅值寄存器對輸出幅值進行調控,則OSKEN位設置為1,OSKINT位設置為0。實驗中,仍然將此控制寄存器的內容設置為默認值20h,通過專門的幅值寄存器對輸出幅值進行調節。

設置完控制寄存器后,我們再對頻率寄存器,幅度寄存器,相位寄存器進行設置。芯片中共有兩個頻率寄存器,兩個相位寄存器。由于我們采用的Single-Tone模式,因此我們只用PhaseAdjust1和FrequencyTuningWord1這兩個寄存器。

PhaseAdjust寄存器是對產生的波形的相位進行控制,地址為00和01,它是一個14位的寄存器,因此產生的波形的相位具有14位的精度。

FrequencyTuningWord寄存器是對波形的頻率進行控制,地址為04至09,它的精度為48位,因此我們需要往里面輸入48位的頻率控制字,頻率控制字的計算公式是:FTW=(DesiredOutputFrequency×2N)/SYSCLK。其中N是相位累加器的分辨率,我們在此取48,算出來的頻率控制字是一個十進制數字,因此要把它轉化為48位的二進制數。通過此寄存器控制的頻率范圍可從0至1/2的SYSCLK。SYSCLK是芯片的系統時鐘。

對幅度進行控制的寄存器是地址為21至24的OutputShapeKeyI和OutputShapeKeyQ,它們都是12位的寄存器。

在AD9854進行讀寫操作時,重要的問題是要注意它的讀寫時序,在實驗中,我們未對AD9854進行讀操作,所以下面只介紹了寫操作的時序。

16位單片機對AD9854控制的探討

由2圖所示,在進行寫操作時,可將地址和數據同時寫入,在WR引腳接收到一個高電平后,數據和地址被寫入。

具體的寫程序語句如下:

3P_IOB_Data=0x0001;

3P_IOA_Data=0x1e4a;

3P_IOB_Data=0x0000;

這條指令是對地址為1e的控制寄存器進行寫操作,單片機的IOB0口連接到AD9854的WR引腳。

16位處理器對AD9854的控制程序

為了更好的說明 16位處理器對 AD9854的控制 ,這里寫了一個程序 :

#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 / /對單片機 I/O地址設置

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; / /對單片機 I/O口的屬性進行操作

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; / /對 update信號周期的設置

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; / /對控制寄存器的設置

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信號的周期設置為20μs,得出的控制字為000007CF。將頻率控制寄存器中寫入00ffffffffff,此數字轉換成十進制為1099511627775,代入到頻率控制字的計算公式中得出可以得到781.25kHz的頻率。用示波器進行測量觀察,得到圖3波形:

16位單片機對AD9854控制的探討

由觀察到的波形可以看出 , update信號的周期為 20μs,輸出波形的頻率為 782. 9kHz,與初始設定值相一致 ,可知 ,實驗程序是正確的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44514

    瀏覽量

    632971
  • AD9854
    +關注

    關注

    12

    文章

    50

    瀏覽量

    28076
收藏 人收藏

    評論

    相關推薦

    基于AD9854的正交掃頻信號源設計

    本文首先闡述了AD9854原理,其次介紹了AD9854引腳功能及工作過程,最后介紹了信號的產生及顯示控制以及系統軟件設計方法。
    發表于 05-18 08:29 ?4773次閱讀
    基于<b class='flag-5'>AD9854</b>的正交掃頻信號源設計

    4*4鍵盤輸入頻率數據,單片機寫入AD9854,頻率在LCD1602顯示

    4*4鍵盤輸入頻率數據,單片機寫入AD9854,頻率在LCD1602顯示,有誰會嗎?不會編程···
    發表于 04-22 16:32

    求430單片機控制ad9854產生6Mhz正弦信號的程序和硬件連接方式

    求430單片機控制ad9854產生6Mhz正弦信號的程序和硬件連接方式
    發表于 05-05 21:48

    求助C8051單片機控制DDS芯片AD9854產生一個線性調頻信號的程序

    本帖最后由 elecfans 于 2015-5-17 16:04 編輯 求大神幫忙 我要用C8051單片機控制DDS芯片AD9854產生一個線性調頻信號,求程序。。。。
    發表于 05-17 12:16

    AD9854產生正交信號的程序分享

    剛買了AD9854芯片,需用單片機控制產生正交信號,求大神給個程序
    發表于 10-31 15:28

    AD9854及其在直擴發射中的應用

    AD9854是美國Analog Device公司生產的一種新型DDS芯片,該器件內含48頻率累加器、48位相位累加器、正余弦波形表、12正交數模轉換器以及調制和
    發表于 04-25 15:54 ?45次下載

    DDS工作原理及基于AD9854的信號發生器的設計

    介紹了用數字方式實現頻率合成技術的基本原理和 DDS 芯片 AD9854 的內部結構及工作模式。設計了一種采用單片機控制 AD9854 為核心的信號發生器, 它具有輸出信號波形種類多、
    發表于 11-16 14:49 ?46次下載
    DDS工作原理及基于<b class='flag-5'>AD9854</b>的信號發生器的設計

    ad9854中文資料匯總(ad9854引腳圖及功能_內部結構及應用電路)

    本文首先介紹了AD9854特征與內部結構框圖,其次介紹了AD9854引腳功能和AD9854的編程,最后介紹了兩款ad9854應用電路圖。
    發表于 05-16 15:17 ?2.5w次閱讀
    <b class='flag-5'>ad9854</b>中文資料匯總(<b class='flag-5'>ad9854</b>引腳圖及功能_內部結構及應用電路)

    基于AD9854產生MSK調制信號詳細說明

    AD9854數字合成器是高集成度的器件。本文首先介紹了AD9854的特征,其次介紹了AD9854構成的信號發生電路,最后介紹了AD9854產生MSK調制信號詳細說明。
    發表于 05-16 15:50 ?4860次閱讀
    基于<b class='flag-5'>AD9854</b>產生MSK調制信號詳細說明

    STM32的AD9854 DDS模塊調試總結

    本文首先介紹了DDS的基本原理和特點,其次介紹了DDS芯片AD9854的概念,最后詳細介紹了STM32的AD9854 DDS模塊調試經驗總結。
    發表于 05-16 16:43 ?1.9w次閱讀
    STM32的<b class='flag-5'>AD9854</b> DDS模塊調試總結

    ad9854單片機程序詳細說明(ad9854結構框圖及電路)

    本文首先介紹了ad9854的結構框圖及特點,其次介紹了ad9854的兩個應用電路圖,最后介紹了ad9854單片機程序詳情。
    的頭像 發表于 05-17 08:32 ?2.2w次閱讀
    <b class='flag-5'>ad9854</b><b class='flag-5'>單片機</b>程序詳細說明(<b class='flag-5'>ad9854</b>結構框圖及電路)

    stm32驅動ad9854程序分享_ad9854構成信號發生器電路

    AD9854數字合成器是高集成度的器件。本文首先介紹了ad9854優勢和特點,其次介紹了ad9854構成的信號發生器電路,最后分享了stm32驅動ad9854程序。
    的頭像 發表于 05-17 09:23 ?1.6w次閱讀
    stm32驅動<b class='flag-5'>ad9854</b>程序分享_<b class='flag-5'>ad9854</b>構成信號發生器電路

    基于FPGA控制AD9854產生正弦波

    本文首先介紹了ad9854的工作原理,其次介紹了兩款AD9854應用電路圖,最后介紹了基于FPGA控制AD9854產生正弦波。
    發表于 05-17 09:53 ?6873次閱讀
    基于FPGA<b class='flag-5'>控制</b><b class='flag-5'>AD9854</b>產生正弦波

    AD9854參考代碼

    AD9854參考代碼
    發表于 03-18 11:07 ?43次下載
    <b class='flag-5'>AD9854</b>參考代碼

    AD9854/AD9852評估板說明

    AD9854/AD9852評估板說明
    發表于 05-11 14:31 ?15次下載
    <b class='flag-5'>AD9854</b>/AD9852評估板說明