1.43k likes | 1.58k Views
版权所有,禁止未经授权的商业使用行为. 何宾 Tel : 13911127536 email:hebin@mail.buct.edu.cn. 所有培训资料均可从网站 http://bucteda.eefocus.com 下载. 北京中教仪装备技术有限公司. FPGA. clk. 线性变换电路 ( 运放构成 ). 0-5V. 串行 ADC 转换器. +/-5V. ncs. 5V 供电. 5V 供电. 3.3V 供电. 5V 供电. dout. clk. 0-3V. 串行 DAC 转换器. 变换电路 ( 运放构成 ).
E N D
版权所有,禁止未经授权的商业使用行为 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn 所有培训资料均可从网站 http://bucteda.eefocus.com下载 北京中教仪装备技术有限公司
FPGA clk 线性变换电路 (运放构成) 0-5V 串行ADC 转换器 +/-5V ncs 5V供电 5V供电 3.3V供电 5V供电 dout clk 0-3V 串行DAC 转换器 变换电路 (运放构成) ncs din 基于ISE的数模混合系统设计--系统的结构图
串行ADC转换器 时 钟 数 据 片 选 并行 采样数据 频率检测 峰值检测 串行ADC数据 转换成并行数据 50MHz 1MHz 数据变换 分频器 频 率 频 率 外部 选择 串行DAC数据 转换成并行数据 波形生成 查找表(LUT) 并行数据 时 钟 数 据 数码管驱动 和控制逻辑 片 选 串行DAC转换器 数码管 基于ISE的数模混合系统设计--FPGA的内部结构图
基于ISE的数模混合系统设计--串行ADC转换器 • TLC549串行模数转换器: • 8位分辨率 • 差分参考输入电压 • 转换时间…17us (最大) • 总的访问和转换周期/秒:40,000 • 片上软件可控制的采样和保持功能 • 4MHz的内部系统时钟 • 宽的供电电压:3V-6V
基于ISE的数模混合系统设计--串行ADC转换器(内部结构)基于ISE的数模混合系统设计--串行ADC转换器(内部结构)
时钟下降沿ADC送出数据 8个串行数据 转换成并行数据 在前一个周期 FPGA控制CS为低 FPGA产生1MHz 的时钟给ADC 时钟上升沿FPGA采集数据 基于ISE的数模混合系统设计--串行ADC转换器(时序关系)
基于ISE的数模混合系统设计--串行ADC转换器(推荐的操作条件)基于ISE的数模混合系统设计--串行ADC转换器(推荐的操作条件)
基于ISE的数模混合系统设计--串行DAC转换器 • TLV5620为4路串行数模转换器: • 4个独立的8位电压输出DAC • 串行接口 • 高阻抗参考输入 • 可编程的1或2倍输出范围 • 同步更新 • 3V供电电压
输出级跟随电路 参考电压跟随电路 基于ISE的数模混合系统设计--串行DAC转换器(内部结构)
时钟上升沿FPGA 向DAC提供数据 D7-D0从高到低依次送到串 行DAC的数据接收端 下降沿更新DAC输出 基于ISE的数模混合系统设计--串行DAC转换器(转换公式和时序关系)
线性变换电路 电压跟随器, 提供直流偏置 基于ISE的数模混合系统设计--线性转换电路的设计 +/-5V 2.5V 2.5V 当Vin=-5V,AD_IN=0V 当Vin=5V,AD_IN=5V 结论: 当Vin在-5V~+5V变化时, AD_IN在0V~+5V
到FPGA 的外扩端口 来自前级线性变换电路 基于ISE的数模混合系统设计--串行ADC电路设计 FPGA_CLK: 接FPGA的P120引脚 FPGA_DOUT:接FPGA的P116引脚 FPGA_NCS:接FPGA的P113引脚
基于ISE的数模混合系统设计--串行DAC电路设计 FPGA_DA_DATA: 连接FPGA的第p133引脚 FPGA_AD_CLK:连接FPGA的第p129引脚 FPGA_DA_LDAC:连接FPGA的第p132引脚 FPGA_DA_LOAD:连接FPGA的第p128引脚
基于ISE的数模混合系统设计--串行DAC后级放大电路设计基于ISE的数模混合系统设计--串行DAC后级放大电路设计 • 来自串行DAC的模拟输出电压DA_V_OUT, 经过同 相放大器放大后,得到与输入电压同相变化的输出电压 AV_OUT(可选择使用)。
基于ISE的数模混合系统设计--峰值和频率检测原理基于ISE的数模混合系统设计--峰值和频率检测原理 • 检测准则: 1)先检测并计算输入信号的频率,通过过中值点比较 的方法,计算得到。 2)然后在一个信号周期内,检测信号的最大值和最小 值,通过计算得到峰峰值,然后计算得到信号的幅值
计数区间 峰值搜索区间 最大值 峰值 最小值 频率计数判断结束点 频率计数判断起始点 基于ISE的数模混合系统设计--串行DAC后级放大电路设计 V 5V 2.5V t 0V 2.5V对应的AD采样量化值为:10000000
串行ADC控制模块 采样率分频时钟 频率和峰值计算 频率或峰值显示选择 7段数码管控制器 基于ISE的数模混合系统设计--FPGA的ADC相关设计模块结构
基于ISE的数模混合系统设计--启动ISE13.1软件 点击此处 方法1:在开始菜单下找到ISE的启动图标 方法2:在桌面上找到ISE图标,点击该图标启动ISE13.1软件
点击New Project… 基于ISE的数模混合系统设计--新建工程
输入工程名:adc_test 工程所在的路径 点击“Next”按钮 基于ISE的数模混合系统设计--新建工程
产品范围(product category) 芯片的系列(Family) 具体的芯片型号(Device) 封装类型(Package) 速度信息(speed) 综合工具(Synthesis Tool) 仿真工具(Simulator) 喜欢的语言(VHDL/Verilog) 点击“Next”按钮 基于ISE的数模混合系统设计--新建工程
点击“Finish”按钮 基于ISE的数模混合系统设计--创建一个新工程
工程名 器件名字 生成了空的工程框架 基于ISE的数模混合系统设计--创建一个新工程
基于ISE的数模混合系统设计 --创建新设计文件ioclk.vhd 选中器件名字,点击鼠标右键 选中New Source…
基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd 输入”ioclk”作为 VHDL模块的名字 选择VHDL Module 点击“Next”按钮
点击“Next”按钮 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
点击“Finish”按钮 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd 设计总结
添加代码到ioclk.vhd文件中 生成的ioclk.vhd文件 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
此处添加两条库调用语句 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
此处添加端口声明语句 sysclk: 为外部所提供的50MHz时 钟; clk1MHz: 为1MHz时钟信号,提供 给ADC的串行输入时钟; clk1KHz: 为1KHZ时钟信号,提供 内部的十进制数到BCD码的转换; 此处添加信号声明语句 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
1MHz分频器模块 信号映射语句 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
1kHz分频器模块 信号映射语句 基于ISE的数模混合系统设计--创建新设计文件ioclk.vhd
选中器件名字,点击鼠标右键 选中New Source… 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
输入“control549_serialtoparallel”作为 VHDL模块的名字 选择VHDL Module 点击“Next”按钮 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
点击“Next”按钮 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
点击“Finish”按钮 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
添加代码到ioclk.vhd文件中 生成的control549_ serialtoparallel.vhd文件 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
此处添加两条库调用语句 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
此处添加端口声明语句 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd clkin: 为分频模块所提供的1MHz时钟信号; clr : 外部的复位信号; sdin: 来自串行ADC的串行数据输入; ncs : 送到串行ADC的ncs信号; sclk:送到串行ADC的sclk信号; pdout:送到频率和峰值检测模块的从串行数据流转换成的并行数据 flgo:送到频率和峰值检测模块的时钟信号,与并行数据同步
此处添加内部信号量声明语句 状态声明,有四个状态,ini, work,delay, Finish. 信号映射语句,将输入时钟直接送到ADC的时钟 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
初始状态:控制串行ADC开始进 行准换,并无条件跳转到下一状态。 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd • 这是一个典型的有限自动状态机 FSM,在设计方法上使用的是单进 程的描述方式,即:下状态转移逻 辑、输出逻辑和状态寄存器都写在 一个进程中,这种写法比较直观, 容易理解。
该状态将8位串行数据转换成8位 的并行数据。当接收到8位串行数 据后,ncs=‘1’,停止接收ADC数据; 并且转移到下一个状态 该状态下,将数据从移位寄存器移动 到数据寄存器pdout中,然后转移到 下一个状态, 该状态下,ncs将维持一段高电平周期. 并且,延迟一个时钟周期后,产生flgo的上 升跳变,这个flgo信号和pdout,一起将为 后续模块提供所需要处理的数据. 基于ISE的数模混合系统设计--创建新设计文件control549_serialtoparallel.vhd
选择Simulation选项 选中器件名字,点击鼠标右键 选中New Source… 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd • 为了进一步的验 证该设计的正确性, 将使用行为仿真对 该设计进行软件上 的验证,以确保整个 设计的正确。
输入“cs_549”作为VHDL测试平台的 名字 选择VHDL Test Bench 点击“Next”按钮 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
选择所要仿真的设计文件 点击“Next”按钮 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
点击“Finish”按钮 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
添加代码到cs_549.vhd测试平台文件中 生成的cs_549.vhd文件 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
从cs_549.vhd文件中,删 除这两段代码 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
输入该段代码,为外部 复位CLR信号生成测试向 量。(注意:高为复位) 基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd
基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd基于ISE的数模混合系统设计--仿真新设计文件control549_serialtoparallel.vhd 该段代码将模拟生成串行的输入 数据,共8位。