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.

SPISTE pin on F2808 clarification

I'm doing some work with SPI, and I'm in need of some clarification. Does the F2808 require the SPISTE pin to be used, or can it be ignored (aka GPAMUX set to GPIO mode on the SPISTE pin)? I'm short on GPIO space and would like to use the SPISTE pin for GPIO purposes. The documentation implies 3-wire SPI is possible, but does not explicitly mention how to set it up.

 

Thanks

  • BryanHughes said:

    I'm doing some work with SPI, and I'm in need of some clarification. Does the F2808 require the SPISTE pin to be used, or can it be ignored (aka GPAMUX set to GPIO mode on the SPISTE pin)? I'm short on GPIO space and would like to use the SPISTE pin for GPIO purposes.

    The documentation implies 3-wire SPI is possible, but does not explicitly mention how to set it up.

    Would you point to the documentation you are referencing?  I don't interpret the same functionality you state regarding supporting a 3-wire SPI mode.

  • SPRU059C, page 2-5, discussing the TALK bit-field. It states "For the 4-pin option, ensure to enable the receiver’s SPISTE input pin." which to me implies that there is also a 3-pin option, or at least something else that is not 4-pin. Was I reading into it too much, and is 3-wire not supported?

  • It depends whether DSP is a master or a slave on the bus:

    If it is master, the SPISTE pin is optional, but you have to be careful how your slave devices synchronize to the SPI bus.

    If the DSP is slave, i assume the SPISTE pin is necessary, though I am not certain as I never tested this mode.

     

    Regards, Mitja

  • SPISTE is used when the 28x operates as SPI- slave. In this case SPISTE is the "Chip select" signal, which allows a master to address the 28x. In that way a master is able to communicate with more than one slave on the same interface, including the C28x-slave.

    If the C28x is in Master Mode, you don't need SPISTE.

     

     

  • So I did some testing with the F2808 in slave mode with the SPISTE pin set as a GPIO pin...low and behold it worked. I did a stress test with about 30,000 transfers to and from the slave device and there were no problems. Undocumented trick I guess. I'm not doing any SPI-bused transmissions in my project, so that's not an issue.

  • I'm glad you found a way.  After reviewing your post, i looked at the TMS320x280x, 2801x, 2804x Serial Peripheral Interface (SPI) Reference Guide (SPRUG72).  On page 12 in Section 1.1.1 there is a figure, Figure 1-2, of the SPI peripheral block diagram with some detail on how the various control bits affect the behavior of the peripheral.  You can see that the /SPISTE signal essentially closes a switch which enables shifting of data to occur when /SPISTE=0 in Slave mode.  This substantiates your observation above.  What I wasn't sure is how this peripheral was integrated into the F2808 design when factoring in the pin multiplexing modes between SPI, GPIO, etc.  It appears that even when the pin is configured for GPIO mode, the signal on the input side of this pin is still propagated to the SPI peripheral.  I wouldn't always count on that being the case, meaning, that could possibly be different from device to device.