TI中文支持网
TI专业的中文技术问题搜集分享网站

请教ADS1198/ADS1298设计12导心电信号采集问题????

请教TI工程师,我正在使用ADS1198设计12导的心电检测仪,原理图根据sbau180.pdf设计,模拟电源和数字电源都是采用3.3V单电源供电,中间用磁珠联通.目前程序已经完成,用心电模拟仪可以采集出很漂亮的8路心电信号,并且各路信号基线保持一致,可是在采集人体信号时,人体心电信号也能采集出来,但8路信号的各自基线都不同,各导联基线相差数值最大在1000(AD采集后的数值)左右,我感觉可能是各路的共模信号转换成差模了!但不知道该如何解决!已经调试半个月了实在是解决不了这个问题,以下附上我的ADS1198的初始化程序.

void ADS1198_Init(void)
{
     uchar d[8];
     P2DIR |= 0x60;                                        // ads1198 RST,READY管脚输出
     P3DIR |= 0x01;                                        // ADS1198 CS 管脚输出
     ADS1198_CS0;                                          // 选中ADS1198     ADS1198_PWDN1;                                        // 禁止进入低功耗模式
     ADS1198_START0;                                       // 禁止采集
     ADS1198_RST1;                                         // 复位置高
     delayMS(1000);                                        // 延时1S
     ADS1198_RST0;                                         // 复位1198
     delayMS(100);                                         // 延时100MS        ADS1198_RST1;                                         // 复位清除
     delayMS(1);
     ADS1198_Send_CMD_One(SDATAC);                         // 发送停止命令
     ADS1198_Recive_Data(0x20+Addr_ID,1,d);                // 读ADS1198 ID号
     if(d[0]==0xB6)                                        // 判断是否为ADS1198 ID
     {
         d[0] = 0xCC;                                      // 内部参考+2.4V+RLDREF(AVDD-AVSS)/2+RLD buffer允许+RLD检测允许
         ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG3,1,d);     // 配置寄存器
         d[0] = 0x05;                                      // Multiple readback+250SPS
         ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG1,1,d);     // 配置寄存器
         d[0] = 0x00;                                      // 外部测试信号+1mV幅值+FCLK/2.048M频率
         ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG2,1,d);     // 配置寄存器
         d[0] = 0x33;                                      // (7.5%/92.5%)+Pull-up/pull-down mode+DC lead-off detection turned on
         ADS1198_Send_CMD_Muti(0x40+Addr_LOFF,1,d);
         //d[0]=0x00;d[1]=0x00;d[2]=0x13;d[3]=0x13;d[4]=0x13;d[5]=0x13;d[6]=0x13;d[7]=0x13;// 12倍增益+正常导联输入
         d[0]=0x60;d[1]=0x60;d[2]=0x60;d[3]=0x60;d[4]=0x60;d[5]=0x60;d[6]=0x60;d[7]=0x60;  // 12倍增益
         ADS1198_Send_CMD_Muti(0x40+Addr_CH1SET,8,d);
         d[0] = 0x0ff;d[1] = 0x03;                          // RLD1P,RLD1N,RLD2N对应R,L,F,为右腿驱动源
         ADS1198_Send_CMD_Muti(0x40+Addr_RLD_SENSP,2,d);   // 配置寄存器
         d[0] = 0x00;d[1] = 0x00;                          // 8个通道全部检测导联脱落
         ADS1198_Send_CMD_Muti(0x40+Addr_LOFF_SENSP,2,d);  // 配置寄存器
         d[0] = 0x00;                                      // 通道1,通道2作为起搏检测通道,开启起搏检测缓冲器
         ADS1198_Send_CMD_Muti(0x40+Addr_PACE,1,d);        // 配置寄存器
         d[0] = 0x02;                                      // 持续转换模式+Lead-off comparators enabled
         ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG4,1,d);
         d[0] = 0x08;d[1] = 0xCB;                          // power on WCTA+WCTB+WCTC,RLD1P,RLD1N,RLD2N为威尔逊中心信号源
         ADS1198_Send_CMD_Muti(0x40+Addr_WCT1,2,d);           ADS1198_Send_CMD_One(RDATAC);                     // 连续读命令
         ADS1198_START1;                                   // 开始数据采集
     }

 

user3743692:

极化电压引起的基线偏移,行业标准是能抗正负300mV的极化电压,前端放大一定不能太高,否则ADC很容易饱和,后端用数字滤波器过高通,这样基线就一致了

ls hu:

回复 user3743692:

高通的频率怎么设置呢? 我设置滤掉0.5HZ一下的,发现T波发生了失真

赞(0)
未经允许不得转载:TI中文支持网 » 请教ADS1198/ADS1298设计12导心电信号采集问题????
分享到: 更多 (0)