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.

[参考译文] TM4C1231H6PGE:有关 TM4C123内 SSI 模块的问题

Guru**** 2595925 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/672626/tm4c1231h6pge-questions-on-ssi-module-within-tm4c123

器件型号:TM4C1231H6PGE
主题中讨论的其他器件:TM4C123

大家好、通过阅读 TM4C123的数据表、我不是很清楚 SSI 传输的时序是如何工作的、我想知道是否有人可以在这里澄清一些问题。 我将 SSI1用作 SPI 主机、下面是我不确定的情况:

1) 1)变速器何时启动? 只要 SSICR1中的发送 FIFO 不为空且 SSE 位置位、数据就会被发送出去了吗?

2) 2) SSI 模块内的发送/接收逻辑是否确定所有 SPI 总线时序? 例如、当向外发送数据时、它会将 SSI1Fss 引脚驱动为低电平以用作芯片选择、并启用 SSI1clk 引脚以发送时钟?

3)如果2)为 true、从 Salve 读取数据时、发送/接收逻辑如何知道从器件何时完成数据发送、以便它知道应将 SSI1Fss 保持为低电平的时间?

谢谢

Richard

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

    您好 Richard、

    [引用用户="Richard Chen75"]

    1) 1)变速器何时启动? 只要 SSICR1中的发送 FIFO 不为空且 SSE 位置位、数据就会被发送出去了吗?

    [/报价]

    是的

    [引用用户="Richard Chen75"]

    2) 2) SSI 模块内的发送/接收逻辑是否确定所有 SPI 总线时序? 例如、当向外发送数据时、它会将 SSI1Fss 引脚驱动为低电平以用作芯片选择、并启用 SSI1clk 引脚以发送时钟?

    [/报价]

    您的理解是正确的。

    [引用用户="Richard Chen75"]

    3)如果2)为 true、从 Salve 读取数据时、发送/接收逻辑如何知道从器件何时完成数据发送、以便它知道应将 SSI1Fss 保持为低电平的时间?

    [/报价]

    如果您是主设备、则控制 SSI1Fss 和 SSICLK。 主内核知道它需要为从器件生成多少个时钟(基于配置的字符长度)、在传输时、它将保持芯片选择为低电平。  从器件将期望 SPI 时钟来自主器件、并且根据商定/配置的字符长度、从器件将在其 MISO 引脚上发送其数据。 您可以使用传输结束中断来知道最后一位完成的结束。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Charles、非常感谢您的快速回答! 对于问题3)、是的、我使用 SSI1作为 SPI 主器件、在读取时、以下数据将通过 MOSI 传输到从器件:1)命令字节2)寄存器索引。 在接收到这两个字节后、从器件应通过 MISO 线路将寄存器值作为应答发送出去、 我不理解的是、发送/接收逻辑是如何知道从器件将发送多少个字节、以便它可以将 SSISFss 保持为低电平、并保持 SSI1Clk 为活动状态、以保证应答的数据将成功传输到主器件? 在这方面、软件是否有可用于配置 SSI1模块的接口?

    再次感谢、
    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    或者、我应该发送与从器件相同数量的虚拟数据、使 SSI1模块保持 SSI1Fss 和 SSI1Clk 有效?

    谢谢
    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Richard、
    很抱歉我没有回复您。 您还在寻找答案吗? 如果您是主控方、则您知道要读取的字节数。 如果您需要读取 N 个字节、那么您的主器件需要为 N 个字节提供时钟。 从器件是无功器件。 如果受控器件处于某种类型的突发模式、那么只要时钟和芯片选择处于激活状态、它就应该通过 MISO 继续回复数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Charles、是的、我的代码按照您的回复中提到的方式工作。

    此致、

    Richard