主题中讨论的其他器件: TMS570LS1227
我们正在使用一个 TMS570LS1227将一个 SPI 与两个器件对接、其中一个器件 为 ADS7953 (每个器件都有自己的 CS 线路)。 我们的系统已经正常运行了、现在已经有一段时间了、但是客户刚刚在2个月前报告了这个问题、上周又报告了这个问题、所以我将进行调查。 该问题在启动时发生、但只很少发生、99.9%的时间可以正常工作。 另外、我应该说它发生了2次、只有在对整个系统进行下电上电后才能解决。 在所有情况下、如果器件在没有问题的情况下启动、则它将继续工作、而不会出现问题。
我们在启动时的正常序列是:我们发送复位命令、然后使器件进入自动模式2、并在此简单地切换 CS 线路(数据至 ADS = 0)并使用 ID 读取通道数据。 该数据用于某些安全功能、如果收到错误数据、则会触发故障。 这是到目前为止触发此问题的两次发生的情况。 我没有太多数据。 之后、我给了客户一些固件的特殊版本、让我们知道微控制器从 ADS 读取的内容、而不仅仅是触发故障。 当发生第二个故障时、我们看到我们始终从 ADS 读回0x3FFF 数据。 鉴于这不是0xFFFF (例如某件事情卡在高电平)、在我看来、ADS 未在自动模式2下正确配置(根据我们的启动序列)、 相反、它卡在手动模式下并报告所有时间通道4 (前4位是 ID)。 另外、由于我们使用5V 电压、因此看起来电压范围没有正确选择(同样是启动的一部分)。 通道4的电压应为4.5V 左右、因此如果电压范围也未正确配置、则读取值为0xFFF。 这是我们读取0x3FFF 的原因背后的理论。 不知何故、启动序列变得混乱、导致器件卡在错误的模式和配置下。
我见过另外2个帖子与类似的问题、但没有答案:
一些问题:
-考虑到 SPI 链路与另一个设备共享,它是否有可能在启动时,它错误地读取一些数据,将进入另一个设备,这个数据正在使 ADS 卡在一个状态,它不能从以后出来? 在上电序列期间、第一条命令发送为0x4200、该命令应重置 ADS、以便正确执行其余配置。 我的理解是、即使 ADS 因此读取了一些虚假数据、在发送复位命令之后应该没有关系?
-我已经仔细研究了上电顺序。 电压 Va 和 VBD 同时出现。 它开启5ms、然后关闭(与微引导加载程序相关的操作)、大约200ms 后、它再次开启并保持不变。 导通时 VA 始终高于 VBD、但我注意到关断时、VA 轨的关断速度快于 VBD、而 VBD 在关断时、比 VBD 高约10ms。 这种行为合适吗? 这是否会影响器件、因此当器件在200ms 后上电时、可能处于未知状态?
如果该设备已正确完成配置并以所需的模式运行,则我们无法读取任何类型的状态寄存器。 是否有其他方法来检测此情况? 如果确实如此、我们是否可以重新运行启动序列以使其进入正确的状态?
-有什么其他想法可能会发生什么?