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.

TM4C1294NCPDT: TM4C1294NCPDT: Can be set SPI speed as 17MHz.

Part Number: TM4C1294NCPDT

Tool/software:

Hi Support Team,

In TM4C1294NCPDT microcontroller SPI Speed can be set as exact 17MHz. Is it possible. When We are tried. Its not working.


void ConfigureSPI(uint32_t Clock)
{
uint32_t trashBin[1] = {0};

SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

GPIOPinConfigure(GPIO_PA2_SSI0CLK); // PA2 - SSI0CLK
// GPIOPinConfigure(GPIO_PA3_SSI0FSS); // PA3 - SSI0Fss
GPIOPinConfigure(GPIO_PA4_SSI0XDAT0); // PA4 - SSI0TX
GPIOPinConfigure(GPIO_PA5_SSI0XDAT1); // PA5 - SSI0RX

GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_2);

SSIConfigSetExpClk(SSI0_BASE, Clock, SSI_FRF_MOTO_MODE_1, SSI_MODE_MASTER, 17000000, 8);

SSIEnable(SSI0_BASE);
while (SSIDataGetNonBlocking(SSI0_BASE, &trashBin[0]))
{
}
}

Kindly do needful,

Thanks and Regards,

A. Ajith Kumar

  • What is your SYSCLK? The SPI speed is generated based on an integer division using SSICPSR:CPSDVSR and SSICR0:SCR [Ref TRM (SPMS433B) Sec 17.3.1], so SYSCLK needs to be some multiple of 17MHz.

    (The fastest available ALTCLK is PIOSC (=16MHz), so you can't get 17MHz out of that.)