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.

SSI Module Not Responsive

Other Parts Discussed in Thread: TM4C1231H6PZ

 Hi,

We just added a new peripheral to our board that requires SSI communication, with the micro (tm4c1231h6pz) being master.  I've followed the spi_master.c example, but can't get the SSI0 module to be responsive.  After configuration, I see the select line (FFS) high, but when I monitor with a scope CLK, FFS, and TX during SSIDataPut, there are no changes on any of those lines (FFS stays high, CLK and TX show no output).  Am I missing some step in the initialization?  My code is below.  The "while(SSIBusy(SSI0_BASE))" statement passes, as if the data actually went out.

I tried initializing SSI1 as a sanity check and got the same results.

Thanks,

Cindy

     uint32_t pui32DataTx[3];

 

    ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);

 

    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

 

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

 

    GPIOPinConfigure(GPIO_PA2_SSI0CLK);

    GPIOPinConfigure(GPIO_PA3_SSI0FSS);

    GPIOPinConfigure(GPIO_PA4_SSI0RX);

    GPIOPinConfigure(GPIO_PA5_SSI0TX);

 

    GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2);

 

    SSIConfigSetExpClk(SSI0_BASE, ROM_SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,

                       SSI_MODE_MASTER, 1000000, 8);

 

    SSIEnable(SSI0_BASE);

 

    pui32DataTx[0] = 's';

 

    SSIDataPut(SSI0_BASE, pui32DataTx[0]);

              

    while(SSIBusy(SSI0_BASE))

    {

    }         

 

  • Hello Cynthia,

    If the FSS line is high it means it's an idle state. Is an SSI slave connected at the other end? The data being transmitted out should be read at the other end for the SSI to work.

    Also it is better to make sure that the FIFOs are empty before transmission is started after initialization, by calling the API "SSIDataGetNonBlocking".

    Thanks,
    Sai