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.

[参考译文] SPI 通信

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/575459/spi-communication

主题中讨论的其他器件:ADS1259TM4C123GH6PM

您好!

在 CS 处于低电平时、是否可以将 SSI 配置为常规 SPI 模式以发送更多数据?

我们希望与 ADS1259通信、但在器件设置期间、ADS1259会将 CS 置为低电平。

因此、ADS1259需要以下条件:将 CS 设置为高电平、将 CS 拉为低电平、使用 SPI 发送6个数据、将 CS 拉为高电平。

但 TM4C SSI 文档指出、CS 在发送字之间是上拉和下拉的。

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

    由于 ADS1259一次使用8位数据、因此您可以使用"具有8位数据包数据的全双工高级 SSI "。 您没有提到您使用的 TM4C 器件、但这来自 TM4C129ENCPDT 数据表的第20.3.3节

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

    我是否可以赞扬供应商 Bob 回答的深度、关心和详细信息? 干得不错。

    也就是说、不应该很难"预测"此类"超基本" SPI 数据包数据传输的到达。 如果创建并(适当)宣传/呈现几个(添加)详细说明"高级 SPI 数据包管理"的示例、则可以大幅减少供应商响应者的"磨损/撕裂"(以及此处的所有情况(强制"搜索"此类有用的详细信息)。 (此类"技术帮助"经常被抑制(几乎隐藏)、并且仅供供应商员工知晓(这是不好的)、而且令人惊讶/令人惊叹的好奇...)

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

    如果您提供完整的器件型号、我可以更具体一些。 TI 有许多以 TM4C 开头的器件。 "x"是占位符。

    例如、在 TM4C123GH6ZRB 数据表中、第15.3.4.4节介绍了所需的格式。 请注意最后一段:

    "对于连续背靠背传输、SSInFss 管脚在连续的数据字之间保持低电平、并且端接与单字传输相同。"

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

    我的器件是 TM4C123GH6PM (我可以更改为任何其他 TM4C123x 或 TM4C129x、但 TM4C123x 会更好)

    我正在使用  \examples\peripherals\SSI\SPI_MASTER.c 示例作为起点。 我已删除 UART 相关代码。 我还删除了接收器件、因此该代码将作为 SPI 主器件发送3个字节。

    我的问题:FSS 的行为是怎样的? FSS 将在发送字之间变为空闲状态并变为低电平、还是仅在传输的和处进入空闲状态?

    如果 FSS 将空闲并变为低电平、那么我应该如何修改代码以使 FSS 在帧中保持低电平?

    FSS 将由 MCU 生成、或者 FSS 是否应从 C 代码切换?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于不需要 ADS1259上的 CS、因此最简单的接口是将引脚配置为 GIO 并在与 ADS1259通信时将其驱动为低电平。 实际上、如果没有其他器件共享连接到 ADS1259的 SSI 模块、则可以将 ADS1259上的 CS 连接到低电平。 如果使用 GIO 控制 ADS1259上的 CS、请确保在最后一位移出 FIFO 中最后一个字节之前不要将其驱动为高电平。 (等待 SSISR 的 BSY 位变为低电平。)

    但是、要回答您的特定问题、在该模式下、只要 FIFO 保持满、FSS 引脚就会保持低电平。 如果中断使 CPU 忙的时间过长、这可能会很困难。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该行为取决于 SPH?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、当采用 Freescale 格式时、字节之间的 FSS 行为、而发送 FIFO 不为空取决于 SPH。