【GD32篇】驱动AD7616完成数据采集

这篇具有很好参考价值的文章主要介绍了【GD32篇】驱动AD7616完成数据采集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.AD7616介绍

1.1 概述:

         AD7616 是一款 16 DAS(数据采集系统) ,支持对 16 个通道进行双路同步采样。 AD7616 采用 5 V 单电源供电,可以处理 ±10 V ±5 V 和±2.5 V 真双极性输入信号 ,同时每对通道均能以高达 1 MSPS的吞吐速率和 90.5 dB SNR 采样。利用片内过采样模式可实现更高的SNR 性能(过采样率 (OSR) 2 时, SNR 为92 dB)。输入箝位保护电路可以耐受高达±21 V 的电压。无论以何种采样频率工作 AD7616 的模拟输入阻抗均为 1 MΩ 。它采用单电源工作方式,具有片内滤波和高输入阻抗,因此无需驱动运算放大器和外部双极性电源。该器件均内置模拟输入箝位保护、一个双路 16 位电荷再分配 SAR 模数转换器 (ADC) 、一个灵活的数字滤波器、 2.5 V基准电压源和基准电压缓冲器以及高速串行和并行接口。 AD7616 兼容串行外设接口 (SPI)/QSPI/DSP/MICROWIRE

1.2 产品特性:

16 通道 双路 同步采样输入
可独立选择的通道输入范围
        真双极性 ±10 V ±5 V ±2.5 V
5 V 单模拟电源 V DRIVE 电源电压 2.3 V 3.6 V
完全集成的数据采集解决方案
        模拟输入箝位保护
        具有 1 MΩ 模拟输入阻抗的输入缓冲器
        一阶抗混叠模拟滤波器
        片内精密基准电压及基准电压缓冲器
        双通道 16 位逐次逼近型寄存器 (SAR)ADC
        吞吐速率 2×1 MSPS
        通过数字滤波器提供过采样功能
        灵活的序列器 支持突发模式
灵活的并行 / 串行接口
        SPI/QSPI/MICROWIRE/DSP 兼容
        可选循环冗余校验 (CRC) 错误检查
硬件 / 软件配置
性能
        信噪比 (SNR) 92 dB 500 kSPS 2 倍过采样
        信噪比 (SNR) 90.5 dB (1 MSPS)
        总谐波失真 (THD) −103 dB
        ±1 LSB INL( 典型值 ), ±0.99 LSB DNL 最大值
        模拟输入通道提供 8 kV ESD 额定值
片内自检测功能
80 引脚 LQFP 封装

1.3 引脚配置:

ad7616,M3,单片机,嵌入式硬件

注: 引脚的功能配置详情需查看AD7616数据手册

1.4 时序图

ad7616,M3,单片机,嵌入式硬件
图1.所有接口的通用时序图
ad7616,M3,单片机,嵌入式硬件
图2.复位时序图
ad7616,M3,单片机,嵌入式硬件
参数表1
ad7616,M3,单片机,嵌入式硬件
图3.并行读取时序图
ad7616,M3,单片机,嵌入式硬件
参数表2

        本次学习只使用了AD7616硬件模式下并行接口读取数据,而对于AD7616软件模式、串行接口、并行接口写操作未作介绍。

2.解析数据手册

2.1 引脚连接

35 REFSEL GND DI 使用外部基准电压
36 RESET PB11 DI 复位输入,低有效
37 SEQEN +3.3V DI 通道序列器使能
38 HW_RNGSEL1 GND DI 硬件模式 模拟输入范围±2.5V
39 HW_RNGSEL0 +3.3V DI
40 SER/PAR GND DI 并行接口选择输入
41-48 DB0-7 PD0-PD7 O/I 并行输出
53-60 DB8-15 PD8-PD15
61 WR/BURST +3.3V DI 突发模式使能
62 SCLK/RD PE9 DI 并行数据读取控制输入 如果CS,RD均为逻辑低电平,则使能输出总线
63 CS PE10 DI 片选
64-66 CHSEL0-2 +3.3V DI
67 BUSY
PE12 DO 输出繁忙 CONVST 上升沿之后,此引脚变为逻辑高电平,表示转换过程已开始。 
BUSY 输出保持高电平,直到当前选定通道的转换过程完成为止。BUSY 下降沿表示转换数据正被锁存至输出数据寄存器,稍后便可供读取。数据必须在 BUSY 变为低电平之后读取。当 BUSY 信号为高电平时,CONVST 的上升沿不起作用。
68 CONVST PE11 DI 通道组A/B的转换开始输入 在序列器模式下,当突发模式或过采样模式使能时,为了执行所需数量的转换,只需 CONVST 从低电平变为高电平一次。

注意:未与GPIO连接的引脚,已经与开发板焊死,写代码时不需要为其配置。

2.2工作模式

工作模式(硬件模式或软件模式) 在AD7616退出完全复位时配置 当 RESET 引脚从低电平变为高电平时,HW_RNGSELx 引脚的逻辑电平决定工作模式。HW_RNGSELx引脚具有双重功能。如果 HW_RNGSELx = 0b00,则 AD7616 进入软件模式。 HW_RNGSELx 的任何其它 组合都会将 AD7616 配置为硬件模式 。配置软件模式后,便会忽略 HW_RNGSELx 信号的逻辑电平。配置一种工作模式后,要退出该工作模式并设置另一种工作模式,需要通过RESET 引脚执行完全复位。若选择硬件模式,则所有后续器件配置都是通过引脚控制进行。硬件模式下禁止访问片内寄存器。在软件模式下,接口和基准电压配置必须通过引脚控制进行,但所有后续器件配置只能通过寄存器进行。

2.3数字接口

数字接口选择(并行或串行) 在AD7616退出完全复位时配置 。当RESET 引脚从低电平变为高电平时, SER/PAR 信号的逻辑电平配置该接口。若SER/PAR 信号设为 0 ,则使能并行接口。若SER/PAR 信号设为 1 ,则选择串行接口。

2.4复位功能

AD7616 有两种复位模式:完全或部分。复位模式选择取决于复位低电平脉冲的长度。部分复位要求RESET 引脚保持低电平40 ns到 500 ns 。释放 RESET 50 ns 之后,器件即完全可用,可以启动转换。完全复位要求RESET 引脚保持低电平至少 1.2 μs 。释放RESET 15 ms 之后,器件完成重新配置,可以启动转换。部分复位会重新初始化下列模块
序列器
数字滤波器
SPI
两个 SAR ADC
部分复位完成时,会丢弃当前转换结果。部分复位不会影响软件模式下设置的寄存器值,或硬件和软件模式下存储用户配置的锁存器。部分复位之后,软件模式下需要执行一次伪转换。完全复位会将器件复位至默认上电状态。 AD7616 退出完全复位时 会配置如下内容
硬件模式 或软件模式
内部 / 外部基准电压源
接口类型   (本文为并行接口)
上电时,一旦 V CC V DRIVE 电源均稳定下来,便可释放 RESET信号。完全复位后释放RESET 引脚时, HW_RNGSELx 、REFSEL、 SER/PAR DB4/SER1W 引脚的逻辑电平决定器件配置。
若选择硬件模式,则当RESET 引脚在完全复位模式下从低电平变为高电平时,CRC BURSTEN SEQEN OSx 信号所决定的功能也会被锁存。完成功能配置后,便会忽略这些信号 的变化。在硬件模式下,模拟输入范围(HW_RNGSELx 信号)可在完全或部分复位期间或正常工作期间配置,但硬件/软件模式选择需要完全复位才能重新配置,同时此设置会被锁存。在硬件模式下,退出完全和部分复位时均会查询CHSELx 和HW_RNGSELx引脚,以便执行如下操作
确定要获取哪一个初始模拟输入通道对进行转换。
配置序列器的初始设置。
选择模拟输入电压范围。

2.5 *序列器

AD7616 有一个高度可配置的片内序列器。序列器的功能和配置取决于 AD7616 的工作模式。 在硬件模式下,序列器只能按顺序工作,总是从通道V0A和V0B开始转换,然后依次转换后续各通道,直至配置的最后一个通道。
在硬件模式下,序列器由 SEQEN 引脚和 CHSELx 引脚配置。当 AD7616 退出完全复位时,序列器要么使能,要么禁用。
ad7616,M3,单片机,嵌入式硬件
图4
当序列器使能时, CHSELx 引脚的逻辑电平决定选择哪些通 道在序列中进行转换。
ad7616,M3,单片机,嵌入式硬件
图5

 2.6 *突发序列器

        突发模式下不需要为转换序列中的每个步骤产生一个CONVST脉冲。一个CONVST 脉冲就能转换序列中的每个步 骤。
        突发序列器是一个配合序列器工作的额外特性。若使能突发功能,则一个CONVST脉冲就能启动序列器中配置的所有通道的转换。使用突发功能时,无需为转换序列中的每个步骤产生一个CONVST 脉冲,若禁用突发功能则不然。
硬件突发序列器:
        将BURST 引脚置 1 ,就会在硬件模式下使能突发模式。还要将SEQEN 引脚置 1 以使能序列器。
        在硬件模式下,突发序列器由BURST SEQEN CHSELx 引脚配置。 AD7616 退出完全复位时,突发序列器要么使能,要么禁用。当释放RESET 引脚时, SEQEN 引脚和 BURST 引脚的逻辑电平决定突发序列器是使能还是禁用。释放RESET 引脚后,该功能便固定下来,要退出该功能并设置另一种配置,需要通过RESET 引脚执行完全复位。
        当突发序列器使能时,CHSELx 引脚的逻辑电平决定选择哪些通道在突发序列中进行转换。释放RESET 引脚时的 CHSELx 引脚状态决定要在序列中转换的通道初始设置。要在复位后重新
配置选定进行转换的通道,请将 CHSELx 引脚设为所需的设置并保持下一个BUSY 脉冲时间。
ad7616,M3,单片机,嵌入式硬件
图6.BURST序列器硬件模式

 3. 驱动代码编写

 3.1 配置引脚功能

        配置AD7616引脚功能时需要注意,BUSY引脚类型为DO(只具备输出功能),而对于主芯片(GD32)来说,只需要配置为输入模式即可。而AD7616数据总线DB0-DB15为数字输出,对于主芯片而言并非模拟输入,而是数字输入(因为AD7616通过模拟输入引脚采集模拟数据,芯片内部已经将模拟量转换为数字量)。

//GPIO引脚初始化
void AD7616_PinInit(void)
{
	gpio_init(GPIOE,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_9|\
						GPIO_PIN_10|GPIO_PIN_11);//通用推挽输出
	gpio_init(GPIOE,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_12);//浮空输入
	gpio_init(GPIOB,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_11);//通用推挽输出
	
	gpio_init(GPIOD,GPIO_MODE_IPU|GPIO_MODE_IPD,GPIO_OSPEED_50MHZ,GPIO_PIN_ALL);//PD所有引脚为上下拉输入
}
//配置BUSY引脚外部中断
void AD7616_BUSY_ExtiConfig(void)
{
	gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOE,GPIO_PIN_SOURCE_12);//选择gpio引脚中断源
	exti_init(EXTI_12,EXTI_INTERRUPT,EXTI_TRIG_FALLING);//下降沿触发
	exti_interrupt_flag_clear(EXTI_12);//清除中断标志位
	exti_interrupt_enable(EXTI_12);//启用中断线
}

3.2 AD7616初始化配置

  本文使用的主芯片(GD32F10x)时钟频率为108MHZ,

而延时函数AD7616_Delay_9ns(uint32_t ns)只是通过while循环做空操作。

/*
	\brief:	AD7616复位功能配置
	\param:	mode : 复位模式
				AD7616_ALL_RESER :完全复位
				AD7616_PART_RESER :部分复位
	\retval:	none
*/
void AD7616_Reser(uint8_t mode)
{
	switch(mode)
	{
		case AD7616_ALL_RESER: //完全复位
			 AD7616_RESET_0;
			 AD7616_Delay_9ns(140);
			 AD7616_RESET_1;
			 delay_1ms(15);
			 break;
		case AD7616_PART_RESER: //部分复位
			 AD7616_RESET_0;
			 delay_1us(40);
			 AD7616_RESET_1;
			 AD7616_Delay_9ns(5);
			 break;
		default:
			 break;
	}
}

//AD7616初始化
void AD7616_Init(void)
{
	AD7616_PinInit();//引脚初始化
	AD7616_BUSY_ExtiConfig();//配置BUSY引脚外部中断
	//AD7616_RESET_1;
	//AD7616_Reser(AD7616_PART_RESER);//部分复位
	AD7616_Reser(AD7616_ALL_RESER);//完全复位
    //未使能输出总线
	AD7616_RD_1;
	AD7616_CS_1;
    AD7616_CONVST_0;//拉低CONVST电平
}

3.3启动一次转换

//AD值转换为实际温度值
float AD7616_ad_TO_temp(uint16_t i,const uint16_t ad)
{
	return (float)(AD7616_CH_member[i].A*ad*ad + AD7616_CH_member[i].B*ad + AD7616_CH_member[i].C);
}
/*
	AD7616转换函数
*/
void EXTI10_15_IRQHandler(void)
{
	if(RESET!=exti_interrupt_flag_get(EXTI_12))
	{
		exti_interrupt_flag_clear(EXTI_12);//清除中断标志位
		uint16_t i;
        AD7616_CONVST_0;
		for(i=0;i<AD7616_CHANNEL_VAL;i++)
		{
			//printf("BUSY=%d\n",gpio_input_bit_get(GPIOE,GPIO_PIN_12));//启动转换后BUSY为低电平
            AD7616_CS_0;
			AD7616_RD_0;				//低电平时间>30ns
			AD7616_Data[i]=AD7616_GET_DATA();//读取数据
			AD7616_RD_1;				//高电平时间>10ns
			AD7616_CS_1;
			AD7616_Delay_9ns(3);
		}
		AD7616_READ_STATE=AD7616_STATE_READABLE;//可读
		//AD7616_CONVST_0;
	}
}
//启动转换
void AD7616_StartConvst(void)
{
	memset(AD7616_Data,0,AD7616_CHANNEL_VAL);//清空缓存
	//AD7616_CONVST_0;
	//AD7616_Delay_9ns(1);
	AD7616_CONVST_1;
	//printf("BUSY=%d\n",gpio_input_bit_get(GPIOE,GPIO_PIN_12));//未启动转换时BUSY为高电平
}
/*
	\brief:	启动多次转换,并求取各通道AD平均值
	\param:	*ad 接收AD值的地址
				count 启动次数
	\retval:	ERROR 超时    SUCCESS 成功转换
*/

ErrStatus AD7616_Convst_Average(const uint32_t count)
{
	uint32_t i,j;
	uint32_t sum[AD7616_CHANNEL_VAL]={0};
	for(i=0;i<count;i++)
	{
		AD7616_READ_STATE=AD7616_STATE_UNREADABLE;//不可读
		AD7616_StartConvst();//开始转换
		j=0;
		while(AD7616_READ_STATE!=AD7616_STATE_READABLE)//等待转换完成
		{
			AD7616_Delay_9ns(1);
			j++;
			if(j==500000) return ERROR;//超时
		}
		for(j=0;j<AD7616_CHANNEL_VAL;j++)
		{
			sum[j]+=AD7616_Data[j];
		}
	}
	//取平均值
	for(i=0;i<AD7616_CHANNEL_VAL;i++)
	{
		AD7616_AD[i]=sum[i]/count;
		AD7616_Temp[i]=AD7616_ad_TO_temp(i,AD7616_AD[i]);//转换温度
	}
	return SUCCESS;
}

3.4 头文件

#ifndef _AD7616_H_
#define _AD7616_H_

#include "gd32f10x.h"
#include "flash.h"
#include <string.h>
#include <stdlib.h>
/*
	Pin:
	RD 	-- PE9		
	CS   	-- PE10		片选
	CONVST 	-- PE11		
	BUSY 	-- PE12     
	RESET	-- PB11     
	DB0~DB15 -- PD0~PD15
*/
/* Pin define */
#define AD7616_RESET_0 	gpio_bit_reset(GPIOB,GPIO_PIN_11)
#define AD7616_RESET_1 	gpio_bit_set(GPIOB,GPIO_PIN_11)
#define AD7616_RD_0 	gpio_bit_reset(GPIOE,GPIO_PIN_9)
#define AD7616_RD_1 	gpio_bit_set(GPIOE,GPIO_PIN_9)
#define AD7616_CS_0		gpio_bit_reset(GPIOE,GPIO_PIN_10)
#define AD7616_CS_1		gpio_bit_set(GPIOE,GPIO_PIN_10)
#define AD7616_CONVST_0 gpio_bit_reset(GPIOE,GPIO_PIN_11)
#define AD7616_CONVST_1 gpio_bit_set(GPIOE,GPIO_PIN_11)
#define AD7616_BUSY_1	gpio_bit_set(GPIOE,GPIO_PIN_12)
#define AD7616_BUSY_LEVEL() gpio_input_bit_get(GPIOE,GPIO_PIN_12)
#define AD7616_INPUT_DB(x) 	gpio_input_bit_get(GPIOD,BIT(x))//数据引脚0-15
#define AD7616_GET_DATA() gpio_input_port_get(GPIOD)			//获取PE端口值

#define AD7616_CHANNEL_VAL 16

#define AD7616_ALL_CH 16
#define AD7616_V0A 0
#define AD7616_V0B 1
#define AD7616_V1A 2
#define AD7616_V1B 3
#define AD7616_V2A 4
#define AD7616_V2B 5
#define AD7616_V3A 6
#define AD7616_V3B 7
#define AD7616_V4A 8
#define AD7616_V4B 9
#define AD7616_V5A 10
#define AD7616_V5B 11
#define AD7616_V6A 12
#define AD7616_V6B 13
#define AD7616_V7A 14
#define AD7616_V7B 15

#define AD7616_ALL_RESER 0   //完全复位
#define AD7616_PART_RESER 1  //部分复位
#define AD7616_AD_GET_COUNT 6//转换次数
#define AD7616_STATE_UNREADABLE 0  //转换开始
#define AD7616_STATE_READABLE 1 //可读
/*     parameter     */

/*
	AD7616结构体参数
	temp=A*x*x + B*x + C
*/
typedef struct 
{
	uint32_t number;//通道编号
	float A;        
	float B;
	float C;
}AD7616_parameter;
extern AD7616_parameter AD7616_CH_member[AD7616_CHANNEL_VAL];
extern uint16_t AD7616_Data[AD7616_CHANNEL_VAL];//AD值
extern uint16_t AD7616_AD[AD7616_CHANNEL_VAL];//AD平均值
extern float AD7616_Temp[AD7616_CHANNEL_VAL];//温度值


/* function */
void AD7616_Init(void);
void AD7616_StartConvst(void);//启动转换
ErrStatus AD7616_Convst_Average(const uint32_t count);//启动多次转换并取平均值

#endif

3.5实验结果

         未接温度传感器时,所有通道输出最大值0x7FFF(第15位为符号位)。

ad7616,M3,单片机,嵌入式硬件
图6.16通道AD值

         接入一个热敏电阻时,采集到的AD值便随温度改变,可通过校准,把AD值转换为实际温度。

ad7616,M3,单片机,嵌入式硬件
图7

 4.总结

        本文为学习AD7616采集数据所做,数据手册很长,并不是单看时序图就能完成驱动编写,但看懂了数据手册之后,就会发现代码挺简单的。需要注意的便是BUSY引脚,它只有输出状态,不要被(手动模式)干扰。在CONVST引脚上升沿时,BUSY便会自动变为高电平,数据转换完成时,BUSY变为低电平。

ad7616,M3,单片机,嵌入式硬件

 本文中没有提供主函数代码,需要读取数据时,直接调用

ErrStatus AD7616_Convst_Average(const uint32_t count);启动多次转换函数,然后直接从数组中依次读取数据(AD值或温度值)即可。校准值需要自己实际测量写入。

最后,文章中可能存在着问题,欢迎各位大佬不吝赐教。

                                                                                                                                2022年11月29日文章来源地址https://www.toymoban.com/news/detail-637128.html

到了这里,关于【GD32篇】驱动AD7616完成数据采集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA高速A/D数据采集(AD9226)

    FPGA驱动AD9226采集模拟信号并读取转换结果至寄存器。 文章目录 前言 一、AD9226时序图 二、 具体思路 1. 需求分析 2. 代码示例 总结 AD9226是一种流水线形式的单通道ADC模数转换器。它支持12位宽、65MHz的采样精度和速度。 FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的

    2024年02月16日
    浏览(44)
  • 基于STM32F103C8T6四路AD采集数据显示在oled屏上非DMA传输方式(附百度网盘下载链接)

    本文采用四路AD采集 光照强度、烟雾浓度、一氧化碳、空气质量 等四个物理量,并采用 中位值平均滤波(防脉冲干扰平均滤波法)算法 对偶然出现的脉冲性干扰,消除由其引起的采样值偏差。 STM32F103C8T6有两个ADC,12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,

    2024年02月13日
    浏览(39)
  • ZYNQ+AD8285高速毫米波雷达数据采集系统设计

    传统的毫米波雷达采用 DSP+FPGA 的处理模 块,通过FPGA 增加采集数据吞吐能力,通过 DSP 器件完成数据处理算法。为满足如今毫米波雷达 低功耗小型化的指标要求,同时保证数据接口的 稳定性和速度,本设计提出一种基于 Xilinx 公司的ZYNQ采集系统,具有高集成度,高可靠性的

    2024年02月03日
    浏览(37)
  • 基于ARM+FPGA+AD的多通道精密数据采集仪方案

    XM 系列具备了数据采集仪应具备的“操作简单、便于携带、满足各种测量需求”等功能的产品。具有超小、超轻量的手掌大小尺寸,支持8 种测量模块,还可进行最多576 Ch的多通道测量。另外,支持省配线系统,可大幅削减配线工时。使用时不必担心配线工时或配线错误、断

    2024年02月03日
    浏览(51)
  • RK3588+FPGA+AD+AI的智能数据采集与分析解决方案

    RK3588是瑞芯微新一代旗舰级高端处理器,具有高算力、低功耗、超强多媒体、丰富数据接口等特点。搭载四核A76+四核A55的八核CPU和ARM G610MP4 GPU,内置6.0TOPs算力的NPU。 RK3588+复旦微FPGA方案 有五大技术优势 1. 内置多种功能强大的嵌入式硬件引擎,支持8K@60fps 的 H.265 和 VP9 解码器

    2024年03月26日
    浏览(58)
  • AD9680+JESD204B接口+FPGA FMC高速率数据采集板卡

    板卡概述: 【FMC_XM155】 FMC_XM155 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合 ADC 同步采集 FMC 子卡模 块。 该模块遵循 VITA57.1 规范,可直接与 FPGA 载卡配合使用,板 卡 ADC 器件采用 ADI 的 AD9680 芯片,该芯片具有两个模拟输入通道和两个 JESD204B 输出数

    2024年02月14日
    浏览(48)
  • AM62X+FPGA+AD+vxworks实时操作系统数据采集处理解决方案

    Specification Description 处理器 AM6231 at up to 1.2GHz 操作系统 VXWORKS 存储  DDR4,8GB EMMC 接口 •PrPMC接口 •1个USB2.0 •3路RMII •1路RS485 •1路IRIGB •1路RS232 调试接口 JTAG / COP debug port 工业环境监测设备: Specification Description 处理器 AM6231 at up to 1.2GHz 操作系统 VXWORKS 存储 DDR4,4GB EMM

    2024年02月11日
    浏览(51)
  • 基于dsp+fpga+AD+ENDAC的半导体运动台高速数据采集电路仿真设计(四)

    整个调试验证与仿真分析分三个步骤:第一步是进行 PCB 检查及电气特性测试,主 要用来验证硬件设计是否正常工作;第二步进行各子模块功能测试,包括高速光纤串行 通信的稳定性与可靠性测试, A/D 及 D/A 转换特性测试, EnDat 串行通信相关时序测试 与验证等,主要用来验

    2024年02月01日
    浏览(51)
  • 半导体运动台基于dsp+fpga+ad+endac的高速数据采集FPGA设计(二)

    4 系统 FPGA 程序的设计 4.1 设计方法及逻辑设计概述 4.1.1 开发环境与设计流程 Quartus II 是 Altera 公司综合开发工具,它集成了 FPGA/CPLD 开发过程中所设计 的所有工具和第三方软件接口,支持多时钟分析, LogicLock 基于块的设计,片上可编 程系统 SOPC, 内嵌在线逻辑分析仪 Signal

    2024年02月12日
    浏览(45)
  • 光刻机基于dsp+fpga+ad+endac光纤传输的高速数据采集与伺服接口系统设计(一)

    光刻机双工件台运动控制系统,控制任务相当复杂,要求极高的速度和精度,且设 备体积庞大,各传感器执行器空间距离较远,线缆众多现场电磁干扰严重。 为满足控制系统要求,本文利用 DSP 的高速浮点运算能力、 FPGA 强大的并行处理 能力及光纤通信传输距离远、抗干扰

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包