数字系统实验:编码电压

S级任务:
之前的BCD级任务已经完全解决,得到芯片的拨码输入针脚对应编号为205208+213216,而输出数值的理论值与拨码开关的十进制的函数关系为
Vout=D5.1/256=d0.019921875
但由于示波器误差,电源电压不稳定,放大器工作不稳定等原因,导致实际值与理论值有一个误差,但基本上还是成线性关系
在这里插入图片描述在这里插入图片描述
实验结果:
选定的时钟信号约为250KHz,通过拨码开关输入频率字高八位,在加上”000000000000”构成输入的二十位频率字,通过相位开关输入相位字的高八位,再加上”00”构成输入的十位频率字
输入正弦波信号:
在这里插入图片描述
仿真波形:
在这里插入图片描述
示波器结果:

拨码输入 示波器波形
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

实验分析:
根据之前的B、C、D级实验可以得到DAC0832这个芯片主要进行的是将输入的数字信号转换为模拟信号,也就是说尽管输入的也许是同样的低电平,但输出的会转换为不同的电压值,以此来得到一个连续的变化。
从实验结果中可以看到,输入的是matlab软件(也可以用c语言)生成的标准的正弦波信号mif文件,经过DDS模块后生成标准的正弦波信号。而经过740832后可以看到,转换为了新的正弦波信号,其中频率可调,尽管有信号干扰,但仍旧可以大致波形和理论期望值基本一致。
根据公式F=FW/2NxFc可以得到,输出信号的频率与我所输入的频率字有关,以输入频率字高八位00100000和相位字高八位00000000为例,通过公式计算得到的信号频率为131072*250000/1048576=31250Hz,与示波器提供的实验数据31249.9Hz近乎一致,证明实验成功。
理论值和实际测量到的数值有差距,本人感觉可能有以下几个原因:
1、电源电压不稳定。芯片要求的工作电压是3v,而电源电压很难保证绝对的精确3v
2、放大器工作不稳定。0832芯片产生的电流变化需要通过放大器进行放大才能转换成可观测的电压变化,而这个放大过程也是很不精确的,所以可能会产生部分细小误差。
3、示波器误差。示波器本身可能存在测量误差,比方说触发后的瞬时跳变,表笔接触不良导致信号不稳定等
4、环境空气湿度影响。环境中的湿度可能会影响到电阻阻值的变化,从而产生在一个小范围内的测量误差
经过多次实验得到实验数据还是基本理论上的期望波形,并且频率测试值和公式理论值近乎一致,证明公式正确性,表示实验成功。全部三个要求完成,完整度100%。

实验总结:
我是通过电路图(bdf格式)来实现的,这个实验的第一个难点在于你的mif文件如何生成,我在网上找了很多,都是建议我用matlab软件进行生成,但在我费劲地下载下来后才发现我并不会matlab语言,没办法只好在网上又找了三四个代码才能够生成对应的正确的mif文件。
这个实验的第二个难点在于如何将DDS进行实现。书上给出来了三个代码,经过测试后发现代码有部分问题,没有直接办法进行使用,经过部分细微调整后可以使用;另外,书上的三个代码中包含了顶层实体的代码,相当于给出来了一个完整的工程,所以要注意使用问题,不能再新建新的顶层实体,可以只用另外的两个代码当做模块来写自己的代码。
后来写出来代码,放到板子上,用示波器测量的时候发现信号的干扰很大,一开始是得到了比较标准的方波信号,也可以做到频率和相位可调,因为方波只有高低电平,所以比较容易;然后又开始思考正弦波如何实现,在于三班的几位大佬进行交流之后,发现了自己的代码存在一点问题(将dds的顶层实体作为模块来用,虽然可以实现,方波没有问题,但正弦波有问题),进行修改后发现虽然有很大的干扰,但基本上实现了实验。

发布了275 篇原创文章 · 获赞 160 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/104819739