TI论坛
直播中

王玲

7年用户 1445经验值
私信 关注
[问答]

为什么使用CC2640读取ADS1299没有反馈信息?


  • 目前我希望使用两款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对于高电平的界定标准是怎么样的?是否存在因为高电平幅值不够的问题导致的数据无法读写成功?
    问题描述的很啰嗦,希望有技术人员能够进行解答,谢谢!

回帖(2)

潘小旋

2024-12-2 11:26:46
是ADS1299没有进行软复位的原因。
举报

青sky

2024-12-2 18:06:27
根据您提供的信息,您在使用CC2640和ADS1299进行SPI通信时遇到了问题,没有收到反馈信息。这里有几个可能的原因和解决方案:

1. 硬件连接问题:
   - 请检查CC2640和ADS1299之间的SPI引脚是否正确连接。确保MISO、MOSI、SCK和CS引脚正确连接。
   - 检查电源和地线是否正确连接,确保两个芯片的电源和地线是共通的。

2. SPI配置问题:
   - 确保CC2640的SPI配置正确。检查SPI时钟频率、CPOL、CPHA等参数是否与ADS1299兼容。
   - 确保CC2640的SPI模式设置为Master模式,因为CC2640作为主设备与ADS1299通信。

3. ADS1299配置问题:
   - 确保ADS1299的寄存器配置正确。检查设备ID寄存器是否设置为正确的值。
   - 检查ADS1299的复位引脚是否正确连接,确保在启动时复位。

4. 软件问题:
   - 检查CC2640的SPI驱动代码是否正确。确保发送和接收数据的代码逻辑正确。
   - 检查CC2640的SPI中断处理代码,确保中断服务程序能够正确处理SPI事件。

5. 逻辑分析仪问题:
   - 确保逻辑分析仪的设置正确,例如时钟频率、触发条件等。
   - 尝试使用不同的逻辑分析仪或示波器检查SPI信号,以排除逻辑分析仪故障的可能性。

6. 其他问题:
   - 检查CC2640和ADS1299的固件版本,确保它们是兼容的。
   - 尝试使用其他SPI设备与CC2640通信,以排除CC2640 SPI模块故障的可能性。

建议您按照以上步骤逐一排查问题,找到问题所在并进行修复。希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析和解决。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分