您好!
我的定制板有一个非常奇怪的问题(ADS1299 + Atmel SAMD21G18A):有时 ADS1299会从一个通道 或多个通道提供损坏的数据。
我的 ADS1299在单次模式下工作、具有2.048MHz 内部时钟。 微控制器以2000Hz 的频率发送启动命令、等待 ADS1299 DRDY 中断、然后读取 ADS1299缓冲器。 ADS1299通过 SPI 将数据发送到微控制器(SPI 波特率4M、ADS1299 SPS = 16k)。 ADS1299通道1 -用于 EEG 数据采集的通道4、通道5 -通道8关闭。
我应该说明的是、ADS1299 DRDY 与微控制器读取开始之间在代码中存在微小的延迟(~3us)。
下面显示了一个示例。 由于没有连接电极、我应该始终获得7FFFFFh。 但是、正如您从屏幕截图中看到的、有些数据损坏了。
我将逻辑分析仪连接到了 ADS1299 SPI 引脚、这可以在数据发送到 SPI 线路之前确认数据是否损坏。 下面显示了一个示例(此处通道1数据已损坏):

奇怪的是、当我删除延迟(这意味着微控制器无限等待 DRDY 信号、并在 ADS1299数据就绪时立即启动读取操作)时、这个错误似乎消失了、我获得了稳定的数据。

我用 ADS1299内部测试信号(方波)进行了测试、我改变了 SPI 速度、同样的问题。
我在这里找到了一个类似的帖子: https://openbci.com/forum/index.php?p=/discussion/423/ads1299-with-arduino-due-sampling-problem
有人能解释一下我做错了什么吗?
非常感谢。
此致
XIN