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.

SPI TM4C129



HELLO!!

I am reading the ID's memorie(N25Q00), I am using protocol SPI, this is the code what I do it... worked in code composer 5.4 but the code didnt work in code composer 6... 

#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/pin_map.h"
#include "driverlib/gpio.h"
#include "inc/hw_ssi.h"
#include "driverlib/ssi.h"


void main(void)
{
uint32_t DataRx[3]={0,0,0};
//uint32_t DataRx[2]={0,0};
//uint32_t DataRx[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uint32_t Dummi[1]={0};

uint32_t SysClkFreq;

SysClkFreq = SysCtlClockFreqSet(SYSCTL_CFG_VCO_480| SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_25MHZ, 120000000);

//
// Enable Peripheral Clocks
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
SysCtlPeripheralReset(SYSCTL_PERIPH_SSI0);
//
// Enable pin PA4 for SSI0 SSI0XDAT0
//
GPIOPinConfigure(GPIO_PA4_SSI0XDAT0); //TX
GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_4);

//
// Enable pin PA5 for SSI0 SSI0XDAT1
//
GPIOPinConfigure(GPIO_PA5_SSI0XDAT1); //RX
GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5);

//
// Enable pin PA2 for SSI0 SSI0CLK
//
GPIOPinConfigure(GPIO_PA2_SSI0CLK);
GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2);

//
// Enable pin PA3 for SSI0 SSI0FSS
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_3);


GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_2|GPIO_PIN_3, GPIO_STRENGTH_4MA , GPIO_PIN_TYPE_STD);


SSIConfigSetExpClk(SSI0_BASE, SysClkFreq , SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 500000, 8);
SSIEnable(SSI0_BASE);

GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3 ,0xFF);
while(1)
{


//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// LECTURA DE ID
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPIOPinConfigure(GPIO_PA5_SSI0XDAT1); //RX
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3 ,0x00); //Chip Select en bajo ¡¡IMPORTANTE MANTENER EN BAJO EL CHIP SELECT durante una rutina SPI!!
SysCtlDelay(100); // Tiempo antes de enviar comando a la memoria

SSIDataPut(SSI0_BASE, 0x9F); // Se envía comando a la memoria 0x9F => ID Registrer
while(SSIBusy(SSI0_BASE)); // Condición para garantizar que toda la trama (8 bits) fueron enviados
SSIDataGet(SSI0_BASE, &Dummi[0]); // Como SPI tiene la capacidad para leer dato al mismo tiempo que se envia un dato; es necesario leer en el buffer.
SysCtlDelay(40); // Tiempo de guarda para darle tiempo para procesar al microcontrolador

SSIDataPut(SSI0_BASE, 0x00); // Para leer es importante envíar un byte Basura o Dummy para generar el reloj
while(SSIBusy(SSI0_BASE)); // Condición para garantizar que toda la trama (8 bits) fueron enviados
SSIDataGet(SSI0_BASE, &DataRx[0]); //Lectura de un byte en el buffer del SPI
SysCtlDelay(40); // Tiempo de guarda para darle tiempo para procesar al microcontrolador

SSIDataPut(SSI0_BASE, 0x00); // Para leer es importante envíar un byte Basura o Dummy para generar el reloj
while(SSIBusy(SSI0_BASE)); // Condición para garantizar que toda la trama (8 bits) fueron enviados
SSIDataGet(SSI0_BASE, &DataRx[1]); //Lectura de un byte en el buffer del SPI
SysCtlDelay(40); // Tiempo de guarda para darle tiempo para procesar al microcontrolador

SSIDataPut(SSI0_BASE, 0x00); // Para leer es importante envíar un byte Basura o Dummy para generar el reloj
while(SSIBusy(SSI0_BASE)); // Condición para garantizar que toda la trama (8 bits) fueron enviados
SSIDataGet(SSI0_BASE, &DataRx[2]); //Lectura de un byte en el buffer del SPI

SysCtlDelay(100); // Tiempo antes de deshabilitar el chip select (selección de esclavo)
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3 ,0xFF); // Deseleccionar el esclavo (chip select en ALTO)

SysCtlDelay(4000);

printf("%s ","ID : ");
printf("%02X %02X %02X\n ",DataRx[0],DataRx[1],DataRx[2]);

}
}

somebody talk to me, the function printf, doesnt work in code composer 6