描述
<p>简要介绍作品:
本项目设计了一个非常小型、便携且低成本的任意波形发生器,体积仅为80x44x5mm,比一张信用卡略小,可以轻松揣兜里,支持锂电池供电掏出来即可使用。性能方面DAC波形输出采样率可达到100MSPS,可输出25MHz以下的正弦波和5MHz以下的任意波形,且波形幅度和偏移可调节。
一、作品详情;
本设计使用了MCU+CPLD+SRAM+DAC的构架来实现高速的DDS的结构,使用MCU进行波形运算和波形查找表的生成,使用CPLD配合高速SRAM实现查找表的高速输出,CPLD在接收MCU送来的数据后将数据按着FIFO的方式写入到SRAM,然后再以一定的速率将查找表数据循环输出给DAC,来实现高速且任意波形的输出。</p>
<p>技术参数:
波形采样率:100MSPS
输出通道数:1
最大频率:25MHz
基础波形:正弦波,方波,三角波,锯齿波,SINC脉冲
扩展波形:可自定义
查找表长度:512KB
模拟前端3dB带宽:25MHz
输出波形峰值:小于5MHz:40mVpp~5Vpp
小于25MHz:40mVpp~2Vpp
输出波形可偏移范围:-3.3V~+3.3V
输出阻抗:50ohm
输出关断漏电流:1uA
输出关断最大峰值耐压:300V
供电:5V-USB_Mirco输入或内置锂电池</p>
<p>本设计所用到编程软件和EDA工具:
LCEDA
matlab
Filter Solutions
Keil MDK
quartus
Multisim
ModelSim
JFlash
Visual Studio</p>
<p>二、描述作品所面临的挑战及所解决的问题;
目前电子实验室常见的波形发生器(信号源)都为台式,其具有体积大,重量大,功耗高,难于搬动便携使用。而且其价格对于学生、创客和电子爱好者等群体来说难于承受。作为实验室的四大件之一(示波器、信号源、稳压电源、万用表),缺了信号源,对于很多电路的调试都无法给予激励,成了电路调试的瞎子,导致很多实验无法完成。
因此本项目就为了解决这个问题而来,目的是设计一款,性价比好,性能不差却成本低,便携(可以移动供电),使用环境不仅仅局限于实验室的任意波形发生器。虽然相比于商业的成品信号源,在功能和性能上有些差距,但是在现有成本可接受的程度上,已经达到了不错的性能,对于音频级设备调试可以说是游刃有余,对于MHz级别的低速电路也可以胜任。
本设计针对的痛点:
国外不少开源的波形发生器方案,使用MCU直接对接DAC,这样的波形发生器至多有几百KSPS的DAC采样率,只能产生数十KHz的波形,有时候连音频级的应用调试都有些吃力;而本设计相对于MCU直推的方案,突破了MCU的低带宽问题,将波形输出采样率提高2-3个数量级,达到100MSPS,大大提高了波形输出速度;
相对于使用一片集成DDS(比如AD9851,AD9833),这些集成DDS一般只能输出单纯的正弦波和方波,对于复杂波形需求的场合,实在无能为力,但是本设计可以实现任意波形的输出,甚至是用户编程波形的输出;
相比于使用专业FPGA来实现的设计,一片FPGA的价格往往少说上百多则上千,而本设计选择了折中的CPLD方案,成本才几元,虽然在一些高速复杂任务中性能会有所受限,但是却带来了体积的缩小,功耗的降低,以及最重要的成本的降低,可以把bom成本做到两位数,降低了学生、创客等群体拥有波形发生器的门槛。</p>
<p>三、描述作品硬件、软件部分涉及到的关键点;
硬件设计部分,分为四部分:低速人机交互部分、高速数字部分、高性能模拟前端部分和供电部分。
软件设计部分,分为两部分:STM32的程序编写和CPLD的程序编写(使用硬件描述语言Verilog)</p>
<p>硬件部分
1、对于低速人机交互部分,主要由MCU和外围的屏幕按键等人机交互部件组成。
其中屏幕与MCU的连接和CPLD与MCU的连接,都是使用8位并口。
两个三向按键口,支持大拨轮按钮也支持旋转编码器,设计分别连接到定时器2和定时器3的编码器接口。
这部分有一个要点是,因为单片机的IO不够使用,所以使用了AD按键,这个设计可以使用一个IO读取10个按键,电路图如下。
AD按键的设计 各个点按下的电压 可以支持10数个按键
<img src="//image.lceda.cn/pullimage/iuAcnLrz6JVZB6dYlzwAnKFlqd8yQh4PmiLKtGQb.jpeg" alt="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输出是电流型输出,所以这里设计了一个九阶无源巴特沃兹滤波器来实现重构滤波器。
使用专业滤波器设计软件 设计得到滤波器如下图(因为需要取一定精度的电感电容才能购买到 于是做了近似 所以曲线有所偏移)
<img src="//image.lceda.cn/pullimage/iBlwM9w9V30CF656DPCwXS7EhGXenlYdlic9wAGA.jpeg" alt="9th btwz1.JPG">
仿真结果
<img src="//image.lceda.cn/pullimage/whjLM2iIdLS1CSISiLFxoMBp12jzvD0LOQ52t9ov.jpeg" alt="仿真结果.JPG">
3dB衰减频点
<img src="//image.lceda.cn/pullimage/75wDOgYLlcYLS1XMtHDaqqozWVro0CN218Hmgdre.jpeg" alt="3dB衰减频点.jpg">
阻带频点
<img src="//image.lceda.cn/pullimage/bkUpqLZnVPViV1bnfBWTqaSQh5gDPBZ1F0HCdqyT.jpeg" alt="阻带频点.jpg">
最终电路设计 使用差分电流结构
<img src="//image.lceda.cn/pullimage/5YUrzwamxppl7JHPBCmJslSDCl3QHFJpludoVjkR.jpeg" alt="LFP.JPG">
对应实物设计
<img src="//image.lceda.cn/pullimage/cwSA2m6W64FNIvA98VrR08lr6lV1jHvYk9v1bkvu.jpeg" alt="9th btwz3.JPG"></p>
<p>信号增益控制部分使用了ADI公司的AD603芯片
这是一颗压控可变增益运放,本设计中选用其-11dB至+31dB的增益范围,此时该芯片拥有90MHz的带宽 足够满足设计需求。使用stm32自带的DAC输出后转换为+-1V可以实现信号峰峰值从40mV到5V的数字可控。
信号偏移控制 使用了ADI公司的AD8042高速运放的其中一路
AD8042是一颗轨到轨的高速双运放,有160MHz的3dB带宽和200V/us的摆率,能满足高速信号输出的需求。
实现偏移控制和输出驱动与保护的电路如下图
<img src="//image.lceda.cn/pullimage/9TIYLxMLrL2QDN7U5ysoJmnWK3VW0vrsNVjbBqGe.jpeg" alt="OUT.JPG">
最终的驱动输出驱动进行了一次方向,可以选择设计放大与否,AD8042可以提高高达50mA的输出电流,足够推动常见的负载。
输出开关使用AQY210光耦控制,且有双二极管过载保护。
用于增益控制和偏移控制的电压量都是来自stm32内部自带的DAC,其输出为0-3.3V,而增益控制需要+-1V,偏移控制需要+-3.3V,因此需要一个运放来完成转换。但是这里涉及一个问题,系统供电为+-3.3V,需要耐压7V以上的输入输出轨道轨的运放非常少,确实5.5V耐压的运放,用cmos工艺制成,很容易实现输入输出轨到轨,但是cmos工艺不能耐压太高,高压的运放多为三极管工艺,大部分只能到地轨,能到电源轨的少之又少,找了好久终于找到了安森美的mc33202这款运放,耐压可以到12V,解决了问题。
控制电压映射电路如下
<img src="//image.lceda.cn/pullimage/t9eQEodJrHvNPHUop12OErM5Fbxe7NZ5tIt95vn4.jpeg" alt="33202.JPG"></p>
<p>供电部分 有两种选择 可以选择模拟域+-3.3V 这样可以功耗较低 适合电池使用 模拟域+-3.3V由LDO+负压电荷泵构成
可以选择模拟域+-5V 这样可以功耗会翻翻 适合高性能应用 由宽的输出电压范围 模拟域+-5V由BOOST DCDC构成
通过选焊实现不同功能
对于地的处理 小心谨慎的设计了模拟地和数字地,并在最靠近DAC的地方设计了单点连接模拟数字地
并对关键滤波放大环路设置了完整的地平面且充分接地
<img src="//image.lceda.cn/pullimage/ohn2ptBUqMu8zryRcwbJ4zozKTohsNrwIkGHFQay.jpeg" alt="GND.JPG"></p>
<p>软件部分
单片机的程序编写使用模块化编写,每个波形一个独立模块,这样可以非常方便的增加删减波形,调整波形顺序。也可以很方便的为每个波形定制不同的参数 操作和功能等等,相当的灵活。</p>
<p>因为大赛要求PCB板子上必须有logo,需要图片视频特写logo,而本PCB因为位置特别紧凑,所以大赛logo只能放在了TF卡座封装的下方,所以在参赛期间没有焊接tf卡座。后期对于各种扩展波形,自定义波形之类的波形,都将可以通过TF卡储存并导入使用或者USB直接下发,这是后期的升级目标。</p>
<p>SIN值的查找表使用MATLAB生成
MATLAB代码如下:
<img src="//image.lceda.cn/pullimage/9mjNYfKNKRZ7cY59mmCa2epHPmdqOmIwdhkLws4X.jpeg" alt="MATLAB代码.JPG">
代码文件见附件</p>
<p>SINC函数发查找表也使用MATLAB生成
MATLAB代码如下:
<img src="//image.lceda.cn/pullimage/ieEE86RLDNqj6yuIDnfGieJRn2QcwhRLqPRqpJzd.jpeg" alt="SINC MATLB.JPG">
代码文件见附件</p>
<p>CPLD程序涉及 使用Verilog硬件描述语言编写,使用ALtera公司的官方EDA开发,QuartusII 13.0.1
下图为顶层部分代码截图
<img src="//image.lceda.cn/pullimage/OrbdfXxXl7SVjbAoaeK0NwRbjIBgwJkbVOC55RPF.jpeg" alt="CPLD.JPG">
鉴于大部分朋友没有可编程器件的开发经验,此处简单介绍怎么综合和烧录
首先准备下载QuartusII,购买USB Blaster。创建工程 选择器件 添加文件等过程掠过 网上可以找到 教程
点击紫圈编辑引脚关联
点击红圈箭头开始综合布线
点击蓝圈下载
<img src="//image.lceda.cn/pullimage/VM7fAazVVqaoWqWwsHYmJHU35ArmpiZbubJMtVWK.jpeg" alt="QuartusII.jpg">
引脚定义
<img src="//image.lceda.cn/pullimage/w2h65sh5WWGmPHkANLupuO6EEUh6Xqw8V5H5us7u.jpeg" alt="PIN1.jpg">
<img src="//image.lceda.cn/pullimage/k6KmEbjLjc0Q8Z3jutaCzZeGTmhdKHqUwirEOuQ5.jpeg" alt="PIN2.jpg">
下载流程
插好USB Blaster 使用JTAG口连接目标板
Blaster的JATG引脚定义
<img src="//image.lceda.cn/pullimage/NQbalKbmu2AojkysV7FZfzCh3WDp5zRsTBRM5XJY.jpeg" alt="JTAG引脚定义.JPG">
点开下载界面
红圈选择要下载文件 篮圈勾选下载选型后点开始 等待下载完成
<img src="//image.lceda.cn/pullimage/VYsAX7hwUSaO1YLoEbKxOrJ7kETWjMQuulxqknVU.jpeg" alt="Doenload.jpg">
要下载的文件.pof文件 文件见附件
<img src="//image.lceda.cn/pullimage/cvPoyVKtZk3Unfk0xQNv7Jfkprh35fxTa8BohgsO.jpeg" alt="DL File.jpg"></p>
<p>关于上位机
正在开发 开发环境 Visual Studio 用的是C#语言
上位机代码/工程截图
<img src="//image.lceda.cn/pullimage/ng9FU2HTlaqorGMO6LGICnDZFd8UK9HRD9UdrtbU.jpeg" alt="code.JPG">
目前就搞了个开头半成品 只是有个架子 还没最终定型,好多显示的参数也还没有敲定
上个半成品图仅供参考,里面的数据不是最终效果,因为大赛马上要截稿了,搞不完了只能后面慢慢搞
<img src="//image.lceda.cn/pullimage/C1lriLCBGeML0gi2PD72VX619X28RS4YPZUkzm6c.jpeg" alt="半成品.JPG"></p>
<p>四、作品图片上传;
PCB打样回来的样子
感谢立创提供的SMT打样服务,省了很多焊接的事情
<img src="//image.lceda.cn/pullimage/XQtBlsVFmFASvuM8gWDwtnEoiAXrCblB6JMnggqh.jpeg" alt="4.JPG">
空板背面
<img src="//image.lceda.cn/pullimage/hDgfqGXIriV2MYkeKLaQmiFN6ZxltXAg9mT0mUZe.jpeg" alt="5.JPG">
焊接好正面
<img src="//image.lceda.cn/pullimage/mmziz0xZ1xsRPq7Po9zUevFzivnGxSD2PkBq6M6z.jpeg" alt="I3yctE8EESy7bbZrtGbq84J3MBR6YrWeY0rfo2SS.jpeg">
焊好背面
<img src="//image.lceda.cn/pullimage/uaVuyRW2XlCU3uMZOYsjuGQ8SKbWcDGBwgeXMJIT.jpeg" alt="6.JPG">
装屏幕焊好
<img src="//image.lceda.cn/pullimage/AFFA4UJG4gnpmqmNgzXI4ccrbfZlAGxIjXdmHk7L.jpeg" alt="2.JPG">
握在手里的大小
<img src="//image.lceda.cn/pullimage/d2q9BmQnnfNrvGYBszJMleMyRFPns4PYlBt5ULtv.jpeg" alt="7.JPG">
对比北京交通卡(信用卡)大小
<img src="//image.lceda.cn/pullimage/vLW7TUiIyGmBdyrQsg3rzpDBdAv6Xbo1tUjj8z8x.jpeg" alt="3.JPG"></p>
<p>输出性能示意图
最高输出25MHz的正弦波
<img src="//image.lceda.cn/pullimage/IYEjqg1HszZ6HXbLU7iBYhtK6MxkkKaCMHufnby4.jpeg" alt="25MHZ.JPG">
200K的正弦波
<img src="//image.lceda.cn/pullimage/lkpU2wtRVxms4mGYbOHM5u8CwyzGzaEOdhBnVQyr.jpeg" alt="15.JPG">
锯齿波输出
<img src="//image.lceda.cn/pullimage/pNtoanKvjUjUvDYKZp7pR7A108Ktyj5r3xVm2AmK.jpeg" alt="11.JPG">
SINC输出
<img src="//image.lceda.cn/pullimage/dC3ruqDUvIVFccqBPO3aWaEkDuqv5rg2XX1ERrOZ.jpeg" alt="9.JPG">
方波输出
<img src="//image.lceda.cn/pullimage/39Y9pUtVB7Fbw6siJG0RltZrlBxzrDjpajjO7YH1.jpeg" alt="10.JPG">
三角波输出
<img src="//image.lceda.cn/pullimage/HPGFZ06BOt7t00cxDFsvBINDH8BbJxaUC9FvRqBG.jpeg" alt="12.JPG">
阶梯波输出
<img src="//image.lceda.cn/pullimage/UgYAUnAVYY1DSvYgXO2zAHNUqW3QEYlWtunieqGe.jpeg" alt="13.JPG">
最小幅度输出
<img src="//image.lceda.cn/pullimage/ZNdlhICbPdeTll2P5puqwPSCG8pxySwjvr0QbO5v.jpeg" alt="14.JPG"></p>
<p>五、作品材料清单;
<img src="//image.lceda.cn/pullimage/TpPAVzwqB7qDUQKZbqfCmmGSIzJsYGnxngsJHnDh.png" alt="image.png">
BOM表见立创EDA 见附件
六、开源文档;
PCB文件见立创EDA
开源程序和可执行文件见附件
七、演示视频:见附件</p>
评论(24)