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.

SSI0 and T3CCP0 on Tiva

Other Parts Discussed in Thread: TM4C1294KCPDT

Hi ,

I am transitioning a design from Stellaris LMS9B90  to TM4C1294KCPDT . 

In Stellaris PA0-PA5 was assigned for SSI0 and PA6 was used for CCP1 . Is it possible to use this pin combination in Tiva for SSI0(PA0-PA5) and T3CCP0(PA6) ?

I used Tiva Pin Mux utility to check the pin configuration and it shows the above combination works. 

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_SSI0);

//
// Configure GPIOA_3 as the SSI Chip Select
//
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_3);
ROM_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, GPIO_PIN_3);

//
// Configure GPIO Pins for SSI0 mode.
//
ROM_GPIOPinConfigure(GPIO_PA2_SSI0CLK);
ROM_GPIOPinConfigure(GPIO_PA4_SSI0XDAT0);
ROM_GPIOPinConfigure(GPIO_PA5_SSI0XDAT1);
ROM_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_2);

SSIConfigSetExpClk(SSI0_BASE, g_ui32SysClock, SSI_FRF_MOTO_MODE_3,
SSI_MODE_MASTER, 1000000, 8);

SSIEnable(SSI0_BASE);

Referring to the code above - Does SSIEnable() function enable PA0-PA7 as SSI or just enables the configured pins PA0-PA5 ? 

What should I do differently to make sure that Port A is configured only in Legacy Mode. If configured correctly what will be the value of GPIOA_DIR register ?

Thanks,

Chandana 

  • Hello Chandana

    First of all Tiva Pin Mux tool is not supported any more and has been replaced by TI Pin Mux tool for TM4C. You can find the link for the same in the following post

    e2e.ti.com/.../374640

    Secondly SSI is 4 pins in TM4C for legacy mode so there cannot be 6 pins as you have indicated (PA0-PA5). Please ensure and clarify the correctness of the same.

    Thirdly in the code the GPIO Port A has not been enabled by call of SysCtlPeripheralEnable API, so you may run into a Bus Fault. Using TI Pin Mux utility the same is automatically taken care

    Fourthly SSIEnable the SSI peripheral and not GPIO. The GPIOPinConfigure and GPIOPinTypeSSI configure GPIO for SSI function and not SSI Peripheral

    Lastly, the configuration of SSI for Legacy or Advanced mode is done by SSIConfigSetExpClk and other SSI API's. In the above configuration SSI will be in legacy mode.

    Regards
    Amit
  • Hi Amit,

    My mistake in specifying the pins ,I meant PA2-PA5. The code I have shown above is incomplete . I was trying to show the SSIEnable section .

    So finally to my question - In the Tiva I mentioned ,is it possible to use SSI0 (PA2-PA5) in Legacy mode and still be able to configure PA6 for T3CCP0? Because PA6 is part of SSI0 peripheral shown as SSI0DAT2 .

    Thanks,
    Chandana
  • Hello Chandana

    Yes. it can be used for Timer. Any pin if not configured for a peripheral function will not work for that peripheral.

    Regards
    Amit