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.

RTOS/EK-TM4C123GXL: Is SSI FSS is equivalent to SPI SS?

Part Number: EK-TM4C123GXL

Tool/software: TI-RTOS

Dear team,

I'm using TM4C123GXL for evaluation purpose and need to communicate with the sensor using SPI. I'm using TI-RTOS for the project and I used SPI_Transfer for spi communication.
While connecting the hardware I got a doubt that SSI FSS is equivalent to SPI SS/CS?
My connection as follows:

Master                        Slave

PA2(SSI0CLK)             SCK

PA3(SSI0FSS)             CS

PA4(SSI0RX)              MISO

PA5(SSI0TX)              MOSI

Is my configuration correct? or do I need to change any connections?

Best Regards,

Yashwanth 

  • Hi Yashwanth ,
    Your understanding is correct. The FSS signal is equivalent to the SPI CS in Freescale mode.
  • Dear Charles,

    Thanks for your reply. Is my conncetions to the slave correct i.e., TX of Microcontroller connection to MISO of Sensor?

    Best Regards,
    Yashwanth Kumar.
  • Hi Yashwanth,
    Please connect the PA5 (TX) to the MISO of your sensor.
  • Dear Charles,

    Thanks for your response. I'll connect and check the spi connection and update you the same.

    Best Regards,
    Yashwanth Kumar.
  • Dear charles,

    I have problem with spi communication i have used SSI0FSS pin to Chip select of my sensor and try to read the values. All the values are read as 00 due to chip select is going high for every 8 clock cycles. ( As shown in below picture)

    My configuration fo the above output for spi params as follows:

        SPI_Handle rightSpi;
        SPI_Params rightSpiParams;
        SPI_Transaction rightSpiTrans;
        bool transferOK;
        bool receiveProper;
    
        SPI_Params_init(&rightSpiParams);
        rightSpiParams.mode = SPI_MASTER;
        rightSpiParams.dataSize = 8;
        rightSpiParams.bitRate = 1000000;
        rightSpiParams.frameFormat = SPI_POL0_PHA0;
    
        rightSpiTrans.count = sizeof(rightTxBuffer);
        rightSpiTrans.txBuf = (Ptr)rightTxBuffer;
        rightSpiTrans.rxBuf = NULL;
    
        transferOK = SPI_transfer(rightSpi, &rightSpiTrans);

    I manually used one GPIO pin to pull down before the SPI transfer and pulling up after the SPI transfer  it giving desired output. But its not fast.(As below picture.)

        GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, 0);
        transferOK = SPI_transfer(rightSpi, &rightSpiTrans);
        GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, 1);

    I think problem is with chip select line.. which need to be pulldown for the whole transaction. But in my case if I didn't use the Manual GPIO Chip select is going high for every 8 bits.

    Please help how can over come this problem. Any params configuration values need to be change??

    Thanks and Regards,

    Yashwanth Kumar.

  • Hi Yashwanth,
    Unfortunately, it is not possible to hold the Fss pin low for the duration of multiple bytes of data transmission in the TM4C123 device. Your workaround using the GPIO is the only solution I can think of unless you are willing to switch to the TM4C129 device where you can configure the Fss to stay active for as long as the TXFIFO is not empty.
  • Dear Charles,

    Thanks for your quick reply. I will go with the Workaround as of now.

    Regards,
    Yashwanth Kumar