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.

[参考译文] TMS570LS0432:SPI -发送和接收缓冲器

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS570LS0432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/904619/tms570ls0432-spi---transmit-and-receive-buffer

器件型号:TMS570LS0432

你好!

通用 SPI 协议规定、用于在 SIMO 和 SOMI 引脚上发送或接收数据的数据寄存器基本上是循环队列、即当您发送数据时(假设主器件是 TMS570LS0432控制器、而从器件显然是能够进行 SPI 通信的随机器件)、 然后、当 SIMO 和 SOMI 引脚以这种方式连接时、从机数据寄存器缓冲区中的数据将加载到数据缓冲区中。 因此、如果我只需要从从从器件读取一些数据、我就必须从主器件发送一些虚拟数据、以便接收数据。

但是、在 TMS570LS0432中有独立的发送和接收缓冲器(TXBUF 和 RXBUF 以及单独的接口寄存器、即 SPIDATA0/SPIDATA1和 SPIBUF)。 因此、当我连接到从器件(本例中为 CAT25640 EEPROM)时、如何处理数据事务?

基本上、由于 TMS570LS0432中有针对 Tx 和 Rx 的独立缓冲器、我是否需要遵循/牢记泵入虚拟数据以从从器件接收数据的规则、或者很明显、任何数据在请求时从从从器件传输 (比如说某个地址)直接来自我的 SPIBUF 寄存器( 或 RXBUF)吗?

此致、

Chetan。  

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

    您好!

    在 SPI 中、只有主器件生成时钟信号。 始终只有一个主器件、但可以有多个从器件。 当数据从主器件发送到从器件时、数据将通过一条名为 SIMO 的数据线路发送。 如果从器件需要将响应发送回主器件、主器件将继续生成预先排列的时钟周期数、而从器件将数据放置在另一条名为 SOMI 的数据线上。

    由于主器件始终生成时钟信号、因此它必须提前知道从器件何时需要返回数据以及将返回多少数据。 例如、要从 CAT25640 EEPROM 状态寄存器读取数据、主器件需要发送命令"b00000101"、然后发送另一个虚拟数据字节、EEPROM 会在主器件发送虚拟数据时返回寄存器的数据。