資料介紹
DDS AD9959應(yīng)用電路和配置源程序
AD9959是一款有四個DDS通道,最高達(dá)500M SPS的數(shù)字頻率合成芯片。
常用電路接法:
主要程序:
#include "config.h"
void delay(void)
{
unsigned int i;
for(i=0;i<10;i++);
}
/*****************************************************************************
功能描述: 加載寄存器,上升延有效
*****************************************************************************/
void run(void)
{
CLR_IOUPDATE;
CLR_IOUPDATE;
CLR_IOUPDATE;
CLR_IOUPDATE;
CLR_IOUPDATE;
CLR_IOUPDATE;
CLR_IOUPDATE;
SET_IOUPDATE;
SET_IOUPDATE;
}
/*****************************************************************************
函數(shù)名: write_a_byte
功能描述: 通過串口寫一個字節(jié),MSB first,上升延有效
*****************************************************************************/
void write_a_byte(uint8 w_data)
{
uint8 i;
for(i=0;i<8;i++)
{
if(w_data & 0x80)
{
SET_SDIO0;
}
else
{
CLR_SDIO0;
}
w_data <<= 1;
SET_DDSSCLK;
CLR_DDSSCLK;
}
}
/*****************************************************************************
函數(shù)名: write_CSR
功能描述: 寫CSR寄存器:
*****************************************************************************/
void write_CSR(uint8 w_data)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x00); //write address 0. CSR's address is 0.
write_a_byte(w_data);
SET_DDSCS;
SET_SDIO3;
}
void write_FR1(uint8 w_data1,uint8 w_data2,uint8 w_data3)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x01); //write address 1. FR1's address is 0x01
write_a_byte(w_data1);
write_a_byte(w_data2);
write_a_byte(w_data3);
SET_DDSCS;
SET_SDIO3;
}
void write_FR2(uint8 w_data1,uint8 w_data2)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x02); //write address 2
write_a_byte(w_data1);
write_a_byte(w_data2);
SET_DDSCS;
SET_SDIO3;
}
void write_CFR(uint8 w_data1,uint8 w_data2,uint8 w_data3)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x03);
write_a_byte(w_data1);
write_a_byte(w_data2);
write_a_byte(w_data3);
SET_DDSCS;
SET_SDIO3;
}
void write_CTW0(uint32 F_word) //Channel Frequency Tuning Word (CTW0)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x04);
write_a_byte(((unsigned char *)(&F_word))[3]);
write_a_byte(((unsigned char *)(&F_word))[2]);
write_a_byte(((unsigned char *)(&F_word))[1]);
write_a_byte(((unsigned char *)(&F_word))[0]);
SET_DDSCS;
SET_SDIO3;
}
void write_CPW0(uint16 P_word) //Channel Phase1 Offset Word (CPW0) (0x05)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x05);
write_a_byte(((unsigned char *)(&P_word))[1]&0x3F);
write_a_byte((((unsigned char *)(&P_word))[0]));
SET_DDSCS;
SET_SDIO3;
}
void write_ACR(uint32 A_word)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x06);
write_a_byte(((unsigned char *)(&A_word))[3]);
write_a_byte(((unsigned char *)(&A_word))[2]);
write_a_byte(((unsigned char *)(&A_word))[1]);
SET_DDSCS;
SET_SDIO3;
}
void write_LSR(uint8 rising,uint8 falling)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x07);
write_a_byte(rising);
write_a_byte(falling);
SET_DDSCS;
SET_SDIO3;
}
void write_RDW(uint32 rising)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x08);
write_a_byte(((unsigned char *)(&rising))[3]);
write_a_byte(((unsigned char *)(&rising))[2]);
write_a_byte(((unsigned char *)(&rising))[1]);
write_a_byte(((unsigned char *)(&rising))[0]);
SET_DDSCS;
SET_SDIO3;
}
void write_FDW(uint32 falling)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(0x09);
write_a_byte(((unsigned char *)(&falling))[3]);
write_a_byte(((unsigned char *)(&falling))[2]);
write_a_byte(((unsigned char *)(&falling))[1]);
write_a_byte(((unsigned char *)(&falling))[0]);
SET_DDSCS;
SET_SDIO3;
}
void write_CTWn(uint8 n,uint32 w_data)
{
CLR_SDIO3;
CLR_DDSCS;
write_a_byte(n+0x09); //CTWn's address is n+0x09.n>=1 and n<=15.
write_a_byte(((unsigned char *)(&w_data))[3]);
write_a_byte(((unsigned char *)(&w_data))[2]);
write_a_byte(((unsigned char *)(&w_data))[1]);
write_a_byte(((unsigned char *)(&w_data))[0]);
SET_DDSCS;
SET_SDIO3;
}
#define PLL_DIV 5
#define systemp_frequency (22.1184*1000000*PLL_DIV)
void set_frequency(uint32 f)
{
unsigned long int temp;
temp=(unsigned long int)f*(0xFFFFFFFF/(float)systemp_frequency+1.0/systemp_frequency);
write_CTW0(temp);
}
uint32 change(uint32 f)
{
unsigned long int temp;
temp=(unsigned long int)f*(0xFFFFFFFF/(float)systemp_frequency+1.0/systemp_frequency);
return temp;
}
void AD9959_init(void)
{
uint16 i;
DDS_DDR = 0xff;
CLR_DDSRESET;
for(i=0;i<10000;i++);
SET_DDSCS;
CLR_DDSSCLK;
SET_SDIO3;
SET_DDSRESET;
for(i=0;i<10000;i++);
CLR_DDSRESET;
for(i=0;i<100;i++);
}
- 完整源程序分享 29次下載
- EVAD959 AD9959 評估板
- AD9959評估板數(shù)據(jù)手冊
- AD9959:內(nèi)置10位DAC的4通道500 MSPS DDS評估板。
- AD9959參考代碼
- FT4未來時鐘的正式版的源程序和電路原理圖免費下載 0次下載
- 4通道500MSPS DDS 10位數(shù)模轉(zhuǎn)換器AD9959數(shù)據(jù)表 29次下載
- 蜂鳴器實驗_電路圖+源程序 53次下載
- PLC電路板源程序 75次下載
- 基于AD9959的高精度多通道雷達(dá)信號源設(shè)計 117次下載
- 紅外線洗手器 含(源程序及電路)
- AD9959,pdf datasheet (4-Channe
- ad9958/ad9959參考電路圖
- 一種基于DDS芯片AD9959的高精度信號發(fā)生器
- ds1302的應(yīng)用電路和匯編源程序
- Xilinx DDS IP核的使用和參數(shù)配置 1255次閱讀
- 什么是DDS?車載以太網(wǎng)—DDS篇詳解 4339次閱讀
- e2 studio環(huán)境下添加源程序到當(dāng)前工程的注意事項 819次閱讀
- 如何擴(kuò)展DDS頻率上限和改善DDS雜散電平的問題 7043次閱讀
- I2C總線驅(qū)動的C語言源程序詳細(xì)說明 5262次閱讀
- 四通道高速直接數(shù)字頻率合成器AD9959的功能特點和應(yīng)用 1w次閱讀
- 利用FPGA器件FLEX EP10K50芯片實現(xiàn)DDS電路的設(shè)計 1328次閱讀
- 連接器是怎么讀懂C源程序的 1531次閱讀
- LDC1000在STM32的程序 LDC1000的STM32驅(qū)動源程序 4229次閱讀
- cc2541中文數(shù)據(jù)手冊及cc2541藍(lán)牙源程序 2.7w次閱讀
- 基于FPGA的三相正弦DDS電路的設(shè)計與實現(xiàn) 1998次閱讀
- TLV3501應(yīng)用電路及其電路圖 3.8w次閱讀
- FPGA和DDS在信號源中的應(yīng)用 4281次閱讀
- 基于DDS的多通道信號源設(shè)計 4881次閱讀
- 報警應(yīng)用電路圖 6148次閱讀
下載排行
本周
- 1EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
- 0.42 MB | 4次下載 | 2 積分
- 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數(shù)據(jù)手冊
- 1.19 MB | 1次下載 | 免費
- 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
- 0.78 MB | 1次下載 | 免費
- 4ZX8002E 觸摸調(diào)光LED集成IC數(shù)據(jù)手冊
- 2.27 MB | 次下載 | 免費
- 5SOD-323塑料封裝ESD保護(hù)二極管SD05T系列規(guī)格書
- 1.07 MB | 次下載 | 免費
- 6SOT-23塑料封裝ESD保護(hù)二極管SMxx Series系列規(guī)格書
- 0.93 MB | 次下載 | 免費
- 7高效率整流二極管HER151 THRU HER158數(shù)據(jù)手冊
- 0.54 MB | 次下載 | 免費
- 8低壓降肖特基整流管SL22 THRU SL210數(shù)據(jù)手冊
- 1.03 MB | 次下載 | 免費
本月
- 1三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 2運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 3蘋果iphone 11電路原理圖
- 4.98 MB | 11次下載 | 5 積分
- 4TL494工業(yè)用開關(guān)電源原理圖資料
- 0.22 MB | 10次下載 | 1 積分
- 5常用電子元器件介紹
- 3.21 MB | 8次下載 | 免費
- 6QW2893應(yīng)急燈專用檢測芯片
- 590.40 KB | 4次下載 | 免費
- 7相關(guān)協(xié)議信號總結(jié)
- 0.94 MB | 4次下載 | 免費
- 8EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
- 0.42 MB | 4次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183344次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論