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.

[参考译文] TMS570LS1227:TMS570 SPI 使用问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/826822/tms570ls1227-tms570-spi-usage-question

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我们在这里遇到了 SPI 问题。   我们将其与10个数据位配合使用以模拟 UART (仅输出)。   数据寄存器被写入、但管脚上没有信号出来(MOSI[0])。   驱动程序函数正在挂起、等待从未发生的传输。   由于引脚限制、MISO、CLK、CS 和 ENA 引脚在其他地方用作 GPIO。  就我所见、所有 SPI 寄存器均已正确初始化(halcogen 软件)。

我的问题:是否可以仅通过一个传输引脚使用 SPI?   我们在另一个器件上使用了相同的软件、但在该器件上分配了引脚、但根本没有从外部连接。   令我怀疑的是用户手册中的注释:注意:无论使用的并行引脚数量如何、对于任何 SPI 传输、SPISOMI[0]引脚都必须被编程为功能引脚。

那么、为了进行传输、我们是否必须在外部使用 MOSI、MISO 和 CLK (以及可能的 CS)?   还是只能将数据发送到 MOSI 引脚?

此致、

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

    哈根、

    SPI 是同步通信。 需要串行时钟 SPICLK。  SPICLK 由主器件生成。 SPIENA 是可选的、用于使能从器件 SPI 来延迟通信。

    如果只向一个器件发送数据、则可以使用两个引脚:SPICLK 和 SPISIMO。 SPICLK 是必须的。

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

    您好!

    好的、您显然没有读取我的帖子、因此我必须重复它:我们使用 SPI 输出来生成 UART 信号。  我们在接收端不使用另一个 SPI。  那么、我们仍然必须启用硬件时钟输出引脚才能在 MOSI 上获得信号?

    此致、

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

    大家好、哈根、

    如果要使用 SOMI 作为 SPI 功能、即使 SPI 时钟未连接到另一个器件、也必须将其配置为功能。 如果极性和相位为0、SIMO 数据在 SPICLK 的上升沿输出、输入数据在 SPICLK 的下降沿锁存。 如果未启用 SPICLK、或者您将此引脚配置为 GIO、则将无法在 SIMO 引脚上查看数据。

    如果您使用 SIMO 引脚作为 GIO、 并 将该 GIO 用作 UART 信号、则无需将 SPICLK 配置为正常工作。  

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

    '如果 SPICLK 未启用、或者您将此引脚配置为 GIO、您将无法在 SIMO 引脚上查看数据。'

    为什么?   当时钟未路由到外部时、停止输出信号的原因是什么?   您能否向我解释一下 TI 为什么决定浪费芯片空间来降低 IC 的功能、因为 IC 已经在电源上使用了几乎一半的引脚、否则无用的 ADC 输入只使用引脚呢????   设计人员在想什么???

    "如果您使用 SIMO 引脚作为 GIO、 并 将该 GIO 用作 UART 信号、则无需将 SPICLK 配置为正常工作。 "

    您是否认真地建议我使用位拆裂 GIO 来获取 UART 输出、作为20美元 IC 的权变措施????

    为什么我们一直面临问题、始终以 TI 的硬件和软件为中心、而其他制造商的产品却看不到这些问题?   我一定会与我们的客户(他们最初坚持 TI)进行认真的交谈。

    但是、感谢您的发帖、它证实了我们已经担心的事情。   我必须仔细检查、但我认为 MISO 是否也未路由到外部 SPI 停止。   因此,在使用 ti :-)时,一个输出信号需要3个引脚

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

    大家好、哈根、

    我对我的混淆词感到抱歉。  您无需将 SPICLK 路由到外部、只需将 SPICLK 配置为 SPI 功能信号。

    我想知道您为什么使用 SPI UART。 TI 提供了一个将 N2HET 用作 UART 的示例。

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

    您好!

    好的、我必须仔细检查这个引脚、并检查引脚/Gio 选择是如何在内部连接的。   但我非常确信、当我没有将信号路由到外部引脚(选择了 GIO)时、SPI 将不会开始传输。   而当引脚被选为功能 SPI 引脚时、SPI 起作用。  目前无法测试、但会尽快重复测试。

    系统中有两个协处理器、它们通过两个隔离层、每个隔离层都需要一个 UART。   另外还有两个外部 RS232接口(一个仅输出、一个双向)。   另一个也需要 UART 通信的 TI IC。    因此、这总共是5。  两个 HET 都已用作 UART、由于处理时间限制、在一个 HET 中运行两个 UART 似乎是不可能的(我认为代码使用34个时隙;使用32个时隙即可)。   只将输出 UART 添加到其中一个源文件(我相信您提供了)是可能的、但我看不到我们可以选择编写 HET 微代码(Motorola 在大约30年前就完成了该微代码计时器概念、但失败了、 因此、TI 再次尝试它、我感到很惊讶)。  因此、SPI 作为一个简单的输出唯一的 UART 似乎是一个好主意、我们在 EVM 上对其进行了测试(但输出引脚 MOSI、MISOI、CLK 处于活动状态)。  我们必须更改一些引脚并修改 PCB、这不是很好、但似乎我们没有选择。

    此致、

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

    大家好、哈根、

    感谢您的解释。

    如果只使用 SPI_SIMO 传输数据(作为 UART_TX)、 则应将 SPI_SIMO 和 SPI_CLK 配置为正常工作。 SPI_SOMI 不需要正常工作。  

    如果 SPI_CLK 引脚 与其他信号(例如 EPWM 信号  )进行多路复用、则可以将此引脚用作 EPWM、因为您不需要在此引脚上输出 SPI_CLK。