搜索
bottom↓
回复: 27

DDS芯片 AD9833正弦波 顶部略微有些畸形 江湖救急大神们··

[复制链接]

出0入16汤圆

发表于 2019-3-24 16:04:44 | 显示全部楼层 |阅读模式
本帖最后由 射天狼 于 2019-3-24 16:10 编辑

做了一批DDS的板子,同一批次的PCB 元器件也都是 程序也都一样 测量方法也一样
弄了50个左右 啥样的都有
总结分了三类情况
波形几乎完全无失真 A类
波形毛刺多 B类
波形有明显凹陷失真 C类




自己找过问题 没找到

1.拿A类的AD9833换到C类上面  C类板子还是那样没任何改变



做了这么多呐

原理图和PCB








看图
A类



B类


C类
















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出110入109汤圆

发表于 2019-3-24 16:46:44 来自手机 | 显示全部楼层
DDS AD9833/4,好几个仪表/FCT设备客户在用,晚点问问他们还遇到过类似情况,可以邮件我。

出0入16汤圆

 楼主| 发表于 2019-3-24 17:00:19 来自手机 | 显示全部楼层
reflecter 发表于 2019-3-24 16:46
DDS AD9833/4,好几个仪表/FCT设备客户在用,晚点问问他们还遇到过类似情况,可以邮件我。 ...

谢谢啦  忘了说 图里频率是50hz-几百hz比较明显  频率高也有  只是没捕获到 表现出来为波形上下跳动

出0入442汤圆

发表于 2019-3-24 17:10:03 来自手机 | 显示全部楼层
射天狼 发表于 2019-3-24 17:00
谢谢啦  忘了说 图里频率是50hz-几百hz比较明显  频率高也有  只是没捕获到 表现出来为波形上下跳动 ...

上下抖动?首先确保你电源是不是ok?示波器有没有接到正确的地上?你可以开带宽限制,然后检查是不是50hz工频叠加。

出0入16汤圆

 楼主| 发表于 2019-3-24 17:37:07 来自手机 | 显示全部楼层
wye11083 发表于 2019-3-24 17:10
上下抖动?首先确保你电源是不是ok?示波器有没有接到正确的地上?你可以开带宽限制,然后检查是不是50hz ...

嗯 电源正常 示波器看过电源底噪 很低  过的7805 又过1117  示波器正确接地 用的高分辨率模式 用dmm7510的表也看过 和示波器一样 干扰不是工频干扰  都是同一个环境连续测试出来的结果

出0入0汤圆

发表于 2019-3-24 18:00:29 | 显示全部楼层
LZ的工具都是最好的,,,,绝对是个学校

出0入16汤圆

 楼主| 发表于 2019-3-24 18:07:49 | 显示全部楼层
RAMILE 发表于 2019-3-24 18:00
LZ的工具都是最好的,,,,绝对是个学校

这示波器搁以前还行 现在新出的性能比这个猛 还便宜 其他的表倒买的是相对比较新款的 不过是公司的 不是学校

出0入442汤圆

发表于 2019-3-24 21:31:58 来自手机 | 显示全部楼层
射天狼 发表于 2019-3-24 17:37
嗯 电源正常 示波器看过电源底噪 很低  过的7805 又过1117  示波器正确接地 用的高分辨率模式 用dmm7510 ...

是不是正弦表写的不对?你好好查查写入时序。它不是标准iic。

出0入0汤圆

发表于 2019-3-24 21:36:38 | 显示全部楼层
感觉你的A类也不太正常,只是比B稍微好点而已。

出0入16汤圆

 楼主| 发表于 2019-3-24 22:52:08 | 显示全部楼层
xjmlfm1 发表于 2019-3-24 21:36
感觉你的A类也不太正常,只是比B稍微好点而已。

确实是 不过A类 算是凑凑合合可以用吧
也是奇怪都是波峰不行  波谷啥事没有


出0入16汤圆

 楼主| 发表于 2019-3-24 22:56:34 | 显示全部楼层
wye11083 发表于 2019-3-24 21:31
是不是正弦表写的不对?你好好查查写入时序。它不是标准iic。

代码如下


  1. /*
  2. *********************************************************************************************************
  3. *        函 数 名: AD9833_WaveSeting
  4. *        功能说明: 向SPI总线发送16个bit数据
  5. *        形    参: 1.Freq: 频率值, 0.1 hz - 12Mhz
  6.                           2.Freq_SFR: 0 或 1
  7.                           3.WaveMode: TRI_WAVE(三角波),SIN_WAVE(正弦波),SQU_WAVE(方波)
  8.                           4.Phase : 波形的初相位
  9. *        返 回 值: 无
  10. *********************************************************************************************************
  11. */
  12. void AD9833_WaveSeting(double Freq,unsigned int Freq_SFR,unsigned int WaveMode,unsigned int Phase )
  13. {

  14.                 int frequence_LSB,frequence_MSB,Phs_data;
  15.                 double   frequence_mid,frequence_DATA;
  16.                 long int frequence_hex;

  17.                 /*********************************计算频率的16进制值***********************************/
  18.                 frequence_mid=268435456/25;//适合25M晶振
  19.                 //如果时钟频率不为25MHZ,修改该处的频率值,单位MHz ,AD9833最大支持25MHz
  20.                 frequence_DATA=Freq;
  21.                 frequence_DATA=frequence_DATA/1000000;
  22.                 frequence_DATA=frequence_DATA*frequence_mid;
  23.                 frequence_hex=frequence_DATA;  //这个frequence_hex的值是32位的一个很大的数字,需要拆分成两个14位进行处理;
  24.                 frequence_LSB=frequence_hex; //frequence_hex低16位送给frequence_LSB
  25.                 frequence_LSB=frequence_LSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位
  26.                 frequence_MSB=frequence_hex>>14; //frequence_hex高16位送给frequence_HSB
  27.                 frequence_MSB=frequence_MSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位

  28.                 Phs_data=Phase|0xC000;        //相位值
  29.                 AD9833_Write(0x0100); //复位AD9833,即RESET位为1
  30.                 AD9833_Write(0x2100); //选择数据一次写入,B28位和RESET位为1

  31.                 if(Freq_SFR==0)                                  //把数据设置到设置频率寄存器0
  32.                 {
  33.                          frequence_LSB=frequence_LSB|0x4000;
  34.                          frequence_MSB=frequence_MSB|0x4000;
  35.                          //使用频率寄存器0输出波形
  36.                         AD9833_Write(frequence_LSB); //L14,选择频率寄存器0的低14位数据输入
  37.                         AD9833_Write(frequence_MSB); //H14 频率寄存器的高14位数据输入
  38.                         AD9833_Write(Phs_data);        //设置相位
  39.                         //AD9833_Write(0x2000); /**设置FSELECT位为0,芯片进入工作状态,频率寄存器0输出波形**/
  40.             }
  41.                 if(Freq_SFR==1)                                //把数据设置到设置频率寄存器1
  42.                 {
  43.                          frequence_LSB=frequence_LSB|0x8000;
  44.                          frequence_MSB=frequence_MSB|0x8000;
  45.                         //使用频率寄存器1输出波形
  46.                         AD9833_Write(frequence_LSB); //L14,选择频率寄存器1的低14位输入
  47.                         AD9833_Write(frequence_MSB); //H14 频率寄存器1为
  48.                         AD9833_Write(Phs_data);        //设置相位
  49.                         //AD9833_Write(0x2800); /**设置FSELECT位为0,设置FSELECT位为1,即使用频率寄存器1的值,芯片进入工作状态,频率寄存器1输出波形**/
  50.                 }
  51.                
  52.                 /*显示处理函数*/

  53.                 if(WaveMode==TRI_WAVE) //输出三角波波形
  54.                 {
  55.                          AD9833_Write(0x2002);
  56.                         //先写入显示缓冲区
  57.                         //sprintf(string,"%s%.1fHz","",Freq);
  58.                 }
  59.                 if(WaveMode==SQU_WAVE)        //输出方波波形
  60.                 {
  61.                         AD9833_Write(0x2028);
  62.                         //先写入显示缓冲区
  63.                         //sprintf(string,"%s%.1fHz","",Freq);

  64.                 }
  65.                 if(WaveMode==SIN_WAVE)        //输出正弦波形
  66.                 {
  67.                         AD9833_Write(0x2000);
  68.                         //先写入显示缓冲区
  69.                         //sprintf(string,"%s%.1fHz","",Freq);

  70.                 }
  71. //LCD_DisplayStringLine(Line6,"V:2.73V");
  72. }
复制代码


出0入0汤圆

发表于 2019-3-24 23:28:53 | 显示全部楼层
9833不用写正弦表,程序没有啥特别讲究。看楼主的图估计后级放大有问题,可用示波器逐级测试

出0入149汤圆

发表于 2019-3-25 06:38:07 来自手机 | 显示全部楼层
运放的问题,看看ad9833的输出级有没有这个畸变。

出0入16汤圆

 楼主| 发表于 2019-3-25 09:08:46 | 显示全部楼层
li4512369 发表于 2019-3-24 23:28
9833不用写正弦表,程序没有啥特别讲究。看楼主的图估计后级放大有问题,可用示波器逐级测试 ...

直接测AD9833输出波形已经是那个样子了  和 后级放大后输出一样


出0入16汤圆

 楼主| 发表于 2019-3-25 09:10:04 | 显示全部楼层
Momo 发表于 2019-3-25 06:38
运放的问题,看看ad9833的输出级有没有这个畸变。

断开R1测试 AD9833输出就已经畸变了 难道是PCB厂家做的有的有问题?

出0入0汤圆

发表于 2019-3-25 09:34:27 | 显示全部楼层
射天狼 发表于 2019-3-25 09:10
断开R1测试 AD9833输出就已经畸变了 难道是PCB厂家做的有的有问题?

50HZ应该不是pcb的事情

出0入16汤圆

 楼主| 发表于 2019-3-25 09:51:38 来自手机 | 显示全部楼层
mdjfish 发表于 2019-3-25 09:34
50HZ应该不是pcb的事情

应该不是50hz 图里的波形都是50hz的  好像看着也不太规律 一会我看看fft频谱图

出0入24汤圆

发表于 2019-3-25 10:24:22 | 显示全部楼层
目测3.3V没有去耦电容


按照Demo板的原理图,效果好得很

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入16汤圆

 楼主| 发表于 2019-3-25 10:24:55 | 显示全部楼层
mdjfish 发表于 2019-3-25 09:34
50HZ应该不是pcb的事情

输出100hz倒是啥也没测到  把频率范围调宽放大放大后 发现有几个 主要是1khz 1-2mV频率的信号












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入16汤圆

 楼主| 发表于 2019-3-25 11:16:57 | 显示全部楼层
20061002838 发表于 2019-3-25 10:24
目测3.3V没有去耦电容

好几个卧槽   竟然好了  临时焊上去几个电容
好久没看到完美的正弦波了
多谢






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入24汤圆

发表于 2019-3-25 12:00:41 | 显示全部楼层
射天狼 发表于 2019-3-25 11:16
好几个卧槽   竟然好了  临时焊上去几个电容
好久没看到完美的正弦波了
多谢

摸石头的典范

出0入0汤圆

发表于 2019-3-25 12:31:26 | 显示全部楼层
射天狼 发表于 2019-3-25 11:16
好几个卧槽   竟然好了  临时焊上去几个电容
好久没看到完美的正弦波了
多谢

唉,成长的烦恼

出0入0汤圆

发表于 2019-3-25 12:46:37 | 显示全部楼层
这低级错误。。。去面壁思过吧

出0入16汤圆

 楼主| 发表于 2019-3-25 13:20:24 | 显示全部楼层
mdjfish 发表于 2019-3-25 12:46
这低级错误。。。去面壁思过吧

还很少见到芯片对去耦电容要求这么高的 以后可得长点心 也不是什么坏事
确实是个低级错误 之前电路都加的 这次给落了

出0入0汤圆

发表于 2019-3-26 07:38:47 | 显示全部楼层
楼主两片AD9833为何不共用时钟?

出0入0汤圆

发表于 2019-3-26 09:04:15 | 显示全部楼层
射天狼 发表于 2019-3-25 11:16
好几个卧槽   竟然好了  临时焊上去几个电容
好久没看到完美的正弦波了
多谢

除了C29、C30旁边多挂了一个电容,没看到比楼主位的板子多电容呀

出0入16汤圆

 楼主| 发表于 2019-3-26 09:38:32 | 显示全部楼层
MYQQ2018 发表于 2019-3-26 09:04
除了C29、C30旁边多挂了一个电容,没看到比楼主位的板子多电容呀

一共多加了仨电容 C29上摞了一个10uF的 C30和C29分别用的一个VCC引脚和一个GND引脚跨接过去的 加了个10uF和0.1uF的

出0入16汤圆

 楼主| 发表于 2019-3-26 09:39:20 | 显示全部楼层
yeshunter 发表于 2019-3-26 07:38
楼主两片AD9833为何不共用时钟?

还可以这样啊  下次试试

回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 20:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表