发作品签到
专业版

便携多通道函数发生器

工程标签

4.2k
0
0
6

简介

一款简单的多通道函数发生器

简介:一款简单的多通道函数发生器
星火计划2024

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-04-26 11:10:42更新时间:2024-07-08 09:02:49

描述

项目说明

本项目是一款基于FPGA的廉价多通道函数发生器

 

开源协议

未经作者允许,禁止商用。转载或引用需注明原作者与工程链接,有其他需求请发邮件至Defenver@foxmail.com

 

项目相关功能

本函数发生器实现了以下功能:

  • 4通道模拟波形输出,带宽5Mhz,模拟波形刷新率100Mhz,输出精度8bits(MS9708)
  • 4通道模拟波形输出频率可调,刷新率步进可达1Khz
  • 模拟波形支持负压输出,输出摆幅可达±3V
  • 支持输出各种常见波形,频率,幅度可调
  • 带有丰富的人机界面,用户可以利用按键快捷的操作函数发生器

性能指标:

  • 刷新率1KHz-100Mhz
  • 波形输出频率1Hz-10Mhz
  • 输出摆幅可达8V@1MHz,4V@10MHz
  • 4通道独立同步输出,相位可调
  • 4通道可选两路同步时钟源输出
  • 支持输出正弦波,方波,三角波,脉冲,直流输出及校准波形
  • 内置存储器上电可自动读取上次关机前的波形状态
  • 内置温度检测页面可以获取FPGA运行参数
  • 成本低至200¥/pcs,用二手料/减配可进一步降低成本

需要注意的是,本函数发生器由于运行功率过高(主要在DA输出部分),不支持USB供电,只支持DC12V供电

【github代码仓库】

【bilibili演示视频】

项目属性

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

 

项目进度

部分验证成功

  • USB3.0,射频源电路设计出错。由于不对设计指标造成影响,可删除
  • 电流检测电路可删除,实际无多大作用
  • 温度检测电路可删除,改为使用FPGA片内检测电路

设计原理

下图为硬件的框图,将依次介绍内容

PCB为4层板设计,大小小于10*10,可免费打板,进一步降低成本

 

电源部分

由于系统的功耗较高,电源此处采用了12V输入的方式,随后使用TPS82130来降压各电源轨。为了考虑到运放的供电,此处选用了TPS65131作为正负电源供电。具体电源树如下。

每一路电源都有严格的时序要求,框图左下角的数字编号代表上电顺序。

需要注意的是,由于未知原因,TPS65131的官方电路是错误的,下为正确的电路图。

FPGA最小系统

本设计选用了XC7A50T-FTG256作为主控芯片,经过实际开发后,可以使用更加廉价的XC7A35T作为主控芯片。

最小系统可以见原理图的第二页,其中包括以下资源:

    • FPGA核心芯片,启动电路
    • BPI存储器
    • JTAG电路

至于核心原理本文不再赘述,可以参考Xilinx的相关手册查阅

DAC及前端电路

DAC实际焊接的型号是MS9708,可利用DAC908作为替代品,后者频率可以大大提高,且分辨率较MS9708要高。

前端运放选用了ADA4861作为放大器,该放大器为三通道高速运放,除了不支持轨到轨特性,可以完美实现设计的需求。前端电路如下

注意,图中电阻不是实际值,实际值请参考note指示进行修改

由于DAC为电流输出放大器,因此需要经过一个跨阻放大器将电流信号转为电压信号。随后输入到一个低通滤波器滤除高频噪声。最后一级放大电路实现了单电源到双电源转换,并外接了一个可调电阻实现偏置微调,实际使用中可使用校准功能来对波形的偏置进行微调。

时钟电路

FPGA的时钟源有两种,一种为固定时钟源,为50M的晶振输出的时钟,还有一种是可调时钟,由MS5351输出。输出频率可通过IIC来调节。

USB3,PLL输出电路

设计出错,不再介绍。用户复刻工程时可不贴器件或删除布线。

LCD电路

屏幕接口为兼容中景园接口定义的8pin接口。实际选用的屏幕为

注意选择ST7789 IC,不带CS的屏幕。螺丝孔位不对齐是正常现象。

软件说明

软件开发平台为vivado 2020.2,未对其他软件版本做兼容。

本设计软件主要利用blockdesign的方式开发,使用Microblaze处理器控制其他外设来实现函数发生器的功能。每个模块通过AXI4-Lite总线和处理器交互,具体实现原理可见RTL。

程序开发是在Vitis开发的,使用C语音实现对应功能的编程来实现具体功能。由于未引入任何屏幕UI库,主函数代码稍微有些繁琐,但与外设操控相关的代码十分简单。由于本人教学能力有限,无法具体介绍程序内容,烦请看客自行查看代码内容。

烧写程序仅需要编译Vitis工程,随后在Vivado生成MCS文件,存储器选用W25Q128,随后使用Hardware Manager烧录对应的二进制文件即可。

操作方法

KEY1-KEY5可控制页面,其中KEY3无作用。

KEY1的作用为选择,按下该按钮可选择光标选择项。

KEY2的作用为上一个,按下该按钮可选择上一选项。

KEY3的作用为下一个,按下该按钮可选择下一选项。

KEY4的作用为退出,按下该按钮可退出当前选择项。

KEY4与KEY5之间有个小按键,该按键为复位按键。

实物展示

设计注意事项

板子前端和FPGA在正常运行时极其耗电,请添加散热片,并且要用一个风扇对着吹,否则会存在过热烧毁的可能。

 

其他

由于RTL代码使用了ADI的源码,根据协议,本工程及派生工程需遵循GPL2.0协议。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
vitis_export_archive.ide.zip
132
2
p0 (6).zip
103
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

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

底部导航