Part Number: TM4C123GH6PM
Tool/software: Code Composer Studio
Hello,
I try to configurate SSI (SPI) but without success. I have problem with clock signal. I try with different SSI base (SSI0_BASE and SSI2_BASE) and I got same result, clock is 0 all the time. When I put oscilloscope on clock, result is same, always 0. Here is code :
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_gpio.h"
#include "debug.h"
#include "rom.h"
#include "sysctl.h"
#include "gpio.h"
#include "rom_map.h"
#include "abi_prefix.h"
#include "crc_defines.h"
#include "rtos_bindings.h"
#include "fpu.h"
#include "adc.h"
#include "aes.h"
#include "arm_acle.h"
#include "assert.h"
#include "can.h"
#include "comp.h"
#include "complex.h"
#include "cpu.h"
#include "cpy_tbl.h"
#include "crc.h"
#include "ctype.h"
#include "des.h"
#include "etsi.h"
#include "interrupt.h"
#include "inttypes.h"
#include "lcd.h"
#include "iso646.h"
#include "limits.h"
#include "lowlev.h"
#include "locale.h"
#include "mpu.h"
#include "onewire.h"
#include "pprof.h"
#include "pin_map.h"
#include "stdio.h"
#include "stdnoreturn.h"
#include "stdlib.h"
#include "sysexc.h"
#include "signal.h"
#include "shamd5.h"
#include "tm4c123gh6pm.h"
#include "i2c.h"
#include "time.h"
#include "timer.h"
#include "pwm.h"
#include "uart.h"
#include "hw_uart.h"
#include "ssi.h"
#include "hw_ssi.h"
void Init_SSI_2(void){
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);
GPIOPinConfigure(GPIO_PB4_SSI2CLK);
GPIOPinConfigure(GPIO_PB5_SSI2FSS);
GPIOPinConfigure(GPIO_PB6_SSI2RX);
GPIOPinConfigure(GPIO_PB7_SSI2TX);
GPIOPinTypeSSI(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);
SSIDisable(SSI2_BASE);
SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8);
SSIEnable(SSI2_BASE);
}
void main(void){
SysCtlClockSet(SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ | SYSCTL_SYSDIV_4); // clock set 50MHz
Init_SSI_2();
while(1){
if(GPIOPinRead(GPIO_PORTB_BASE, GPIO_PIN_4) == GPIO_PIN_4){
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
SysCtlDelay(50000000);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, ~GPIO_PIN_1);
SysCtlDelay(50000000);
}
}
}