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.

[参考译文] CCS/TM4C1237H6PM:SSI 从器件 TX 线路值在1个字节后卡住。

Guru**** 2387280 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/821097/ccs-tm4c1237h6pm-ssi-slave-tx-line-value-stuck-after-1-byte

器件型号:TM4C1237H6PM

工具/软件:Code Composer Studio

您好!

我在 从机模式下使用 SSI 模块、我想进行4字节读取。  

但是、在读取1个字节后、微处理器的 TX 线会卡在第一个字节的位上。  

在从模式下、如果我尝试读取4个字节、会发生以下情况:  

如果我一次读取1个字节、也会发生同样的情况、但由于第一个字节正确、因此整个操作正常:

如果我使用与配置为主器件相同的数据执行回送测试、我将获得正确的行为:  

我只是想了解这种情况的发生原因。

我的主设备是使用 SPIDev 库的 Raspberry PI 3B+。  

我的配置类似这样、奇怪的频率来自 SPIDev:  

谢谢阅读。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    当您报告时、

    [引用 USER="Tuna BIICM"]如果我使用与配置为主设备的设备相同的数据执行回送测试,我将得到正确的行为: [/引用]

    如果我的逻辑证明是正确的-您的"回送"条件"消除"(至少大大减少) SPI 主从器件之间的 SPI 时钟频率差异。   (这是主从器件与(相同) MCU 一起驻留-(我怀疑)"定位路径"是(短而直接-完全内部)、因此"理想化!")

    回顾您的第三次数据采集(见上文)-主器件的 SPI 时钟与数据的关系"无可指责"。  

    我相信、在处于"SPI 从模式"时、只有主器件生成 SPI 时钟。   但是、您"必须"对从属 MCU 进行编程-尝试"匹配主器件"-这一事实让我感觉"频率增量"证明了系统故障的关键因素。   和您的示波器电容器-'不-或不能'-提供从器件的(内部)'到数据的 SPI 时钟' 捕捉/验证。  

    作为此理论的测试-

    • 您能否将您的'Rasp Pi '转换为'远比传统的' SPI 时钟速率?   
    • 此外-将 SPI 时钟速率(几乎)减半-更好地实现 SPI 通道的成功。  
    • 此外-您的"连接信号路径"是否可以减少并使其更加直接-以及(实际上)"经过测量和测试?"
    • 可能"信号反射"(驻波)会妨碍从 MCU 的数据采集。  与"减小路径长度"一起使用的串联电阻器应该会有所帮助。  您还可以"作为"振铃"的检查。  

    (一旦(洗衣店列表)实现、您可以系统地"提高速度"-仔细观察(就在哪里/何时)您的系统(我怀疑)然后"中断"。)   

    请确保牢固的接地连接到您的电路板-并且"运行中"-为两个电路板提供足够的电力...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。  

    时钟差异可能是造成这种差异的原因、但我还不确定。 问题是 SPIDev 库只接受某些值、这些值令人遗憾不是传统值。 另一种尝试方法可能是连接另一个微处理器板并使用传统值。

    我尝试了低得多的频率、结果是一样的。 环回模式的另一个区别是 SPI 模块在该实例上是主器件而不是从器件。

    现在、由于这是一个开发套件、我使用的跳线电缆并不完美、但与逻辑分析仪上的情况相比、噪声不够大。  

    我想我将尝试将 Tiva 板的另一个 SPI 模块连接到自己、并尝试这样做。 如果可以正常工作、则问题可能是 Raspberry 或我的连接上的时钟生成。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你们-我"在路上"、不断地得到"坏网关"、因为我系统地编写(并发送)我的渐进回应。

    某种程度上、要点#4 "无法存活"-幸运的是、我"定期"(也建议在家的孩子)、所以(现在)所有要点都可以显示出来。

    与逻辑分析仪一样好-我相信您需要(合理的)高性能示波器来监控数据在从器件的 SPI 输入端口的到达。  (我不记得那是 MOSI -脑衰变吗?)

    您采用"另一个电路板"和能够以(两种)传统 SPI 数据速率运行的电路板的想法(至少在最初)得到了支持!   (第一个字节成功到达这一事实表明("时钟增量随数据长度的增加"的可能性(可能)证明了后果。)

    我很惊讶您的"Pi 系统"如此严格-这是不好的...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我找到了解决方案。

    当我将 SSI1配置为主器件并将其连接到 SSI0时、我意识到 FSS 信号在字节之间脉冲、文档还显示了 Freescale SPI 的脉冲信号。 Raspberry Pi 库不会在字节之间对 FSS 信号进行脉冲、从而导致 SPI 的数据缓冲区不更新。

    这仍然是一项令人烦恼的要求、但至少我知道该怎么做。

    再次感谢您的回复。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    凯兰巴——“我应该注意到这一点!”   然而、您的"高效工作"非常好-(仍然)您对" MCU 的就绪连接"需要"稳定"的"已知良好信号和通信源"的认识证明非常好。

    我失败的唯一(轻微)原因是缺乏渠道标签-我注意到(现在) Ch-3 (可能)在整个4字节交易中传递了 FSS 信号-正如您所指出的-保持在"逻辑高电平"!

    有一个(可能)无家可归的人-就在我的“海滩边酒店”的街道上-我可以向他提供我的“技术服务”。  (可享受折扣-我甚至不能指责"分心"-我的豪华房可俯瞰大海-但"活动"是180°转移-在/周围的"泳池"。  (我在该诊断中失败-同样...)   (幸运的是、我的"假释文件"指定了"无尖锐物体...")