50 信号发生器
50 信号发生器本工程利用MDY的MP801开发板实现工程功能:的相位累加器、相位幅度转换以及数模转换器DAC,实现DDS 直接数字式频率合成器的功能。产生的波形为连续的两个1.47MHz的正弦波、连续的两个781kHz的正弦波、连续的两个396kHz的正弦波、连续的两个192kHz的正弦波、连续的两个98.4kHz的正弦波以及连续的两个48.3kHz的正弦波。以下是MP801开发板外部接口的示意图:
以下是MP801开发板实现DDS 直接数字式频率合成器的效果图:
想要了解完整的功能,可以观看下面的效果视频 MP801开发板上板视频:点击这里
以下是本工程基于MP801开发板的工程文件
以下是本工程增添代码注释的工程文件
以下是本工程的相关文档
欢迎大家在此帖子里讨论本案例的问题。
化繁为简,讲的很好,dds就这么被解决了 为了完成这个实例,我买了两条线:SMA->BNC 有用的例程 谢谢MDY,专业 学习到了 化繁为简 cnt0:x-1
cnt1:y-1
cnt2:2-1//连续两次
cnt3:6-1//6个波形
cnt3=0 :x=4;y=8 addr = cnt1 * 16 dac_da <=255-sin_data
cnt3=1 :x=4;y=16 addr = cnt1 * 8
cnt3=2 :x=4;y=32 addr = cnt1 * 4
cnt3=3 :x=4;y=64 addr = cnt1 * 2
cnt3=4 :x=4;y=128 addr = cnt1 * 1
cnt3=5 :x=8;y=128 addr = cnt1 * 1
模块将一个正弦波采样 1024 个点,然后保存到内部一个 8 比特、1024 深度 的 ROM 当中,
通过改变时序和相位控制器,即可生成不同频率的波形。
FO=FCLK*FCW/65536
FCLK是指本模块工作时钟的周期,FCW 是相位控制字,FO 即 是生成的信号频率。相位控制器 FCW 可以改变每次步进数 M。
设定是 FCW=128,CLK=50M 的时钟频率,由公式计算得出 F0=100KHZ。
实际测量出一个波形时间为 10332000ps,最终波形的频率为 100KHZ。
如果是 FCW=128,CLK=100M 的时钟频率,由公式计算得出 F0=0.2MHZ。
输出实际测量一个波形时间为 5167188ps,最终波形的频率为 0.2MHZ。
通过对频率控制器的改变来控制波形频率。
产生的波形为
连续的两个1.47MHz的正弦波、FCW=2048
连续的两个781kHz的正弦波、FCW=1024
连续的两个396kHz的正弦波、FCW=512
连续的两个192kHz的正弦波、FCW=256
连续的两个98.4kHz的正弦波、FCW=128
连续的两个48.3kHz的正弦波。FCW=64
对sin_data采样取点,依次,8点,16点,32点,64点, 128点,128点
8点时, 32个时钟周期
16点时, 64个时钟周期
32点时,128个时钟周期
64点时,256个时钟周期
128点时,512个时钟周期
128点时,1024个时钟周期
addr 0 16 32 48 64 80 96 112
sin_data 127 218 254 216 125 35 1 42
dac_da 128 37 1 39 130220 254213
addr 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120
sin_data 127176 218245 254 244 216 17312576 35 9 1 12 42 84
addr 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 687276 8084 88 92 96 100 104 108 112 116 120 124
sin_data 127 152 176 198 218 234 245 252254252 244 232216 196 173 149 100 125 7654 35209 2 1 4 12 25 42 62 84109
......
emm.. ,fcw这边的程序还是有点不太清楚。 这个案列在signaltap上要看什么呀 signaltap要看些什么
页:
[1]