ADS1299使用

ADS1299是一款高精度的多通道生物信号处理器,其功能包括差分电压输入、多路复用器、噪声测试、内部温度传感器以及GPIO和SPI通信。它支持多种工作模式,如电压测量、噪声测试和测试信号,适用于生物医学信号采集系统,如脑电图测量。配置包括时钟选择、增益设置和数据读取模式,同时具备菊花链连接多个设备的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用引脚

全部引脚

1.INxN/INxP 正极/负极信号输入端
2.DRDY:ADS1299采样完成时发生电平变化,用于提示本次采样完成
3.DAISY_IN:菊花链。使用多个ADS1299连接一起时,使用该引脚
在这里插入图片描述
4.START:启动电平转换

多路复用器

在这里插入图片描述
原理图如上所示
ADS1299可以通过MUX寄存器为各通道选择所采集的信号,INx采集的信号可以是外部引脚实际采集的信号,也可以通过设置MUX使其采集内部生成的测试信号(ADS1299可以生成方波测试信号,可以检查上位机功能是否正常),或者是温度传感器信号。
多路复用寄存器(MUX)有四位数据,分别为CHxSET[3:0]。每个通道各有一个该寄存器,用于控制该通道采集的数据。
其中MUX[2:0]单独控制各通道采集数据源。CHxSET[3]控制INxP(正极输入部分)是否连接偏置信号(SRB2)

1.MAIN

正常工作方式。MAIN指MUX[2:0]=000,110或者111.该工作方式下引脚各自读取INxP和INxN采集到的信号,之后传给信号增益模块,用于计算差分。
此外,在MAIN模式下,通过SRB1寄存器可以决定是否使偏执信号SRB1连接到INxP,即负极输入是否有差分信号。
设置MUX[3]可以决定正极输入是否有差分信号(不论是否在MAIN模式)。

2.噪声测试

设置MUX为001用于测试设备固有噪声,即将[(VVREFP + VVREFN)/ 2]作为两个通道输入

3.测试信号

设置MUX(CHnSET[2:0])为101,使INx采集内部测试信号。测试信号可通过内部寄存器控制。内部测试信号为一个方波。用于检测上位机工作是否正常

4.温度传感器

ADS1299内部有温度传感器,设置100使通道采集温度数据

5.电压测量

用于测试供电电压,设置为011采集不同电源电压。各通道采集电压与计算方法不同。
对于通道1、2、5、6、7和8,(MVDDP-MVDDN)为[0.5×(AVDD + AVSS)]。对于通道3和通道4,(MVDDP-MVDDN)是DVDD / 4。为了避免在测量电源时使PGA饱和,请将增益设置为1

6.前置激励信号(lead-off)

用于检测差分通道与测试者之间的连接是否正常

7.辅助单端输入

通过将MUX设置为010,CONFIG3寄存器中的BIAS_MEAS设置为1,可以单独将某个引脚采集的信号设置为BIASIN引脚的信号。----BIASIN主要用于偏置信号中起作用,也可以作为多个单端输入通道。

差分电压输入

1.电压范围
差分输入范围取决于模拟电源和参考电压
在这里插入图片描述
2.PGA增益
增益可设置为1,2,4,6,8,12,24
通过CHnSET寄存器设置增益
要求增益后电压不能在电源电压200mv以内
在这里插入图片描述

时钟配置

CLKSEL引脚和CLK_EN寄存器控制时钟选择,内部或外部时钟

CLK引脚可以输出自身的内部时钟,用于将多个ADS1299使用菊花链串联时统一时钟。也可以输入外部时钟
在这里插入图片描述

GPIO配置

ADS1299有四个通用GPIO引脚
GPIO寄存及中的GPIOC用于配置引脚用于输入还是输出,通过GPIOD进行读写操作。

1.启动START

拉高电平,设备开始进行转换,完成时发出DRDY信号。通过SINGLE_SHOT寄存器位控制连续/单次模式,多设备时通过START用于同步

2.数据读取

连续读取RDATAC、单次读取RDATA
数据输出位数取决于通道数
8通道数据量位24状态位+24*8数据位
每个通道的数据首位时两个填充和一个MSB

SPI命令

在这里插入图片描述
其中RREG和WREG是两字节命令,在发送时两个字节间需要延迟大概2us

  1. wakeup 退出待机模式

  2. standby 进入待机模式

  3. RESET 重置

  4. START 开始数据转换

  5. STOP 停止数据转换 离上一个START至少4个tclk(需要延迟)

  6. RDATAC 连续数据读取
    每次转换数据放在输出寄存器中,可以直接移除,读取数据时不需要发送数据读取命令。默认为连续读取模式
    通过SDATAC命令停止RDATAC模式,之后可以发送其他命令。后续指令需要延迟(4个TCLK周期)

  7. SDATAC 停止连续读取

  8. RDATA 读数据指令
    DRDY变低后发出RDATA指令读取转换结果

  9. RREG 读寄存器
    双字节指令,第一个字节指定命令和寄存及地址,第二个字节指定寄存器个数(个数-1)
    在这里插入图片描述

  10. WREG写寄存器
    同上,单后续跟着寄存器数据输入在这里插入图片描述

寄存器表

在这里插入图片描述

1.CONFIG1 配置寄存器1

地址01h
在这里插入图片描述

功能
第七位始终为1
第6位确定是否时菊花链模式,0表示菊花链(多ADS1299)
第5位CLK_EN位。确定内部时钟是否输出到CLK引脚
4:3位永远是2
2:0位低三位确定设备数据输出速率
设备输出速率:
000 : fMOD / 64 (16 kSPS)
001 : fMOD / 128 (8 kSPS)
010 : fMOD / 256 (4 kSPS)
011 : fMOD / 512 (2 kSPS)
100 : fMOD / 1024 (1 kSPS)
101 : fMOD / 2048 (500 SPS)
110 : fMOD / 4096 (250 SPS)
111 : Reserved (do not use)
fMOD =fCLK / 2.
2.CONFIG2 配置寄存器2

地址:02h,用于配置测试信号生成。
在这里插入图片描述

功能
第4位INT_CAL 确定测试信号源(TEST_SIGNAL)
0表示来自外部驱动
1表示内部生成测试信号
第2位CAL_AMP 确定测试信号幅值
第1:0位配置测试信号频率
3.CONFIG3

地址:03h 配置reference和BIAS操作
在这里插入图片描述

功能
第七位PD_REFBUF power_down reference buffer(reference缓冲区使能)
第4位BIAS测量使能。置1时将BIAS_IN信号连接到MUX=010的通道上
第三位确定BIASREF信号源。0表示外部信号,1表示内部产生的信号。内部生成信号位(AVDD+AVSS)/2
第2位BIAS缓冲区使能。为0时关闭,1时打开
第1位BIAS感知使能。0禁用,1开启
第0位决定BIAS状态。0位connected,1位not connect
4 LOFF lead-off控制寄存器

控制lead-off检测操作(先导检测)
在这里插入图片描述

CHnSET 通道配置

地址:05h到0Ch,共8个通道
配置电源模式,PGA增益,多路复用通道
在这里插入图片描述

功能
7开关通道。0正常工作,1表示通道断电
6:4PGA增益设置。可以表示1,2,3,4,6,8,12,24
3SRB2是否连接。0开启,1关闭
2:0通道输入源
000正常输入
001输入短路(用于测量偏移或噪声
010与BIAS_MEAS一起用于BIAS测量
011MVDD电源测量
100温度传感器
101测试信号
110BIAS_DRP(正极驱动)
111BIAS_DRN(负极驱动)
BIAS_SENSP

地址:0Dh
用于从各通道选择postive signals 进行bias voltage derivation
决定各通道是否将信号参与BIAS反馈中
在这里插入图片描述

BIAS_SENSN

地址:0Eh
在这里插入图片描述

LOFF_SENSP/LOFF_SENSN

正/负信号 Lead-Off Detection寄存器
从各通道选择正/负信号进行lead-off。寄存器相应位置置1时,LOFF_STATP寄存器有效
决定各通道是否启用lead-off detection
地址:0Fh、10h
在这里插入图片描述

LOFF_STATP

前置信号状态寄存器
地址 12h
存储相应通道的正极通道是否开打
需要在LOFF_SENSP置位后才有效
在这里插入图片描述

LOFF_STATN

地址:13h
作用同上

GPIO 通用I/O寄存器

地址:14h
控制GPIO引脚的活动
在这里插入图片描述

作用
7:4GPIOD[4:1] 用于GPIO读写数据
3:0GPIOC[4:1] 控制相应GPIO引脚用于读还是用于写
0:输出 1:输入
MISC1 杂项寄存器1

地址:14h
提供将SRB1引脚路由到各通道
在这里插入图片描述

第5位决定是否将SRB1连接到所有通道(反相输入端)
0:打开 1:关闭
MISC2 杂项寄存器2

地址 16h
保留,未使用

CONFIG4 配置寄存器4

地址:17h
配置转换模式,决定是否启用LOFF
在这里插入图片描述

第3位决定转换模式
0:连续转换 1:单次转换
第1位PD_LOFF_COMP 决定是否使用lead-off比较器

ADS1299一些功能介绍

基础使用

在这里插入图片描述

Created with Raphaël 2.3.0 上电 是否有外部时钟 设置外部时钟和寄存器 设置PDWN=1、RESET=1,等待上电复位 VCAP>=1.1V 发出重置脉冲并等待 发送SDATAC命令(系统默认启动时在RDATAC模式) 是否有外部reference 写寄存器,CONFIG1写入96h,CONFIG2写入C0h,并所有通道设置输入短路(CHnSET写入01h) 启动,发送START命令 发送RDATAC命令开始转换 设置CLKSET,等待唤醒 yes no yes no yes no
BIAS 偏置驱动电极

一种反馈信号,从ADS1299发送到使用者体表
在采集信号时连接到使用者身上,用于抑制共模干扰。
通过模拟电源中的电压,或者双极引脚中采集到的电压作为参考输入,反馈到使用者身上,从而抑制共模干扰。
(向使用者体表发送电压信号,降低干扰)
通过寄存器可以设置选择哪些通道用于参与BIAS
(BIAS_SENSP和BIAS_SENSN)

SRB

当多个差分通道公用一个差分负极输入端时,可以使用SRB1作为公共的负极输入端。
比如测量脑电信号时,各通道正极端置于头皮用于采集信号,负极端位公共负极,一般置于耳部,用于做公共差分

多设备配置

使用多个ADS1299有级联模式和菊花链模式
暂略

测量脑电的典型电路连接

在这里插入图片描述
在这里插入图片描述
SRB1用于负极电路的参考信号,采集脑电信号时可以做所有引脚的差分负极。
使用的差分通道通过BIAS将信号再反馈给人体

### ADS1299脑电数据采集使用方法 #### 设备介绍 ADS1299是由德州仪器(TI)生产的一款高精度模数转换器(ADC),专为生物医学应用设计,特别是用于心电图(ECG)、脑电图(EEG)和其他低幅度信号测量。这款器件具有八个通道,支持同步采样率高达16 kSPS,并内置可编程增益放大器(PGA)[^1]。 #### 开发环境搭建 为了开发和测试基于ADS1299的数据采集系统,建议采用如下工具链: - **硬件平台**: STM32系列微控制器作为主控单元; - **软件IDE**: Keil MDK 或 IAR Embedded Workbench 等嵌入式C/C++编译调试环境; - **库函数**: HAL (Hardware Abstraction Layer) 库来简化底层驱动编写工作; 对于具体的实现细节,在开源项目中有详细的说明文档以及源码可供参考[^2]。 #### 初始化配置 初始化过程中需要设置的关键参数包括但不限于: - 配置各个输入通道的状态(开/关)、极性(单端/差分)及其对应的PGA增益值; - 定义所需的输出数据速率(OSR)与滤波选项等特性。 ```c // SPI Configuration Example Code Snippet void MX_SPI_Init(void){ hspi.Instance = SPIx; hspi.Init.Mode = SPI_MODE_MASTER; // Master Mode hspi.Init.Direction = SPI_DIRECTION_2LINES; ... } ``` #### 数据读取流程 当一切准备就绪之后,就可以通过SPI总线发送命令字节给ADS1299以启动一次完整的AD转换周期并获取相应的数字化结果。每次传输通常由多个阶段组成——先发出控制指令再接收返回的信息包直到完成整个过程为止。 ```c uint8_t spi_transfer(uint8_t data){ /* Implement actual SPI transfer here */ } float read_channel(int channel_num){ uint8_t cmd[3]; float voltage; // Prepare command to select the desired channel and initiate conversion cmd[0] = REG_WRITE | CHnSET(channel_num); ... while (!conversion_complete()){ // Wait until ADC finishes converting... } // Read back converted value from register(s) voltage = get_voltage_from_registers(); return voltage; } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值