STM32的AD9854 DDS模块调试该怎么做?

2018-05-17 17:28:10 来源:电子发烧友
标签:

DDS基本原理和特点

1、DDS基本原理

直接频率合成技术实际上是通过将存储的波形数据,通过特定算法,经过高速D/A转换器转换成所需要模拟信号的数字合成技术。其基本原理框图如图1所示。

 

 

由图1可见,其主要由标准参考频率源、相位累加器、波形存储器、数/模转换器等部分组成。其中,参考频率源一般是一个高稳定的晶体振荡器,其输出信号用于DDS中各部件同步工作。当频率合成器正常工作时,在标准频率参考源的控制下(频率控制字K决定了其相位增量),相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满量时就会产生一次溢出,从而完成一个周期性的动作,即合成信号的一个频率周期。累加器的输出地址对波形ROM进行寻址,从而把存储在相位累加器中的抽样值转化成对应的正弦波幅度序列。通过高速D/A变换把数字量变成模拟量,经过低通滤波器进一步平滑并滤掉带外杂散,得到所需的波形。

 

2、DDS实现的正弦信号分析

理想DDS的输出频谱就是指不存在相位舍入误差、幅度量化误差和DAC误差时,系统输出的频谱。这时,整个DDS系统就相当于理想的采样保持电路。其输出信号的频谱结构是以Sa(·)函数为包络的一组离散谱线,如图2(所选fc=200 MHz,fo=40 MHz)所示,只在f=nfc±fO=(n±K/2N)fc处存在离散谱线。

 

 

DDS芯片——AD9854

AD9854数字合成器是AD公司的一款高度集成的DDS器件,其内部集成了双48位频率累加器,双48位相位累加器,正余弦波形表,双12位正交数模转换器,双12位数字倍增器,可编程的基准时钟倍增器以及调制和控制电路,能够在单片机上实现频率调制、相位调制,可编程的幅度调制以及I,Q两路正交调制等多种功能。当AD9854作为一个精确的时钟源时,它能产生高稳定度,频率一相位一幅度均可编程的正弦和余弦输出。其主要特点有:

 

工作频率高 其工作频率高达300 MHz,其电路结构允许产生频率达到150 MHz的同时正交输出信号。相位截断到17位保证了优良的无杂散信号动态范围(SFDR)。

 

频率分辨率高 其创新的高速DDS核提供了48位的频率分辨率(当SYSCLK为300 MHz时有1μHz的调节分辨率)。

 

可编程的基准时钟倍增器 AD9854的可编程的4&TImes;~20&TImes;的REFCLK倍增器电路在内部从一个低频的外部参考时钟产生300 MHz的系统时钟,节省了用户的花费,减小系统时钟源的难度。

 

内部集成高性能DAC 两个12 b/300 MHz的DAC使输出信号的信噪比(SNR)满足要求。

 

简单的高速串、并行数据接口 并行口的数据传输速率达到100 MHz,串行口也有10 MHz的速度,频率转换时间最低能达到10 ns。

 

多种工作模式 有五种可编程的工作模式:单音调模式、非斜升FSK、斜升FSK、线性调频和BPSK,在使用中可以根据不同的需要进行转换。

 

STM32的AD9854 DDS模块调试

最近一段时间因为比赛需要自己制作信号源,于是在某宝上选用了AD9854 DDS模块,内部结构就不介绍了,手册上都有。该模块可以产生I、Q两路正交输出信号,即一路正弦一路余弦信号,还有一路比较器的输出信号,即方波信号。如果对输出信号幅度没要求的话也可以选择AD9851 这个模块还是比较经典的。调试方法与9854类似。我采用的是串行通信模式,比较节省IO口。 首先,对AD9854进行初始化,根据手册中时序图进行代码编写,串行模式下S/P必须接低电平,其余功能IO口设置的输出输入分别为推挽输出模式和上拉输入模式。初始化程序:

[html] view plain copy《span style=“font-size:18px;”》void AD9854_Init_S(void)

{

AD9854_M_Reset_H();

AD9854_SP_L();

AD9854_SCLK_L();

AD9854_SDIO_L();

AD9854_IO_UD_CLK_L();

AD9854_CS_H();

AD9854_IO_Reset_H();

delay_int(10);

AD9854_M_Reset_L();

delay_int(10);

DATA[3]=0X00;

DATA[2]=0X4a; //10倍频

DATA[1]=0X00;

DATA[0]=0X60;

AD9854_Send_Data(0x07,DATA);

}《/span》

 

其次,开始给寄存器对应地址写值,串行通信地址对应0x00~0x0B,并行通信写地址方式与串行有所区别,具体参考手册。简单的频率幅度控制的话,关心的地址只有0x02(I通道频率控制地址) 0x03(Q通道频率控制地址) 0x07(倍频地址) 0x08(I通道幅度控制地址) 0x09(Q通道幅度控制地址)。

 

寄存器写值先写低位,在写高位。

 

0X07地址一共4个字节,写值为DATA[3]=0X00;DATA[2]=0X4a;DATA[1]=0X00;DATA[0]=0X60;如果只修改倍频系数的话只需要修改DATA[2]的值(范围4-20倍,实际最大10倍频),若要其他功能对照手册修改对应地址的值即可。 0x02地址一共6个字节,100M对应频率字为DATA[0]=55;DATA[4]=55;DATA[3]=55;DATA[2]=55;DATA[1]=55;DATA[0]=55;换算为16进制数后1M=940000000000;写值后只需进行移位送入对应地址,方便以后频率步进,扫频功能。0x03同。有人就会问了:这里频率设置了为什么还要设置倍频系数呢?关于倍频系数,如果输出频率比较高,而倍频系数比较小的话,输出波形会失真,因此倍频系数根据你输出的频率要进行相应的设置。频率设置函数代码如下:

[html] view plain copy《span style=“font-size:18px;”》void AD9854_SetFre(long long fre) //最高输入为2^48

{

DATA[5]=(u8)(fre》》40);

DATA[4]=(u8)(fre》》32);

DATA[3]=(u8)(fre》》24);

DATA[2]=(u8)(fre》》16);

DATA[1]=(u8)(fre》》8);

DATA[0]=(u8)fre;

AD9854_Send_Data(0x02,DATA);

AD9854_Send_Data(0x03,DATA);

}//若要I、Q输出不同频率,0X03输入值重新定义个数组即可。《/span》

0x08地址一共2个字节,经实测10mV=450;幅度设置函数代码如下:

[html] view plain copyvoid AD9854_SetSine(u16 Shape)//最高输入2^16

{

unsigned char A[2]={0};

A[1]=Shape》》8;

A[0]=Shape&0XFF;

AD9854_Send_Data(0x08,A);

AD9854_Send_Data(0x09,A);

}//若需两路不同幅度输出,参照上面频率控制。

 

这些步骤完成后,连线应该会输出你想要的信号,但是可能会出现恒定输出某个频率,并且波形很不光滑有许多台阶,无论如何修改倍频系数,输出不会发生改变,修改频率字输出波形也不会按照你想得那样变化。这个问题我整了好几天,真的很是无奈,要求外部5V供电,刚开始用电脑USB供电以为输入电流小而导致,后来改用稳压电源5V供电,电流2A,还是没有任何改善,9854模块上的GND与单片机的GND是接着的,后来才发现,两个GND之间存在电压差,并没有实现真正的共地,导致芯片工作不正常。

 

解决方法:外部5V供电的同时将9854模块上的3.3V供电也接到单片机上3.3V电压处,这样应该是构成了回路,GND才实现了真正的共地,问题解决。 9854这个模块还是很好用的,初始化时序没问题的话,只要在对应地址写值就可以实现你想要的输出了。并行通信的话,时序对了,跟串行地址写值稍微有点区别,也不难,参照手册即可。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
如何在MCU内完成一次ADC?
如何在MCU内完成一次ADC?

STM32的优点在哪里?除去宣传环节,细细分析,STM32时钟不算快,72MHZ,也不能扩展大容量的RAM FLASH,同样没有DSP那样强大的指令集。它的优势在哪里呢?

在这个拼生态系统的年代,STM32家底还算殷实?
在这个拼生态系统的年代,STM32家底还算殷实?

生态系统原意是指在一定的地域内,生物与环境形成的统一的整体。随着经济社会的发展,现在我们提到生态系统更多的是讲企业和合作伙伴服务用户所形成的产业链,生态系统的强大也反衬出企业的强大。今年的STM32中国峰会,意法半导体(以下简称:ST)携手合作伙伴一起为我们展示了ST MCU的生态系统。

STM32中国峰会继续聚焦物联网,MCU开始拼生态系统?
STM32中国峰会继续聚焦物联网,MCU开始拼生态系统?

北京时间2018年4月25日,一年一度的STM32中国峰会暨粉丝狂欢节在深圳举办,意法半导体和生态系统合作伙伴共同发布主题演讲,探讨物联网前沿科技发展和重要应用。

意法半导体在2018年德国法兰克福国际照明展上展出让智能楼宇设备变得更纤薄的连接方案

在2018年德国法兰克福国际照明展上,横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)与Tapko科技公司,联合展出了一个取得工业市场主流标准KNX认证的高集成度且节省空间的楼宇自动化通信连接解决方案。

意法半导体新STM32软件开发工具套件让电机控制设计更快、更容易

通过使最新的STM32 PMSM FOC软件开发套件(SDK)支持STM32Cube开发生态系统,意法半导体进一步简化在STM32* 微控制器上开发先进的高能效电机驱动器的难度。

更多资讯
华芯通服务型芯片“华芯1号”下半年上市,跟高通有啥关系?

5月25日消息,贵州省人民政府与美国高通公司今天下午召开新闻发布会,公布双方在2016年1月组建的合资企业贵州华芯通半导体技术有限公司项目最新进展。

一文读懂骁龙710/骁龙660/骁龙845/Helio P60的区别,联发科有苦说不出?

昨天,高通人工智能创新论坛在北京举行。在会上,高通正式发布了全新的骁龙700系列移动平台。

中国LED厂商竟面临严重库存压力?原因在哪里

据业内人士透露,中国内地两家最大的LED外延片和芯片制造商三安光电和华灿光电,以及中国台湾最大的晶圆代工商晶元光电(Epistar)的库存量都达到惊人的水平。

李力游博士加入Imagination,志在人工智能
李力游博士加入Imagination,志在人工智能

这几天的热点是陆奇离任百度,最直接的结果就是百度的市值一天跌了100亿美金,这也突显出领导人物和关键决策对一个公司发展的重要性。领导人物在任何时代都尤为珍贵,最近在半导体领域很受关注的人事变动就是李力游博士出任Imagination公司CEO,业界听闻也是一片哗然。李力游博士在半导体领域有着30年的行业沉淀,在展讯(紫光展锐)任职期间将公

干货整理!LPC2103定时器中断方式寄存器设置
干货整理!LPC2103定时器中断方式寄存器设置

研究了好长一段时间,LPC210X的定时器,查询方式定时很简单如上面,但中断方式要操作好多寄存器,太麻烦,一直是一头雾水。好不容易理出了思路,现将一段例程粘贴备忘。

Moore8直播课堂
电路方案