This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我遇到了这个问题,ADS1298需要在第8位计时后至少4个时钟周期,以使芯片选择引脚处于非活动状态(下面的链接是一个封闭线程,在同一问题上没有应答)。
使用TMS320C55xx器件时,芯片选择在0.5tc-2ns后变为非活动状态,其中tc是SPI时钟周期。 仅当SPI时钟小于250kHz时,才满足读取ADS1298的条件,这是无用的,因为您无法使用该速度执行太多操作(甚至不确定您是否可以达到1ksps速度)...
因此,解决这一问题的方法是增加最后一个时钟位之后的时间,直到芯片选择变为非活动状态。 当芯片选择处于非活动状态时,ADS会重置缓冲区(我认为,这就是为什么在删除缓冲区之前需要4个时钟周期来解码消息的原因)。
我设法解决这个问题的方法是在命令末尾发送一个伪位。 现在,要向ADS写入一条命令,我会发送一个2个字符的帧,其中一个包含8位,用于对命令进行计时,另一个包含1位。 这会使芯片选择保持较长时间的非活动状态,并且ADS不会被混淆(这可能是因为在芯片选择之后立即被拉为非活动状态时,额外的位会被忽略)。
现在一切都像一种魅力。 只是想发布这篇文章,因为我花了很长时间才意识到问题所在,然后花了几个小时才解决问题。 我觉得有点愚蠢,两个非常流行的设备,来自同一制造商有这样的兼容性问题. 希望这一点得到关注。