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 - Transmit and Receive Buffer

Part Number: TMS570LS0432

Hi!

The common SPI protocol says that the data register used for transmitting or receiving on SIMO and SOMI pins respectively is basically a circular queue i.e., when you transmit data (Say MASTER is TMS570LS0432 controller and Slave is some random device capable of SPI communication obviously), then the data that was there in the Slave data register buffer gets loaded in your data buffer as the SIMO and SOMI pins are connected in such a fashion. Therefore, if I just have to read some data from a Slave device, I will have to transmit some dummy data from my Master so that I receive the data.

However, in TMS570LS0432 there are separate transmit and receive buffers (TXBUF and RXBUF along with seperate interface registers namely the SPIDATA0/SPIDATA1 and the SPIBUF). Therefore, when I connect to a Slave device (CAT25640 EEPROM in my case), how do I go about a data transaction?

Basically, because there are seperate buffers for Tx and Rx in TMS570LS0432, do I need to follow/keep in mind the rule of pumping in Dummy data in order to receive data from slave or is it just so obvious that whatever data is transmitted from Slave upon requesting (lets say by some address) directly comes and sits in my SPIBUF register  (or RXBUF) ?

Regards,

Chetan. 

  • Hello,

    In SPI, only master generates the clock signal. There is always only one master, but there can be multiple slaves. When data is sent from the master to a slave, it's sent on a data line called SIMO. If the slave needs to send a response back to the master, the master will continue to generate a pre-arranged number of clock cycles, and the slave will put the data onto another data line called SOMI.

    Because the master always generates the clock signal, it must know in advance when a slave needs to return data and how much data will be returned. For example, to read data from CAT25640 EEPROM status register, master needs to send command "b00000101", then send another byte of dummy data, the EEPROM returns the register's data when master transmits the dummy data.