Part Number: TM4C123GH6PZ
Other Parts Discussed in Thread: EK-TM4C123GXL
Tool/software: TI C/C++ Compiler
Hi sir,
I am facing some issue in SPI communication.In my program sending data from Master device to slave device and read the data from slave and display it on UART. Both master and slave are using same microcontroller(TM4c123GH6PZ). So I am writing separate program for Master and slave.In master device, flashing program is for sending a character and the Slave board ,flashing program is for reading and display the received character through UART.
Given blow is my Master Transmission program
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_SSI0));
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
while(!SysCtlPeripheralReady(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(SYSCTL_PERIPH_SSI0,SysCtlClockGet(),SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER,1000000,8);
SSIEnable(SYSCTL_PERIPH_SSI0);
SSIDataPut(SSI0_BASE,'A');
while(SSIBusy(SSI0_BASE));
Reception program in Slave given below
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);//enable both peripherals:
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_SSI0));
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
while(!SysCtlPeripheralReady(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(SYSCTL_PERIPH_SSI0,SysCtlClockGet(),SSI_FRF_MOTO_MODE_0,SSI_MODE_SLAVE,1000000,8);
SSIEnable(SYSCTL_PERIPH_SSI0);
while(SSIDataGetNonBlocking(SSI0_BASE, &pui32DataRx));
SSIDataGet(SSI0_BASE,&pui32DataRx);
UARTCharPut(UART0_BASE, pui32DataRx);
void InitConsole(void) //UART initialization
{
UARTClockSourceSet(SYSCTL_PERIPH_UART0,UART_CLOCK_SYSTEM);
//
// Enable the UART0 module.
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
//
// Wait for the UART0 module to be ready.
//
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_UART0));
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,(UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
}