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.

TM4C123GH6PM: SoftSSI mapping to SPI lines

Part Number: TM4C123GH6PM

Hi Folks,

I'm creating a custom PCB and want to correctly connect the SoftSSI lines to drive a SPI device:

I have the following available:

SoftSSIClk - PA2
SoftSSIFss - PA3
SoftSSIRx - PA4
SoftSSITx - PA5

I'm figuring:

SoftSSIClk -> SPI_SCK
SoftSSIRx -> SPI_MISO
SoftSSITx -> SPI_MOSI

But I'm really not sure what to do with: SoftSSIFss   what is it in terms of SPI communications?  (Other than the 3 lines above, I just need chip select which I can use any GPIO for.)

thanks for any clarification!

Bob

  • Hello Bob,

    I think the API to configure SS signal best explains your options - you can either set it and have the Soft SSI driver handle the SS line for you, or manually control SS in your application, whichever works better for you.

    //*****************************************************************************
    //
    //! Sets the GPIO pin to be used as the SoftSSI Fss signal.
    //!
    //! \param psSSI specifies the SoftSSI data structure.
    //! \param ui32Base is the base address of the GPIO module.
    //! \param ui8Pin is the bit-packed representation of the pin to use.
    //!
    //! This function sets the GPIO pin that is used for the SoftSSI Fss signal.
    //! If there is not a GPIO pin allocated for Fss, the SoftSSI module does not
    //! assert/deassert the Fss signal, leaving it to the application either to do
    //! manually or to not do at all if the slave device has Fss tied to ground.
    //!
    //! The pin is specified using a bit-packed byte, where bit 0 of the byte
    //! represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.
    //!
    //! \return None.
    //
    //*****************************************************************************
    void
    SoftSSIFssGPIOSet(tSoftSSI *psSSI, uint32_t ui32Base, uint8_t ui8Pin)
    {
        //
        // Save the base address and pin for the Fss signal.
        //
        if(ui32Base == 0)
        {
            psSSI->ui32FssGPIO = 0;
        }
        else
        {
            psSSI->ui32FssGPIO = ui32Base + (ui8Pin << 2);
        }
    }

    Best Regards,

    Ralph Jacobi