TI ADS1299使用BUG记录

2023-10-25 20:30
文章标签 使用 记录 bug ti ads1299

本文主要是介绍TI ADS1299使用BUG记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如题,摊上一款应用难度超大的ADS1299

博主正在使用Xilinx Kintex-7作为主控芯片对ADS1299进行数据采集,在开发过程中需要自己设计ADS1299的驱动,发现可供参考的资料和blog比较有限,所以写下这篇博文,用于记录ADS1299开发过程中的各种BUG。后续项目完成会将ads1299_driver.v上传供大家食用,欢迎收藏和关注,帮你找到回家的路。

Q1 买的是ADS1299,为啥只能收到4个通道数据???淘宝骗我钱卖给我水货ADS1299-4?

在这里插入图片描述

A1: 初始化上电后nPWDN没有足够延时,给个250ms之后就可以解决问题

在这里插入图片描述
上图摘自ads1299 datasheet的图67,箭头处可以看见,上电后必须等待tpor时间后才能开始reset。(博主给了个250ms就解决问题了)

wkup_state:beginif(counter < t_por) //(t_por>>16 for simulation only)begincounter <= counter + 1;wkup_done <= 1'b0;endelsebeginSPI_nRST <= 1'b0;counter <= 32'd0;wkup_done <= 1'b1;endend

Q2: 单端驱动咋整?

A2:正在使用INxN作为模拟信号输入口进行验证

Q3: 我使用多个ADS1299进行通讯,其中一个ADS1299可以正常通信,也受到了8通道脑电数据(使用RDATA指令),但其他的ADS1299只能收到8’h4B(8’b01001011)???

A3: SPI时钟过快,开到了20MHz,在所搭配的driver上没有与发送的数据位对齐,换而言之,所发出去的MOSI数据不对,导致ADS1299不知道你吧啦吧啦半天到底想说个啥,因而降频为15MHz

Q4:我开了所有通道的test signal,可我只有第一个信号是对的???

在这里插入图片描述

将原始数据拉出来一看
在这里插入图片描述
大概率是数据丢失造成的。8’h1001xxxx --> 8’h0001xxxx

因而分别进行了不同SPI速率测试,结果发现,SPI_CLK_FRE == 5MHz 后,数据传输稳定性大大提高,继续降低SPI_CLK其数据传输正确率不会继续提高。虽仍有一定程度的数据抖动,但总体来说情况好得多了。
在这里插入图片描述

A4: SPI速率过高,导致数据容易丢失,发现将SPI CLK降到5MHz左右可提高数据传输速率

Q5: 更换新批次ADS1299后,发现按照数据设置CONFIG1(0x01)寄存器位0x96时,许多功能不正常,例如采样率等成为不可控制的8KHz,陷入无穷循环的黑人问号???难道我买的是盗版???

A5: Read 0x01默认寄存器后发现,初始值为0x06,并非0x96,但实际改变的数据属于数据手册上的Reserve。。。因而在配置寄存器CONFIG1(0x01)=0x06时功能恢复正常。

Q6: ADS1299有几个通道不连接的时候采集电压为1.7V???

电源,电源,一定是你的电源,直接检测AVDD和DVDD,别问我怎么知道的 V

Q7: 寄存器配置之后行为与所配置的不对应?

问题描述:举例来说,CHnSET配置的明明是0x01作为噪声测试,但实际行为却表现为0x00(正常电极输入),读该寄存器也发现是0x00。

A7:寄存器配置请按照顺序,例如我们不可配置完0x05后又配置0x01或者0x03,配置0x01-0x04的寄存器会影响0x05-0x0C寄存器配置

后续更新

这篇关于TI ADS1299使用BUG记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284997

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完