資料介紹
DDS AD9959應用電路和配置源程序
AD9959是一款有四個DDS通道,最高達500M SPS的數字頻率合成芯片。
常用電路接法:
主要程序:
#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;
}
/*****************************************************************************
函數名: write_a_byte
功能描述: 通過串口寫一個字節,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;
}
}
/*****************************************************************************
函數名: 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++);
}
- 完整源程序分享 28次下載
- EVAD959 AD9959 評估板
- AD9959評估板數據手冊
- AD9959:內置10位DAC的4通道500 MSPS DDS評估板。
- AD9959參考代碼
- FT4未來時鐘的正式版的源程序和電路原理圖免費下載 0次下載
- 4通道500MSPS DDS 10位數模轉換器AD9959數據表 29次下載
- 蜂鳴器實驗_電路圖+源程序 52次下載
- PLC電路板源程序 75次下載
- 基于AD9959的高精度多通道雷達信號源設計 117次下載
- 紅外線洗手器 含(源程序及電路)
- AD9959,pdf datasheet (4-Channe
- ad9958/ad9959參考電路圖
- 一種基于DDS芯片AD9959的高精度信號發生器
- ds1302的應用電路和匯編源程序
- 什么是DDS?車載以太網—DDS篇詳解 2912次閱讀
- e2 studio環境下添加源程序到當前工程的注意事項 542次閱讀
- 如何擴展DDS頻率上限和改善DDS雜散電平的問題 6483次閱讀
- I2C總線驅動的C語言源程序詳細說明 5050次閱讀
- 四通道高速直接數字頻率合成器AD9959的功能特點和應用 1w次閱讀
- 利用FPGA器件FLEX EP10K50芯片實現DDS電路的設計 1198次閱讀
- 連接器是怎么讀懂C源程序的 1462次閱讀
- LDC1000在STM32的程序 LDC1000的STM32驅動源程序 4109次閱讀
- cc2541中文數據手冊及cc2541藍牙源程序 2.6w次閱讀
- java程序編譯后會產生什么 1.5w次閱讀
- 基于FPGA的三相正弦DDS電路的設計與實現 1890次閱讀
- TLV3501應用電路及其電路圖 3.7w次閱讀
- FPGA和DDS在信號源中的應用 4134次閱讀
- 基于DDS的多通道信號源設計 4661次閱讀
- 報警應用電路圖 5894次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多