明德扬吴老师 发表于 2019-9-26 18:43:17

50 信号发生器

50 信号发生器本工程利用MDY的MP801开发板实现工程功能:的相位累加器、相位幅度转换以及数模转换器DAC,实现DDS 直接数字式频率合成器的功能。产生的波形为连续的两个1.47MHz的正弦波、连续的两个781kHz的正弦波、连续的两个396kHz的正弦波、连续的两个192kHz的正弦波、连续的两个98.4kHz的正弦波以及连续的两个48.3kHz的正弦波。
以下是MP801开发板外部接口的示意图:

以下是MP801开发板实现DDS 直接数字式频率合成器的效果图:







想要了解完整的功能,可以观看下面的效果视频 MP801开发板上板视频:点击这里
以下是本工程基于MP801开发板的工程文件

以下是本工程增添代码注释的工程文件
以下是本工程的相关文档


欢迎大家在此帖子里讨论本案例的问题。

dexterous 发表于 2019-11-9 23:51:56

化繁为简,讲的很好,dds就这么被解决了

hyhyx1 发表于 2019-11-10 10:49:56

为了完成这个实例,我买了两条线:SMA->BNC

cheungchou 发表于 2020-1-6 14:35:50

有用的例程

cdc 发表于 2020-3-9 09:43:17

谢谢MDY,专业

凌子NotAtHome 发表于 2020-4-10 17:36:45

学习到了   化繁为简

LingErLingYi_ 发表于 2020-5-28 17:16:17

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这边的程序还是有点不太清楚。

可爱多的我呀 发表于 2021-7-16 21:59:30

这个案列在signaltap上要看什么呀

可爱多的我呀 发表于 2021-7-16 22:28:11

signaltap要看些什么
页: [1]
查看完整版本: 50 信号发生器