原创 [博客大赛]基于DAC902和DAC7621的DDS系统

2014-8-29 00:41 3291 19 19 分类: MCU/ 嵌入式

笔者做过DDS系统有很多,有直接用数字频率合成芯片做的,也有用单片机做的,也有用FPGA+锁相环做的,也有直接用FPGA+电阻网络做的,更有直接用mcu+da做的。

这里可能最高端的就是射频源FPGA+锁相环做的了。

 

这里笔者需要介绍一下。DDS其实说白了就是有很多歌不同的电压组合而成。大家都学过三角函数吧。三角函数其实就相当于一个钟。让他围绕着某个固定的速度转,而他的投影在下面的长度就相当于一个信号的变化了。这里涉及到DDS的频率控制字以及时钟。频率控制字其实就相当于跨度。这个跨度为下一个时钟的到来需要跳动的相位是多少。不能太小。太小波形就失真了。太大的话频率会降低。就是这么个道理。

 

这里DDS其实很多知识的。这里不过多解释。以后再具体介绍下DDS。这里主要介绍这个信号源是如何被控制的。

笔者这里没有直接讲ADI公司的数字合成芯片比如AD9850 AD9953之类的芯片。因为将芯片对于理解DDS原理并没有太多用。而且随着越来越多的集成芯片的出现。现在的人都只要学会如何用时序就好了。说白了就是看着死板的PDF的时序然后模拟来模拟去。顶多也就是用示波器看时序和延时。对了就没问题。读了又写写了有读。然后波形出来了。你和别人都皆大欢喜。

 

但是你可明白这对于理解他是如何工作的这并没有起到多少作用。虽然说现在的人都追求结果。但是结果又是并不是那么重要。过程反而显得重要。

 

直接的数字频率合成芯片可通过改变频率控制字进而改变频率的变化。另外也可以控制幅度。

 

这里笔者自己做的这个选择2片都是并联型的DA来做信号源。有人问我为何需要2片来做。一片不就行了嘛?起初,自己用普通的0832真的就是用一片做的信号源。频率改变了。当时就是用的普通的MCU控制的。看上去信号还不错。但是后来笔者发现当我想去改变他的幅度的时候出现问题了。当时自以为是的认为幅度是不是应该吧所有的点同时除上某个固定的值再输出然后就整体的改变幅度了。但是后来发现行不通。因为没道理呀。整体的下降多少倍,必然后产生小数部分。小数部分如何用8位的DA来描述呢?这曾经困扰了笔者某段不堪回首的时光。

 

后来无意中想到可以改变,对!就是他。reference。当用另一片DA来控制他的reference不就行了嘛。看DAC的输出公式不就是  VOUT=(reference)*n/(2N次方),其中N为位数。n为输入的值。后来参考过其他的书。真是不谋而合!

就那样。当时手中本来有一片DAC902来着。之前用它来做FPGA输出端的DA的。看到了DAC7621这个带基准4096的芯片,果断没有犹豫,就此搭建起来了这个幅度受控频率受控的信号源。

DAC902是一种高速,digital-to-analog转换(DAC)提供力所能及的一12-bit 分解选项Speed Plus系列高性能转换器

20140829002844130.jpg


902的时序就不用过多解释了。

20140829002918660.jpg


另外值得注意的是他的输出是电流型的。你懂得?电流型。后面一般接放大器或者电感之类的东西。这里笔者用的放大器。就和0832的类似。

若输出有负载。公式为。

20140829003036201.jpg


DAC7621是12位并行输入的。和很多转换器有异曲同工之处。

20140829003321626.jpg


同是都是有CS端和读写端。

时序:

20140829003400710.jpg


原理图:

20140829003516942.jpg


20140829003536785.jpg

20140829003642547.jpg


前面2图在强调下。一片902用来控制可以改变频率的。所谓改变频率就是改变控制器的频率控制字就行了。就是那个所谓的跨度。另外7621用来改变参考的。改变了参考就相当于改变了峰峰值。这就是所谓的DDS了。


这是实验版。后面还基于这想法做了2版。接下来就是处理器和FPGA该处理程序了。这里不限制思维。让大家尽情发挥。

文章评论0条评论)

登录后参与讨论
我要评论
0
19
关闭 站长推荐上一条 /2 下一条