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.

Configuration of SPI interface as slave seems to be influencing the chip select signal

Other Parts Discussed in Thread: TMS570LS20216, HALCOGEN

Hi,

I have a TMS570LS20216 USB stick and running the SPI slave demo code (example_mibspi_halcogen_ccs_c_project.zip) obtained from the TMS570 wiki (http://processors.wiki.ti.com/index.php/Category:TMS570) in the 'Training & Videos' section.  This zip contains an SPI slave project that I am running with no changes to the code.

I have the:

MibSPI1SOMI,
MibSPI1SIMO,
MibSPI1CLK,
MibSPI1CSO

pins connected to an SPI device that is acting as master.  I can successfully transfer data from master to slave and vice versa.  However,  when observing the chip select signal on an oscilloscope the chip select signal appears to behave in a strange way.

1.    When the TMS570 (slave) is not connected to the master the chip select of the master is observed to vary between 0 and 3.3 V.  This is as expected.

2.    When the TMS570 (slave) is connected to the master, but no slave software running, the chip select is observed to vary between 0 and 3.3 V.    This is as expected.

3.    When the TMS570 (slave) is connected to the master and the slave software running, the chip select is observed to vary between 0 and 200 mV.    This is not as expected.

From the above observations, I conclude the chip select is being influenced by the slave software running on the TMS570.  I have read the TRM and felt that reversing the pull-up pull-down selection during SPI initialisation may have an effect:

    /** - SPI1 Port pullup / pulldown selection */
    spiREG1->PCPSL  =  0        /* SCS[0] */     // SKCN - was 1 changed to 0
                    | (0 << 1)  /* SCS[1] */     // SKCN - was 1 changed to 0
                    | (0 << 2)  /* SCS[2] */     // SKCN - was 1 changed to 0
                    | (0 << 3)  /* SCS[3] */
                    | (1 << 8)  /* ENA */
                    | (1 << 9)  /* CLK */
                    | (1 << 10)  /* SIMO */
                    | (0 << 11); /* SOMI */

but it does not.

Can you help me diagnose what configuration of the SPI slave interface is influencing the chip select line?