该项目是基于小脚丫STEPV2.1做一个100Msps采样率的简易信号发生器,五向按键实现功能选择,OLED实现菜单显示,有信号输出和同步脉冲两个输出口。
100Msps单通道任意波形发生器3D视图(TopLayer)
100Msps单通道任意波形发生器3D视图(BottomLayer)
===== 板卡调试 =====
- 电路VCC、GND工作正常,AD5611能正常输出,AD9740能输出波形,滤波器滤波效果达到要求。
- 偏置电压与理论值偏差大,因此调试过程我们一直用的单端输出,后期改进方案可以在AD9740输出端加运放跟随,排除AD9740电路对偏置电压电路的影响。
- AD5611输出电压不稳,导致输出波形的幅值不稳定,最后改程序,当AD5611输入变化的时候才将改变值写入,这样AD5611的输出值一直会保持下去直到调节电压。
- AD9740的输出电流达不到20mA,10mA以上的输出测量值远大于理论值,因此AD9740的参考电压我们给定最高的1.65V,此时输出电流10.3mA,故电压调节范围比较窄。
===== FPGA逻辑实现 =====
Debounce_uut:按键消抖模块,输出四路脉冲信号,一路状态信号。
keystateuut:按键信号处理模块,产生频率步进fincrement[25:0]、相位偏移pincrement[25:0]、参考电压vad5611[15:0]以及给软核用来显示的信号cntmenu[1:0]等。
ad5611uut:将参考电压vad5611[15:0]通过SPI时序串行发送出去。
ddsuut:构造相位累加器,调用sinerom表,给并行的AD9740输送数据,并提供其时钟。
mico8u:软核模块,调用OLED显示的C语言程序,将keystateuut传过来的显示信号cntmenu[1:0]、cnt_waveform[1:0]等显示成所对应的格式。
===== 测试报告及说明 =====
频率1HZ,峰峰值1.1V的方波,三角波,正弦波
频率1KHZ,峰峰值1.1V的方波,三角波,正弦波
频率5MHZ,峰峰值0.5V的三角波,正弦波
===== 相关文档 =====
^* 函数发生器FunctionGenerator|:https://zh.wikipedia.org/wiki/%E5%87%BD%E6%95%B0%E5%8F%91%E7%94%9F%E5%99%A8|
^* 信号发生器SignalGenerator |:https://zh.wikipedia.org/wiki/%E4%BF%A1%E5%8F%B7%E5%8F%91%E7%94%9F%E5%99%A8|
^* 数模转换器DAC |:https://zh.wikipedia.org/wiki/%E6%95%B8%E4%BD%8D%E9%A1%9E%E6%AF%94%E8%BD%89%E6%8F%9B%E5%99%A8|
^* 运算放大器OPA |:https://zh.wikipedia.org/wiki/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8|
^* 低通滤波器LowPassFilter |:https://zh.wikipedia.org/wiki/%E4%BD%8E%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8|
^* 有机发光二极管OLED |:https://zh.wikipedia.org/wiki/%E6%9C%89%E6%A9%9F%E7%99%BC%E5%85%89%E4%BA%8C%E6%A5%B5%E9%AB%94|
^* 现场可编程逻辑门阵列FPGA |:https://zh.wikipedia.org/zh-cn/%E7%8E%B0%E5%9C%BA%E5%8F%AF%E7%BC%96%E7%A8%8B%E9%80%BB%E8%BE%91%E9%97%A8%E9%98%B5%E5%88%97|