发作品签到
标准版

#第四届立创大赛#便携式高速任意波形发生器

工程标签

1.8w
0
0
24

简介

简介:

开源协议

CC-BY-NC-SA 3.0

创建时间:2019-08-22 16:54:58更新时间:2022-01-12 03:49:19

描述

简要介绍作品:
本项目设计了一个非常小型、便携且低成本的任意波形发生器,体积仅为80x44x5mm,比一张信用卡略小,可以轻松揣兜里,支持锂电池供电掏出来即可使用。性能方面DAC波形输出采样率可达到100MSPS,可输出25MHz以下的正弦波和5MHz以下的任意波形,且波形幅度和偏移可调节。
一、作品详情;
本设计使用了MCU+CPLD+SRAM+DAC的构架来实现高速的DDS的结构,使用MCU进行波形运算和波形查找表的生成,使用CPLD配合高速SRAM实现查找表的高速输出,CPLD在接收MCU送来的数据后将数据按着FIFO的方式写入到SRAM,然后再以一定的速率将查找表数据循环输出给DAC,来实现高速且任意波形的输出。

技术参数:
波形采样率:100MSPS
输出通道数:1
最大频率:25MHz
基础波形:正弦波,方波,三角波,锯齿波,SINC脉冲
扩展波形:可自定义
查找表长度:512KB
模拟前端3dB带宽:25MHz
输出波形峰值:小于5MHz:40mVpp5Vpp
小于25MHz:40mVpp
2Vpp
输出波形可偏移范围:-3.3V~+3.3V
输出阻抗:50ohm
输出关断漏电流:1uA
输出关断最大峰值耐压:300V
供电:5V-USB_Mirco输入或内置锂电池

本设计所用到编程软件和EDA工具:
LCEDA
matlab
Filter Solutions
Keil MDK
quartus
Multisim
ModelSim
JFlash
Visual Studio

二、描述作品所面临的挑战及所解决的问题;
目前电子实验室常见的波形发生器(信号源)都为台式,其具有体积大,重量大,功耗高,难于搬动便携使用。而且其价格对于学生、创客和电子爱好者等群体来说难于承受。作为实验室的四大件之一(示波器、信号源、稳压电源、万用表),缺了信号源,对于很多电路的调试都无法给予激励,成了电路调试的瞎子,导致很多实验无法完成。
因此本项目就为了解决这个问题而来,目的是设计一款,性价比好,性能不差却成本低,便携(可以移动供电),使用环境不仅仅局限于实验室的任意波形发生器。虽然相比于商业的成品信号源,在功能和性能上有些差距,但是在现有成本可接受的程度上,已经达到了不错的性能,对于音频级设备调试可以说是游刃有余,对于MHz级别的低速电路也可以胜任。
本设计针对的痛点:
国外不少开源的波形发生器方案,使用MCU直接对接DAC,这样的波形发生器至多有几百KSPS的DAC采样率,只能产生数十KHz的波形,有时候连音频级的应用调试都有些吃力;而本设计相对于MCU直推的方案,突破了MCU的低带宽问题,将波形输出采样率提高2-3个数量级,达到100MSPS,大大提高了波形输出速度;
相对于使用一片集成DDS(比如AD9851,AD9833),这些集成DDS一般只能输出单纯的正弦波和方波,对于复杂波形需求的场合,实在无能为力,但是本设计可以实现任意波形的输出,甚至是用户编程波形的输出;
相比于使用专业FPGA来实现的设计,一片FPGA的价格往往少说上百多则上千,而本设计选择了折中的CPLD方案,成本才几元,虽然在一些高速复杂任务中性能会有所受限,但是却带来了体积的缩小,功耗的降低,以及最重要的成本的降低,可以把bom成本做到两位数,降低了学生、创客等群体拥有波形发生器的门槛。

三、描述作品硬件、软件部分涉及到的关键点;
硬件设计部分,分为四部分:低速人机交互部分、高速数字部分、高性能模拟前端部分和供电部分。
软件设计部分,分为两部分:STM32的程序编写和CPLD的程序编写(使用硬件描述语言Verilog)

硬件部分
1、对于低速人机交互部分,主要由MCU和外围的屏幕按键等人机交互部件组成。
其中屏幕与MCU的连接和CPLD与MCU的连接,都是使用8位并口。
两个三向按键口,支持大拨轮按钮也支持旋转编码器,设计分别连接到定时器2和定时器3的编码器接口。
这部分有一个要点是,因为单片机的IO不够使用,所以使用了AD按键,这个设计可以使用一个IO读取10个按键,电路图如下。
AD按键的设计 各个点按下的电压 可以支持10数个按键
ADKEY.JPG
在程序中实现每1ms读取一次ADC,然后进行消抖和按键服务,可以区别出短按和长按,但是不支持多键同时按下。
2、对于高速数字部分,主要有三个器件组成:CPLD芯片-EPM240,高速SRAM芯片-IS61LV25616AL,和时钟发生芯片-ICS511。
首先是时钟发生,只有高精度、低Jitter的高速时钟的支持,才能保证波形发生的精确;使用的晶振是嘉立创贴片提供的25MHz晶振,厂家是YXC,精度10ppm。使用的PLL芯片为ICS511,该芯片可以提供2-8倍的可编程倍频输出,最高可达200MHz,其抖动性能优秀,绝对时钟周期抖动为+-70ps,单周期时钟抖动为20ps,在本设计中为数字高速系统提供了100MHz的稳定时钟。
其次是高速SRAM芯片,作为查找表的高速缓存,选用了ISSI公司的IS61LV25616AL-10,这是一颗高速异步静态RAM,比起SDRAM而言操作要简单不少,不需要刷新操作,节约了CPLD的内部本来就紧凑的逻辑资源。这颗SRAM的访问接口为256Kx16位,接口访问速度达到10ns,也就是说可以达到200msps的访问带宽,足以支持本设计的DAC数据吞吐量需求,查找表长度512K,也满足了绝大部分波形生成应用的需求。
CPLD芯片为DDS的核心驱动,从获得的时钟逐周期从SRAM中读取查找表数据并输出到DAC,提供稳定精确等间隔的数据更新速率。
DAC芯片选用了ADI公司的AD9708 这是一个8位100Msps的高速DAC,为了方便系列间兼容 芯片封装支持14bit数据 在电路设计中 将14位数据通道都全部链接 作为兼容设计 以后可以升级更高精度的DAC。
3、高性能模拟前端部分 可以说是本项目的灵魂,没有好的模拟前端,就不可能输出干净的波形。
本设计中的模拟前端主要是有四部分功能:DAC输出滤波、信号增益控制、信号偏移控制和输出驱动与保护
根据DAC的原理,DAC输出需要接一个重构滤波器,来消除高阶谐波。因为DAC输出是电流型输出,所以这里设计了一个九阶无源巴特沃兹滤波器来实现重构滤波器。
使用专业滤波器设计软件 设计得到滤波器如下图(因为需要取一定精度的电感电容才能购买到 于是做了近似 所以曲线有所偏移)
9th btwz1.JPG
仿真结果
仿真结果.JPG
3dB衰减频点
3dB衰减频点.jpg
阻带频点
阻带频点.jpg
最终电路设计 使用差分电流结构
LFP.JPG
对应实物设计
9th btwz3.JPG

信号增益控制部分使用了ADI公司的AD603芯片
这是一颗压控可变增益运放,本设计中选用其-11dB至+31dB的增益范围,此时该芯片拥有90MHz的带宽 足够满足设计需求。使用stm32自带的DAC输出后转换为+-1V可以实现信号峰峰值从40mV到5V的数字可控。
信号偏移控制 使用了ADI公司的AD8042高速运放的其中一路
AD8042是一颗轨到轨的高速双运放,有160MHz的3dB带宽和200V/us的摆率,能满足高速信号输出的需求。
实现偏移控制和输出驱动与保护的电路如下图
OUT.JPG
最终的驱动输出驱动进行了一次方向,可以选择设计放大与否,AD8042可以提高高达50mA的输出电流,足够推动常见的负载。
输出开关使用AQY210光耦控制,且有双二极管过载保护。
用于增益控制和偏移控制的电压量都是来自stm32内部自带的DAC,其输出为0-3.3V,而增益控制需要+-1V,偏移控制需要+-3.3V,因此需要一个运放来完成转换。但是这里涉及一个问题,系统供电为+-3.3V,需要耐压7V以上的输入输出轨道轨的运放非常少,确实5.5V耐压的运放,用cmos工艺制成,很容易实现输入输出轨到轨,但是cmos工艺不能耐压太高,高压的运放多为三极管工艺,大部分只能到地轨,能到电源轨的少之又少,找了好久终于找到了安森美的mc33202这款运放,耐压可以到12V,解决了问题。
控制电压映射电路如下
33202.JPG

供电部分 有两种选择 可以选择模拟域+-3.3V 这样可以功耗较低 适合电池使用 模拟域+-3.3V由LDO+负压电荷泵构成
可以选择模拟域+-5V 这样可以功耗会翻翻 适合高性能应用 由宽的输出电压范围 模拟域+-5V由BOOST DCDC构成
通过选焊实现不同功能
对于地的处理 小心谨慎的设计了模拟地和数字地,并在最靠近DAC的地方设计了单点连接模拟数字地
并对关键滤波放大环路设置了完整的地平面且充分接地
GND.JPG

软件部分
单片机的程序编写使用模块化编写,每个波形一个独立模块,这样可以非常方便的增加删减波形,调整波形顺序。也可以很方便的为每个波形定制不同的参数 操作和功能等等,相当的灵活。

因为大赛要求PCB板子上必须有logo,需要图片视频特写logo,而本PCB因为位置特别紧凑,所以大赛logo只能放在了TF卡座封装的下方,所以在参赛期间没有焊接tf卡座。后期对于各种扩展波形,自定义波形之类的波形,都将可以通过TF卡储存并导入使用或者USB直接下发,这是后期的升级目标。

SIN值的查找表使用MATLAB生成
MATLAB代码如下:
MATLAB代码.JPG
代码文件见附件

SINC函数发查找表也使用MATLAB生成
MATLAB代码如下:
SINC MATLB.JPG
代码文件见附件

CPLD程序涉及 使用Verilog硬件描述语言编写,使用ALtera公司的官方EDA开发,QuartusII 13.0.1
下图为顶层部分代码截图
CPLD.JPG
鉴于大部分朋友没有可编程器件的开发经验,此处简单介绍怎么综合和烧录
首先准备下载QuartusII,购买USB Blaster。创建工程 选择器件 添加文件等过程掠过 网上可以找到 教程
点击紫圈编辑引脚关联
点击红圈箭头开始综合布线
点击蓝圈下载
QuartusII.jpg
引脚定义
PIN1.jpg
PIN2.jpg
下载流程
插好USB Blaster 使用JTAG口连接目标板
Blaster的JATG引脚定义
JTAG引脚定义.JPG
点开下载界面
红圈选择要下载文件 篮圈勾选下载选型后点开始 等待下载完成
Doenload.jpg
要下载的文件.pof文件 文件见附件
DL File.jpg

关于上位机
正在开发 开发环境 Visual Studio 用的是C#语言
上位机代码/工程截图
code.JPG
目前就搞了个开头半成品 只是有个架子 还没最终定型,好多显示的参数也还没有敲定
上个半成品图仅供参考,里面的数据不是最终效果,因为大赛马上要截稿了,搞不完了只能后面慢慢搞
半成品.JPG

四、作品图片上传;
PCB打样回来的样子
感谢立创提供的SMT打样服务,省了很多焊接的事情
4.JPG
空板背面
5.JPG
焊接好正面
I3yctE8EESy7bbZrtGbq84J3MBR6YrWeY0rfo2SS.jpeg
焊好背面
6.JPG
装屏幕焊好
2.JPG
握在手里的大小
7.JPG
对比北京交通卡(信用卡)大小
3.JPG

输出性能示意图
最高输出25MHz的正弦波
25MHZ.JPG
200K的正弦波
15.JPG
锯齿波输出
11.JPG
SINC输出
9.JPG
方波输出
10.JPG
三角波输出
12.JPG
阶梯波输出
13.JPG
最小幅度输出
14.JPG

五、作品材料清单;
image.png
BOM表见立创EDA 见附件
六、开源文档;
PCB文件见立创EDA
开源程序和可执行文件见附件
七、演示视频:见附件

设计图

原理图(1 / 3)
PCB

BOM

IDNameDesignatorFootprintQuantity
112MHzX1OSC-SMD_4P-L3.2-W2.5-BL1
220pFC5,C604022
310KR11,R16,R23,R56,R5704025
4100nFC7,C2,C3,C4,C1706035
5W25Q128JVSIQTRU1SOIC-8_208MIL1

附件

序号文件名称下载次数
1
SIN_TABLE.m
41
2
HS_DDS_CPLD.qsf
33
3
HS_DDS_CPLD.pof
34
4
HS_DDS_CPLD.pin
40
5
DDS演示视频.mp4
35
6
SINC_TABLE.m
37
7
DDS开源代码.7z
81
8
BOM_#第四届立创大赛#便携式高速任意波形发生器.csv
43
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航