Dear TIVA Users,
i'm trying to configure the SSI2 port for using SPI.
the weird thing is, when execute SSIConfigSetExpClk he hangs.
He wont reach my puts("test");
this is the code i'm using:
#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/ssi.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "driverlib/rom.h"
int main(void)
{
uint32_t data;
//config clock
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_25MHZ);
//enable peripherals
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
GPIOPinConfigure(GPIO_PG7_SSI2CLK);
GPIOPinConfigure(GPIO_PG4_SSI2XDAT1);
GPIOPinConfigure(GPIO_PG5_SSI2XDAT0);
SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_1,
SSI_MODE_MASTER, 100000, 8);
puts("test\n");
//
// Enable the SSI0 module.
//
SSIEnable(SSI2_BASE);
//configure ss pin
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);
//set SS low
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0);
uint8_t i;
puts("start loop..\n");
for(i = 0; i < 100; i++) {
SSIDataPut(SSI2_BASE, 0x03);
while(SSIBusy(SSI2_BASE));
SSIDataGet(SSI2_BASE, &data);
while(SSIBusy(SSI2_BASE));
puts(data);
}
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0xFF);
return(0);
}