ADS1198ADS1298开发设计心得与遗留问题总结.doc_第1页
ADS1198ADS1298开发设计心得与遗留问题总结.doc_第2页
ADS1198ADS1298开发设计心得与遗留问题总结.doc_第3页
ADS1198ADS1298开发设计心得与遗留问题总结.doc_第4页
ADS1198ADS1298开发设计心得与遗留问题总结.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ads1198/ads1298开发设计心得与遗留问题总结 首先非常感谢ti公司的支持,自己手里面的6片ads1198全部是从ti公司申请到的,并且遇到问题后能ti的技术支持工程师能及时给出解答,所以写这篇文章,一是对自己这几个月工作的总结,二是也算是对ti公司的感谢,也希望能帮助到以后使用ads1198/1298的朋友。 本人使用msp430f5418与ads1198设计12导心电监测仪,其实就是个低档的holter,在holter的基础上加了几个操作按键和lcd显示屏。历时3个多月,前几天算是能比较满意的用ads1198采集到ecg信号了!现在简单说下开发过程以及遇到的一些问题。先说下msp430单片机,本人01年开始使用(那是还是大四),先后使用过1100,135,149,2418等型号,这次选用了5418,因为信价比高,等开始实际调试使用时,才发现5418与之前的型号有很多升级。增加了几个功能模块同时也整合了一些功能模块。比如sys模块,pmm模块,ucs模块等(还有一些功能由于没用上也没研究),这几个模块我看了很长时间英文资料(英文水平不咋地)后,发现sys和pmm模块对我根本就没有用,并且把pmm模块关掉了,增加了这些模块视乎能提高430的安全性,但我觉得430这种单片机由于设计宗旨是低功耗3v供电。所以一般都是采用电池供电的,加上这2个模块似乎意义不大。反而与之前的型号兼容性不好了!本人在做这款12导心电监测仪之前搞过1年多心电,只用运放做过9导心电监测仪,所以在ecg方面的经验还是很少的,发现这款ads1198芯片还是在电源网上看到的,申请到样片后,手册和开发指南看了不下七八遍才基本理解明白,现在说说自己曾经迷糊而后来解决以及仍没解决的问题列出来:1. ads1198有16位ad,可是pga增益最大只有12,没有二级放大,对于ecg信号最大幅值在5mv左右,经过12倍放大为60mv, 60/2400*65536=1638,即只要用12位就能标示出ecg信号了,也就是说浪费掉了4位ad,如果用ads1298也会同样出现这种情况,只是会比1198精确些而已,如果用ads1198/1298测量eeg信号,eeg信号是uv级的,真不能能不能用啊!2.请看手册第12页,这里的这幅图下面的note写着spi cpol=0,cpha=1,但是实际在调试程序时我发现这里应该设置为ckph=0,ckpl=0.3. 手册20页的公共点参考电压的公式似乎也由点问题,这里是avdd-0.2v我觉得不对,应该是vref+,因为如果按以上公式计算出的公共参考电压,有可能最大幅值超过vref+,也就是ad不能正确的采集出实际数值。4. 手册第19页中设置chnset2:0=011时,1,2,5,6,7,8是用来测量avdd/2,而3,4是用来测量dvdd/2,我设计的电路板是avdd与dvdd电压相同,通过磁珠连接,结果测试出来的数据1,2,5,6,7,8 比我计算的理论数据差了10000多,而3.4比理论数据差了1000多,这两组之间也差了10000多,这个问题我现在也没搞明白,请ti的工程师和使用过的朋友解答一下吧。5. 当我用心电模拟仪输入信号时,(我的设计中1,2,3,4,5,6,7,8分别对应ii,iii,v1,v2,v3,v4,v5,v6),发现但我设置8个通道检测导联脱落时(即设置loff_sensp=0xff, loff_sensn=0xff),ii,iii的基线与v1,v2,v3,v4,v5,v6相差10000多,如果设置loff_sensp=0x00, loff_sensn=0x00时,即不检测导联脱落时,ii,iii,v1,-v6就在同一基线上了。这个也没搞明白。有待朋友们解答。6. 当心电模拟仪测试信号好用后,我实测人体信号,发现各路信号基线都不一致,我调试了半个月也没调出来,(我的设计基本上是抄ti的设计指南里的原理图的,我也明白为什么ti设计指南里为什么没有给出实测人体信号!,估计它的板子也一样有这个问题),后来请教ti的技术支持工程师jhl老师,他说要加高通滤波器,后来我在输入进ads1198前加了各种高通滤波器,发现最实用的竟然是用0.1uf加10m电阻,这样这8路信号基本上在一条直线上了,(v1偏差大一点与其他的基线差100左右),但加了电阻电容滤波后,用心电模拟仪再测量时,原本一致的基线现在反而有偏差了,我是搞糊涂了!另外今天刚看到jhl老师的回复,说他说的加高通滤波实际上是软件滤波,如果是这样的话,看来我用430就不行了,应该改dsp做fft变换吧!总结一下,ads1198/1298的确集成了很多ecg电路,比如8路仪表放大,威尔逊网络,内部测试信号,导联脱落检测(我用着不好使,呵呵)等等,而且也降低了功耗,节省了成本。是做便携式设备很好的选择,但问题也很大,内部只有前级放大,没有加二级放大,同时由于集成度太高,仪表放大后直接进ad,不能加高通,低通,以及抗肌电干扰等电路。这些工作恐怕全部要留给上位机用软件来解决,至于能解决到什么程度,我就不知道了!以上就是个人使用ads1198/1298的一些心得,能解决的问题以及遗留的问题,由于本人能力有限,估计会有很多错误和误解。以上所写,仅供大家参考,谢谢! 作者:liangzuolin一下附上我用430开发的程序,已经调试通过,仅供参考!#define ads1198_cs0 p3out &= bit0#define ads1198_cs1 p3out |= bit0#define ads1198_start0 p2out &= bit5#define ads1198_start1 p2out |= bit5#define ads1198_rst0 p2out &= bit6#define ads1198_rst1 p2out |= bit6#define ads1198_pwdn0 p2out &= bit4#define ads1198_pwdn1 p2out |= bit4#define ads1198_ready (p2in&0x40)#define rdatac 0x10#define sdatac 0x11#define false 0#define true 1#define addr_id 0x00#define addr_config1 0x01#define addr_config2 0x02#define addr_config3 0x03#define addr_loff 0x04#define addr_ch1set 0x05#define addr_ch2set 0x06#define addr_ch3set 0x07#define addr_ch4set 0x08#define addr_ch5set 0x09#define addr_ch6set 0x0a#define addr_ch7set 0x0b#define addr_ch8set 0x0c#define addr_rld_sensp 0x0d#define addr_rld_sensn 0x0e#define addr_loff_sensp 0x0f#define addr_loff_sensn 0x10#define addr_loff_flip 0x11#define addr_loff_statp 0x12#define addr_loff_statn 0x13#define addr_gpio 0x14#define addr_pace 0x15#define addr_config4 0x17#define addr_wct1 0x18#define addr_wct2 0x19/-/ ads1198 spi 接口初始化/-void ads1198_spi_init(void) p3sel |= 0x0e; / p3.1,p3.2,p3.3复用功能 ucb0ctl1 |= ucswrst; / put state machine in reset ucb0ctl0 |= ucmst+ucsync+ucmsb; / 3-pin, 8-bit spi master,msb first,mode 0(ucckpl=0,ucckph=1) ucb0ctl1 |= ucssel_2; / smclk ucb0br0 = 0x04; / /4 ucb0br1 = 0; / ucb0ctl1 &= ucswrst; / 开启spi/-/ 发送ads1198单字节命令/-void ads1198_send_cmd_one(uchar cmd) while (!(ucb0ifg&uctxifg); / usci_b0 tx buffer ready? ucb0txbuf = cmd; / transmit data /-/ 传输ads1198多字节命令/-void ads1198_send_cmd_muti(uchar cmd,uchar len,uchar dat) uchar i; ads1198_send_cmd_one(cmd); / 发送第一字节命令+地址 ads1198_send_cmd_one(len-1); / 发送第二字节命令,发送数据长度 for(i=0;ilen;i+) ads1198_send_cmd_one(dati); / 发送多字节数据 /-/ 接收ads1198多字节命令/-uchar ads1198_recive_data(uchar cmd,uchar len,uchar dat) uchar i; ads1198_send_cmd_one(cmd); / 发送接收命令第一字节+地址 ads1198_send_cmd_one(len-1); / 发送接收第二字节命令,接收数据长度 for(i=0;ilen;i+) ads1198_send_cmd_one(0); / 发送spi时钟,dout=0 somenop();somenop();somenop();somenop(); / 延时 somenop();somenop();somenop();somenop(); if(ucb0ifg&ucrxifg) / 判断接收标志 dati = ucb0rxbuf; / 接收数据字节 else return false; return true; /-/ 连续采集模式下接收数据/-uchar ads1198_readdata_continue(uchar dat,uchar len) uchar i; for(i=0;ilen;i+) ads1198_send_cmd_one(0); / 发送spi时钟,dout=0 somenop();somenop();somenop();somenop(); / 延时 somenop();somenop();somenop();somenop(); if(ucb0ifg&ucrxifg) / 判断接收标志 dati = ucb0rxbuf; / 接收数据字节 else return false; return true; /-void ads1198_init(void) uchar d8; 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(d0=0xb6) / 判断是否为ads1198 id d0 = 0xcc; / 内部参考+2.4v+rldref(avdd-avss)/2+rld buffer允许+rld检测允许 ads1198_send_cmd_muti(0x40+addr_config3,1,d); / 配置寄存器 d0 = 0x45; / multiple readback+250sps ads1198_send_cmd_muti(0x40+addr_config1,1,d); / 配置寄存器 d0 = 0x34; / int_test内部测试信号+(-2x测试信号)+fclk/2.048m ads1198_send_cmd_muti(0x40+addr_config2,1,d); / 配置寄存器 d0 = 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); d0=0x60;d1=0x60;d2=0x60;d3=0x60;d4=0x60;d5=0x60;d6=0x60;d7=0x60;/ 12倍增益+正常导联输入 /d0=0x65;d1=0x65;d2=0x65;d3=0x65;d4=0x65;d5=0x65;d6=0x65;d7=0x65;/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论