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 问题。 我们将其与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个引脚
您好!
好的、我必须仔细检查这个引脚、并检查引脚/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。