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.

TMS320F280040-Q1: SPI slave communication in TMS320f280040

Part Number: TMS320F280040-Q1
Other Parts Discussed in Thread: RM57L843

Hi,

I want to use SPI communication between two TI controller RM57L8x(SPI master) and  TMS320f280040(SPI slave).

I will get 3,16 byte data from master, so I configured CHARLEN as 16 and buffer length as 3  master mcu code. 

I have configured TMS320f280040 as slave using below settings.

//GPIO config
            // SPISOMIA.
            //
            GPIO_setMasterCore(DEVICE_GPIO_PIN_SPISOMIA, GPIO_CORE_CPU1);
            GPIO_setPinConfig(DEVICE_GPIO_CFG_SPISOMIA);
            GPIO_setPadConfig(DEVICE_GPIO_PIN_SPISOMIA, GPIO_PIN_TYPE_PULLUP);
            GPIO_setQualificationMode(DEVICE_GPIO_PIN_SPISOMIA, GPIO_QUAL_ASYNC);

            //
            // SPISIMOA.
            //
            GPIO_setMasterCore(DEVICE_GPIO_PIN_SPISIMOA, GPIO_CORE_CPU1);
            GPIO_setPinConfig(DEVICE_GPIO_CFG_SPISIMOA);
            GPIO_setPadConfig(DEVICE_GPIO_PIN_SPISIMOA, GPIO_PIN_TYPE_PULLUP);
            GPIO_setQualificationMode(DEVICE_GPIO_PIN_SPISIMOA, GPIO_QUAL_ASYNC);

            //
            // SPISTEA.
            //
            GPIO_setMasterCore(DEVICE_GPIO_PIN_SPISTEA, GPIO_CORE_CPU1);
            GPIO_setPinConfig(DEVICE_GPIO_CFG_SPISTEA);
            GPIO_setPadConfig(DEVICE_GPIO_PIN_SPISTEA, GPIO_PIN_TYPE_PULLUP);
            GPIO_setQualificationMode(DEVICE_GPIO_PIN_SPISTEA, GPIO_QUAL_ASYNC);

            //
            // SPICLKA.
            //
            GPIO_setMasterCore(DEVICE_GPIO_PIN_SPICLKA, GPIO_CORE_CPU1);
            GPIO_setPinConfig(DEVICE_GPIO_CFG_SPICLKA);
            GPIO_setPadConfig(DEVICE_GPIO_PIN_SPICLKA, GPIO_PIN_TYPE_PULLUP);
            GPIO_setQualificationMode(DEVICE_GPIO_PIN_SPICLKA, GPIO_QUAL_ASYNC);


//SPI configuration
    SPI_disableModule(SPIA_BASE);

    //
    // SPI configuration. Use a 500kHz SPICLK and 16-bit word size.
    //
    SPI_setConfig(SPIA_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA0,SPI_MODE_SLAVE, 500000, 16);

    //
    // FIFO and interrupt configuration
    //
    SPI_enableFIFO(SPIA_BASE);
    SPI_resetRxFIFO(SPIA_BASE);
    SPI_clearInterruptStatus(SPIA_BASE, SPI_INT_RXFF);
    SPI_setFIFOInterruptLevel(SPIA_BASE, SPI_FIFO_TX2, SPI_FIFO_RX3);
    SPI_enableInterrupt(SPIA_BASE, SPI_INT_RXFF);

    //
    // Configuration complete. Enable the module.
    //
    SPI_enableModule(SPIA_BASE);

// reception process
 uiData = SPI_readDataBlockingFIFO(SPIA_BASE);

uiData is of type uint16_t

When I run the code and see in uiData in debug window, it is coming as 0.

I also verified the SPICLK,MOSI, CS signals on scope it is correct.

What I am missing while configuring slave mcu, am I am doing anything wrong configuration ?

Please help me in this.

Thanks

Pratik