ADS129X芯片中文资料(三)——数字功能部分介绍

时间:2024-04-01 16:49:10

写在前面:最近做项目用到TI公司的用于生理信号测量的低功耗、8通道、24位模拟前端的ADS1298芯片,于是研究了下芯片手册。一百多页的芯片手册,经常看过后又记不清了,每次都得重新去翻阅,所以整理成中文的,翻遍查阅。在此分享给同样有需求的人,如有错误,恳请指出,谢谢!

这是关于该芯片资料的第三部分内容,数字功能的介绍以及第四部分的内容(编程部分的介绍)很重要,涉及到该如何编程该芯片,以及如何设置参数如何根据应用选择不同模式等。可以配合芯片手册最后的寄存器表进行阅读,这样能更快理解并知道如何编程。

 

(前面标号对应英文手册章节标号)

9.3.2 数字功能

9.3.2.1 GPIO引脚(GPIO[4:1])

    ADS129X一共有4通用数字输入/输出引脚可作为正常操作使用。通过寄存器GPIO的GPIOC位,可以单独设置数字IO引脚为输入或输出。寄存器GPIO的GPIOD位控制引脚的电平。当读取GPIOD位时,返回的数据是引脚的逻辑电平。当GPIO 引脚被设置为输入时,对相应的GPIO位进行写操作则为无效的。当GPIO被设置为输出时,对GPIOD写的值则为输出的值。

    当被配置为输入时,有三个引脚必须被驱动,不能使它们悬空(float)。GPIO引脚是在开启电源(power

-on)或者复位后被设置为输入的。图51所示为GPIO口的结构。如果不使用,则将这三个引脚短接到地。

    举个例子,一种配置是 将GPIO1作为PACEIN信号,复用GPIO2信号到RESP_BLK信号,复用GPIO3到RESP信号,复用GPIO4到RESP_PH信号。

ADS129X芯片中文资料(三)——数字功能部分介绍

 

9.3.2.2 Power-Down 引脚

    当Power-Down被拉低时,所有片上电路都被关闭电源。将Power-Down引脚拉高,可退出关闭电源模式。当退出关闭电源模式时,内部振荡器和内部参考需要时间唤醒。当处于电源关闭状态时,关闭外部时钟以节省电源。

9.3.2.3 复位(复位引脚和复位指令)(RESET Pin and Reset Command)

    有两种方法可复位ADS129X:拉低复位引脚或发送复位指令。(详情见RESET: Reset Registers to Default Values 部分)。拉低复位引脚强制复位。在拉高复位信号(RESET)之前,要确保满足时序特性要求的最小脉冲宽度。复位命令在复位指令的第八个SCLK的下降沿产生作用。在复位时,需要18个tCLK周期来完成默认寄存器配置和开始转换的初始化。(详情见RESET: Reset Registers to Default Values 部分)。当寄存器CONFIG1和RESP通过WREG命令被设置新的值时,内部会对数字滤波器自动进行复位。

9.3.2.4 数字抽取滤波器

    数字滤波器接收调制器的输出然后将数据流进行抽取。通过调整滤波器的总数,可以在分辨率和数据率上进行权衡:滤波器多则可获得更高分辨率,而滤波器少可获得高数据率。高数据率被典型用于心电图应用中,以实现软件pace detection和交流导联检测。

    每个通道上的数字滤波器由一个三阶的sinc滤波器构成。Sinc滤波器的抽取比率可有CONFIG1的DR位来调整。(详情见表16).这是一个会影响所有的通道的全局设置,所以在这个设备中,所有通道都工作在相同的数据率下。

9.3.2.4.1 Sinc滤波器状态(stage)(Sinc/x)  

    Sinc滤波器是一个可改变抽取滤倍数,三阶的低通滤波器。数据由工作在数据率为fMOD的调制器输出到该模块。Sinc滤波器对调制器的高频噪声进行衰减,然后抽取数据流使其变成并行数据。抽取倍数会影响整个转换器的数据率。

    公式4所示为(scaled)Z域的sinc滤波器的传递函数。频域的传递函数公式5所示。

ADS129X芯片中文资料(三)——数字功能部分介绍

ADS129X芯片中文资料(三)——数字功能部分介绍

    Sinc滤波器在输出数据率的倍数上会出现零陷。在这些频率上,滤波器有无限的衰减。图52所示为sinc滤波器的频率响应,图53所示为sinc滤波器的衰减图。

ADS129X芯片中文资料(三)——数字功能部分介绍

当输入有一个阶跃跳变,滤波器需要3个tDR的转换周期来稳定。在START引脚有一个上升沿或一个START指令完成后,滤波器需要花tSETTLE周期来产生第一个数据输出。在不同数据率情况下的滤波器的设置时间(setting time)在SPI接口部分的Start模式小节中进行讨论。图54和图55所示为滤波器分别在fMOD/2和fMOD/16的不同数据率下的传递函数。

ADS129X芯片中文资料(三)——数字功能部分介绍

图56所示为扩展到4*fMOD的传递函数,如图所示,ADS129X的通带在每一个fMOD的倍数重复出现.为系统选择RC平滑滤波器来衰减fMOD倍数附近的频率干扰。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.3.2.5 时钟

ADS129X为设备的时钟提供了两种不同方法:内部和外部。内部时钟是理想地适用于低功耗,电池供电的系统。内部振荡器在室温下进行了微调以确保精度。该精度随着特定温度范围变化。详情见电子特性部分。时钟的选择由CLKSEL引脚和CLK_EN寄存器位控制。

用CLKSEL引脚来选择内部或外部时钟。在CONFIG1寄存器的CLK_EN位可以使能或不使能振荡器时钟在CLK引脚作为输出。一个关于这两个引脚的真值表在表11中展示。当多个设备连接一起,处于DAISY-CHAIN的配置时,使用CLK_EN位。当关闭电源时,关闭外部时钟来节省能源。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.4 设备功能模块

9.4.1 数据获取

本部分内容描述了关于START和DRDY引脚,稳定数据(settled data),和数据回读相关的数据获取处理

9.4.1.1 开始模式

拉高START引脚,并持续至少2*tCLK时钟周期,然后发送START指令以开始转换。当START引脚为低时,或者当START指令没有被发送,则设备不发送DRDY信号。(转换终止)

当使用START指令来启动转换时,保持START引脚为低。ADS129X有两种模式来控制转换:连续模式和单次模式。这些模式由SINGLE_SHOT(寄存器CONFIG4的第三位)来控制。在多个设备的配置中,START引脚被用于同步这些设备。(具体见多个设备配置(Multiple-Device Configuration)部分)

9.4.1.1.1 建立时间(setting time)

建立时间tSETTLE是指转换器在START信号被拉高之后输出整个数据所需要的时间。

当START引脚被拉高,或者当START命令被发送,设备的ADC开始对输入信号进行转换,同时DRDY被拉高。DRDY的下一个下降沿表示数据已准备好。图57所示为时序图。表12所示为不同数据率对应的建立时间。建立时间由fCLK和抽取倍数(由CONFIG1的DR[2:1])决定

ADS129X芯片中文资料(三)——数字功能部分介绍

ADS129X芯片中文资料(三)——数字功能部分介绍

当START引脚被拉高,且输入信号有一个阶跃跳变,则滤波器对一个新的值建立稳定需要花3*tDR周期,如图58所示。稳定的数据在第四个DRDY脉冲有效。该建立时间在尝试对窄速度脉冲(narrow pace pulse)进行速度检测时必须考虑。数据在DRDY的每一个下降沿有效。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.4.1.2 数据就绪引脚(DRDY)

DRDY是一个输出信号。当DRDY转换为低时,新的转换数据准备好了。CS信号对数据准备信号没有作用。不用管CS信号的状态,SCLK的上升沿就可以拉高DRDY。所以,当通过SPI总线使用多个设备时,用CS信号控制SCLK(gate SCLK with CS).DRDY的行为由设备是工作在 RDATAC mode 还是RDATA模式决定的。详情见RDATAC: Read Data Continuous and RDATA: Read Data部分。

当在RDATA命令下读取数据时,读操作可以在不损坏数据的情况下重叠下一个DRDY的发生。

使用START引脚或START命令来设置设备处于正常数据获取模式或脉冲数据获取模式。

图59所示为在数据回读时DRDY,DOUT,SCLK之间的关系(在24位分辨率的情况下)。DOUT在SCLK的上升沿latches。无论数据是否正在回读还是一个命令刚从DIN引脚发送,设备都在SCLK的第一个上升沿拉高DRDY。数据从状态的高位开始,然后按顺序接ADC通道的数据(通道1,通道2……)。被关闭电源的通道在数据流里仍然有位置,但是这些数据是无效的,可以被忽略。

ADS129X芯片中文资料(三)——数字功能部分介绍

不管CS的状态如何,DRDY信号在SCLK的第一个下降沿被清除。即使是没有数据输出,DRDY依旧被清除。当SPI总线被用于连接其他设备时需考虑该情况。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.4.1.3 数据回读(Data Retrieval)

数据回读是由两种方法中的一个完成的。

  1. RDATAC:连续读数据的指令是设置设备处于不用发送指令就可以连续读取数据的模式。
  2. RDATA:读数据模式只从设备读取一个数据输出。

转换的数据是通过DOUT输出的数据读取的。DOUT输出的最高位的数据是在SCLK的上升沿输出的。在SCLK的第一个下降沿,DRDY返回高值。在整个读操作中,保持DIN为低。

9.4.1.3.1 状态词(status word)

    ADS129x的数据回读是由一个提供ADC状态信息的状态词引领的。该状态位码为24位长,包含LOFF_STATP, LOFF_STATN, and part of the GPIO 的值。数据队列如图61所示。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.4.1.3.2 回读长度(readback length)

    输出的数据位由通道个数和每个通道的位数决定的,每个通道的数据格式为 双补码 和 高位优先。对于32kSPS和64kSPS数据率的ADS129x,数据位数为24位的状态位+16位(每个通道)*8(通道)=152位。对于其它数据率,数据位数为24位的状态位+24位(每个通道)*8(通道)=216位。当通道被通过用户寄存器设置为关闭时,相对应的通道输出为0.然而通道输出的顺序保留不变。ADS1294输出4通道数据流,而ADS1296输出6通道的数据。

    ADS129x同时提供了一个多回读的特性。设置寄存器CONFIG1的DAISY_IN位来获取多个回读。简单地提供额外的SCLK来多次读取数据。在读取最后之后,最高位的数据将重复。

9.4.1.3.3 数据格式

    ADS129x的每个通道输出24位的二进制双补码格式,高位优先的数据。低位有一个VREF/(223 – 1)的权重。一个正的满量程输入的输出码为7FFFFFh,负的满量程输入产生的输出码为800000h。当信号超过满量程时,输出信号会在这些码出现截止。表13总结了不同输入信号的理想输出码。当DR[2:0]=000和001时,设备分别只有17和19位的分辨率。最后7位或5位数据可以被忽略。

ADS129X芯片中文资料(三)——数字功能部分介绍

9.4.1.4 单次获取模式

    通过设置CONFIG4寄存器的SINGLE_SHOT位为1可以使能单次获取模式。在单次获取模式中,ADS129X在START引脚被拉高或者一个START指令被发送时进行单次转换。如图62所示,当一个转换完成时,DRDY变为低,然后停止转换。不管转换数据有没有被读取,DRDY保持为低。如果要开始新的转换,拉低START引脚,然后重新拉高并持续2个tCLK,的时间,或者重新发送START指令。当要从连续读取数据模式切换到单次获取模式,要确保START信号是脉冲的(pulsed),或者发出一个STOP指令,紧接着再发送一个开始指令。

ADS129X芯片中文资料(三)——数字功能部分介绍

    单次转换模式提供了一个不需要标准和连续数据率的应用。发出一个START指令,或者拉高START引脚来复位数字滤波器,有效的将数据率降低4倍。这个给模式使得系统更容易受到混叠的影响,因此需要更复杂的模拟和数字滤波。主处理器的负载会增加,因为它必须切换START引脚或发送START指令来启动新的转换周期。

9.4.1.5 连续转换模式

    当START引脚被持续拉高至少2tCLK或START指令被发送时,转换就开始了。如图63所示,当转换开始时DRDY变高,当数据准备好时变低。转换将无限连续,直到START引脚被拉低或者STOP指令被发送。当START引脚被拉低或者STOP指令被发送,正在处理的转换允许完成。图64和表14所示为在该模式下控制转换要求的DRDY相对于START引脚和START指令和STOP指令的时序。为了保持转换器持续工作,把START引脚永久拉高。当要切换单次获取模式到连续转换模式时,使START信号产生脉冲信号(pulse the START signal)或者发送一个STOP指令紧接着一个START指令。该转换模式非常适用于需要连续转换数据流的应用。

ADS129X芯片中文资料(三)——数字功能部分介绍