目前我希望使用两款TI的芯片来做支持蓝牙通信的生物电采集器,板卡是自己重新画的,但是读取数据时存在问题,希望在此进行沟通求解。
从逻辑电路上的体现来说,目前存在的问题是我使用CC2640通过SPI总线向ADS1299发送SPI信号,得不到反馈。
CC2640与ADS1299之间进行SPI通信的逻辑分析仪输出结果如下图所示。
可见我就是发送了0x20 进行设备ID的读取,但是没有反馈。起初我以为是我的ADS1299运行不正常,但是我手头有基于ADS1299的开源套件OpenBCI。我将自己板卡内的CC2640的程序暂停后,把ADS1299芯片连接到OpenBCI的DAISY接口。对于OpenBCI来说,两块ADS1299芯片的设备ID都可以读到。下图是使用OpenBCI读取我自己板卡上的ADS1299的ID的逻辑分析仪图片。
其中清晰可见,ADS1299返回了设备ID号:0x3E。故此证明了我自己板卡上的ADS1299的供电是正常的。(注,所有测试我都是直接将SPI总线进行并联的方式接起来,也就是说我现在CC2640和OpenBCI均可以同时读取我板卡上的ADS1299芯片,并且将连接点进行汇总后接入到逻辑分析仪上)
从数字信号的角度来看,两个数字信号之间唯一的区别在于,每次传输8个字节时,中间会不会有短暂的间隔。
于是我将CC2640的写入ID变为一个一个直接的写入,但是结果仍然是失败的。但是这里存在一个疑问,我一个一个字节的写入时,其中间的间隔非常大,不知道这里是否存在影响。如下图所示从数字信号的角度,我不知道还能如何测试了,各种方法都是失败的。
于是我从模拟信号的角度进行测试,发现了一个问题:CC2640的MOSI线高电平输出只有2V左右,但是正常的使用OpenBCI的板卡进行数据读取时,是达到了3.3V的。关于这个问题,我也在TI论坛上发帖寻求讨论了,链接地址在:e2echina.ti.com/.../195799
不知道ADS1299对于高电平的界定标准是怎么样的?是否存在因为高电平幅值不够的问题导致的数据无法读写成功?
问题描述的很啰嗦,希望有技术人员能够进行解答,谢谢!