历史上的今天
返回首页

历史上的今天

今天是:2025年07月14日(星期一)

正在发生

2021年07月14日 | DDS正弦信号发生器

2021-07-14 来源:eefocus

虽然临近考试,还是偷着时间把DDS的初级操作给搞定了,O(∩_∩)O哈哈哈。从搞清理论原理,到下载调试出波形,还真费了点功夫。


这也算从VHDL转战verilog的第一仗吧,把模块化设计小过了把瘾,嘿嘿……


不管这能不能算个项目,但我还是在短时间内弄出来了,至于细节问题还有功能加强,考试之后再说喽!

 

首先还是要理清DDS中的理论计算关系,好的设计总是靠些理论的,呵呵。以输出信号为正弦信号为例好啦,主要关系和公式如下。


我们都知道,输出的正弦信号的相位是:clip_image002,三角函数而已啦!

为把t数字化(量化),选取基准时钟(系统时钟)clip_image004和基准相位(把2clip_image006分成2N等份)clip_image008,从而使得每个相位都有一个量化值,基准相位就是相位量化的精度。


在基准时钟的一个周期内,输出信号相位增量为:

clip_image010

 

这样就可以把相位增量量化为:clip_image012,由于是整数,会产生量化误差。

所以,就可以变换得到输出频率:clip_image014,可知,clip_image016clip_image004[1]是线性关系,clip_image018所起到的作用就是对基准时钟clip_image004[2]进行分频得到输出时钟,且有:

DDS的频率分辨率为:clip_image020 ,即此时clip_image018[1]=1,输出时钟频率最小。

 

DDS的基本工作流程就是通过相位的累加,得到当前的相位值,然后用当前的相位值(转换为ROM地址)进行查表,得到相应的幅值,然后输出。

相位累加器的输入,也称频率字,就是相位增量的量化值clip_image018[2]

其实最终有用的公式就是求频率字的这一个: clip_image023

DDS主要由相位累加器、相位调制器、ROM查找表和DAC。其中,相位调制器用于信号的相位调制,设计波形发生器时可以不用。


由于没有示波器,所以DAC部分也不设计,采用SignalTap II 观察。(示波器?YY下吧!)


DDS的基本原理框图如下;

clip_image024

ROM中的数据量由DAC位数决定,假设精度为10位,则ROM中需要存放一个周期clip_image026的1024个点的数据,而每个点的数据大小由此点的幅度值clip_image028确定。


对ROM的读取时钟频率就是clip_image016[1]。当然ROM的数据要由C或MATLAB得到啦,手动输入的话早就吐血了。

 

这次实验,采用的基准时钟是50MHZ,所取输出时钟是1KHZ。SignalTapII所得波形如下,这波形还算过得去啊:

clip_image029

程序部分倒是没有遇到什么问题,可是一开始居然挂在mif文件上,幸好在群里头遇到高人,用MATLAB重新弄了个,终于得到正确结果!


离场悲剧对DDS工作原理的解释可谓一针见血:

clip_image030

clip_image031


推荐阅读

史海拾趣

Holt Integrated Circuits公司的发展小趣事

除了传统的航空电子解决方案外,Holt还致力于高压LCD显示驱动器的研发。这些产品不仅满足了航空电子设备对高可靠性和高清晰度的需求,还广泛应用于工业过程自动化和井下钻探等领域。Holt的高压LCD显示驱动器以其卓越的性能和稳定性,赢得了众多客户的信赖和好评。

台湾奇力(Chip)公司的发展小趣事

奇力公司自创立之初,就致力于LED芯片的研发与生产。在技术积累方面,奇力公司不断引进先进的生产设备和技术人才,通过自主研发和合作创新,不断提升产品性能和质量。随着技术的突破,奇力公司逐渐在LED芯片市场上崭露头角,以其亮度高、性能稳定的产品赢得了客户的信赖。

GTE Microcircuits公司的发展小趣事
选择合适的复合放大器需要根据具体应用需求来考虑,包括所需的增益、带宽、噪声系数、电源电压等参数。同时,还需要考虑放大器的封装形式、功耗、以及成本等因素。建议在选择时参考数据手册和应用笔记等资料,并结合实际测试来确定最合适的型号。
Apacer公司的发展小趣事

除了产品创新,Apacer宇瞻科技还注重为客户提供量身定制的解决方案。在某次客户系统升级中,宇瞻科技的技术团队发现原有SD卡无法满足大量随机小数据的存取应用,甚至可能缩短SSD使用寿命。于是,宇瞻科技建议客户导入Page Mapping技术,并搭配Smart Read Refresh技术的SD卡,成功解决了客户的存储问题。这一技术突破不仅帮助客户实现了系统升级,也为宇瞻科技赢得了更多的信任和赞誉。

GS Yuasa Battery Sales UK Ltd.公司的发展小趣事

在各大电子展会上,Apacer宇瞻科技也频繁亮相,展示其最新技术和产品。在某次台北世界贸易中心的展会上,宇瞻科技展示了一款高端DDR3内存,其频率高达1600MHz,带宽达到了惊人的12800MB/s。这一产品吸引了众多观众的关注,也进一步彰显了宇瞻科技在内存模组领域的领先地位。

这五个故事只是Apacer宇瞻科技发展历程中的一部分,但它们足以展现出公司从创立到崛起的艰辛与辉煌。在未来的发展中,相信宇瞻科技将继续凭借其卓越的技术实力和持续的创新精神,为电子行业的发展贡献更多力量。

诚芯微(CXW)公司的发展小趣事

在2021年,诚芯微获得了数千万元的Pre-B轮融资,由中信建投和投控东海入股、时代伯乐加投。这笔融资为公司的发展注入了新的动力。同时,公司还完成了股改,正式更名为深圳市诚芯微科技股份有限公司。股改完成后,诚芯微的治理结构更加完善,为公司未来的发展奠定了坚实的基础。

以上故事仅为概述性描述,实际发展过程中可能涉及更多细节和复杂因素。如需更详细的信息,建议查阅相关新闻报道或行业分析报告。

问答坊 | AI 解惑

龙芯中文资料

龙芯资料中文手册! 看看国产IP核心,比价和arm的优缺点!支持国货!好久没上来了,看到大家的回复决定把售价改了!半买半送! [ 本帖最后由 tashanshi 于 2009-4-15 14:57 编辑 ]…

查看全部问答>

内存条能带毒吗?

为什么我加了个512的内存条之后,关机界面变了?…

查看全部问答>

eboot.nb0大小问题

我正在学习bootloader, 想自己改写个eboot试试。 可是生成的eboot.nb0大小为256k,实验箱原来的是88k。 256k的可以烧进去但是启动后没有反应, 谁知道为什么写进去了,却没反应么? …

查看全部问答>

WinCE自带数据库应用问题

以下是自己写的一段小程序,运行的时候总是不能进入到switch语句的分支内,即不会有Refreshing11!的提示。数据库内已经存入数据,只是想在一个ClistCtrl控件中显示其数据。 请问问题出在什么地方? void CTCPClientDlg::RefreshDB() {  & ...…

查看全部问答>

stm8冷启动和热启动的判断

                                 热启动的时候想保持一个变量不变,但是又不能存在eeprom和FALSH中怎么办啊?…

查看全部问答>

omal138处理器的AD模块设计

内容:1系统总体框图设计2、硬件电路实现3 、软件设计4、实验结果分析…

查看全部问答>

为什么我开的捕获中断老是进不去,这是用来测频率的一段程序,请问是哪里出问题了,急

#include unsigned int cap_TAR=0; unsigned int puls_num; unsigned int Freq; void main() {   WDTCTL = WDTPW + WDTHOLD;   P2DIR&=~BIT2;   P2SEL|=BIT2;   P1DIR|=BIT0;   TA0CT ...…

查看全部问答>

PSoC4 Cortex-M0开发板不是今天公布吗

怎么还没有消息啊,今天不是5号吗????…

查看全部问答>

基于CC2541 SensorTag室内环境管理系统

通过板上丰富的传感器,再配合光敏元件,可以很好的测量室内各种环境参数,可以通过接受器接受传感器的数据,然后驱动执行机构调整室内的环境参数,比如可以控制LED光源阵列,调整室内光照和控制窗帘开启或关闭,另外可以驱动加热系统,补水系统, ...…

查看全部问答>

MSP430在CCS开发环境下精确延迟程序!

楼主也是在精确延迟程序是钻研了很久,经常弄不出结果!下面是代码解析!大家有什么问题,可以继续交流!以后再钻研低功耗的问题! #include \"msp430g2553.h\" typedef unsigned int uint; typedef unsigned char uchar; //没想到在CCS下面下 ...…

查看全部问答>