====== 100Msps单通道DDS任意波形发生器 ======
{{ :step_exp_dac100.png?1000 |}} 100Msps单通道任意波形发生器功能卡物理尺寸及基本功能
{{::501354517414710882.jpg|}} 100Msps单通道任意波形发生器硬件原理图
===== 功能需求 =====
该项目是基于小脚丫STEPV2.1做一个100Msps采样率的简易信号发生器,五向按键实现功能选择,OLED实现菜单显示,有信号输出和同步脉冲两个输出口。
- 实现频率(1HZ~20MHZ)可调
- 峰峰值(0~2V)可调
- 波形(正弦,三角,方波)可选择
- 相位可调
===== 器件选择 =====
- ** DAC:串行DAC*1,并行DAC*1:**
- 串行DAC:AD5611,主要功能是为并行DAC提供输入参考电压REFIO
- 并行DAC:AD9740,数字量转换为模拟量输出到运放OPA380
- ** 运放:OPA830 **
- 登录TI中国官网http://www.ti.com.cn/lsds/ti_zh/amplifiers/op-amps/op-amps-products.page
- 根据需求选择器件
- {{:ti选型01.png?300|}}
- {{:ti选型02.png?300|}}
- 最后选择了OPA830
- ** 显示屏:OLED **
- OLED主要实现输出信号的波形类型、幅度、周期(频率)、相位的显示。
- 综合考虑OLED和LCD的价格和大小后,选择0.96寸的OLED。
- {{https://img.alicdn.com/imgextra/i1/2207691322/TB2vrc4hCFjpuFjSspbXXXagVXa_!!2207691322.jpg_430x430q90.jpg?300}}
- {{https://img.alicdn.com/imgextra/i4/914671862/TB2Ce1biFXXXXcwXXXXXXXXXXXX_!!914671862.jpg?300}}
- ** 按键的选择 :五向按键**
- 按键主要实现对输出信号的波形、幅度、周期(频率)、相位的选择。
- 综合考虑占地面积和界面美观,选择具有上下左右中五个方向的按键。
- {{:fivedirectionkey.png?300|}}
- ** 滤波器: Ellipse Filter(椭圆滤波器)**
- 椭圆滤波器:
- 椭圆低通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。
- 巴斯通滤波器:
- 巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有纹波。
- 两者的对比:Ellipse Filter椭圆滤波器通带阻带逼近特性好!
- {{:椭圆滤波器01.png?300}}{{:椭圆滤波器02.png.jpg?300}}{{:巴特沃斯滤波器01.jpg?300}}
- {{:椭圆滤波器03.png.jpg?300|}}{{:巴特沃斯滤波器03.jpg?300|}}
- {{:椭圆滤波器04.png.jpg?300|}}{{:巴特沃斯滤波器04.jpg?300|}}
===== 原理图说明 =====
{{ :信号发生器.png |}}
* 板子采用PCIE接口形式
* 通过FPGA输出10位并行数据给AD9740,从产生相应模拟信号
* 信号经过OPA830做电压跟随
* OPA830输出信号通过40M椭圆滤波器进行滤波
* 将滤波后的信号通过OPA830进行放大
* FPGA控制串行DAC(AD5611)输出电压做AD9740的参考电压,从而实现信号幅值的调控
* 五向按键控制波形选择,频率、幅值、相位的调整,OLED用于实时显示调整的信息
===== PCB布局布线 =====
{{ :100sp3dpcbdoc.png |}} 100Msps单通道任意波形发生器3D视图(TopLayer)
{{ :100sp3dpcbdoc02.png |}} 100Msps单通道任意波形发生器3D视图(BottomLayer)
===== 板卡调试 =====
- 电路VCC、GND工作正常,AD5611能正常输出,AD9740能输出波形,滤波器滤波效果达到要求。
- 偏置电压与理论值偏差大,因此调试过程我们一直用的单端输出,后期改进方案可以在AD9740输出端加运放跟随,排除AD9740电路对偏置电压电路的影响。
- AD5611输出电压不稳,导致输出波形的幅值不稳定,最后改程序,当AD5611输入变化的时候才将改变值写入,这样AD5611的输出值一直会保持下去直到调节电压。
- AD9740的输出电流达不到20mA,10mA以上的输出测量值远大于理论值,因此AD9740的参考电压我们给定最高的1.65V,此时输出电流10.3mA,故电压调节范围比较窄。
===== FPGA逻辑实现 =====
{{ :网表pb.png |}}
Debounce_uut:按键消抖模块,输出四路脉冲信号,一路状态信号。
key_state_uut:按键信号处理模块,产生频率步进f_increment[25:0]、相位偏移p_increment[25:0]、参考电压v_ad5611[15:0]以及给软核用来显示的信号cnt_menu[1:0]等。
ad5611_uut:将参考电压v_ad5611[15:0]通过SPI时序串行发送出去。
dds_uut:构造相位累加器,调用sine_rom表,给并行的AD9740输送数据,并提供其时钟。
mico8_u:软核模块,调用OLED显示的C语言程序,将key_state_uut传过来的显示信号cnt_menu[1:0]、cnt_waveform[1:0]等显示成所对应的格式。
===== 测试报告及说明 =====
{{:1hz方波.png?400|}}
{{:1hz三角波.png?400|}}
{{:1hz正弦波.png?400|}}
频率1HZ,峰峰值1.1V的方波,三角波,正弦波
{{:新建文件2.png?400|}}
{{:三角波.png?400|}}
{{:正弦波.png?400|}}
频率1KHZ,峰峰值1.1V的方波,三角波,正弦波
{{:5m三角波.png?400|}}
{{:5m正弦波.png?400|}}
频率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|