Hi
I am trying to talk to a SPI Flash Memory AT45DQ321 using the TM4C123 Launchpad.. I couldn't get the ID. Could someone please give me feedback on my code below. I'm using SSI2 on port B.
Thanks.
AJ
void InitializeFlash(void) { uint32_t dumpByte, *p; SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); while(!SysCtlPeripheralReady(SYSCTL_PERIPH_SSI2)) { }//end while(!SysCtlPeripheralReady(SYSCTL_PERIPH_SSI2)) SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOB)) { }//end while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOB)) 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_6 | GPIO_PIN_7); SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8); GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_5); GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_5, GPIO_PIN_5); SSIEnable(SSI2_BASE); p = (uint32_t*)&dumpByte; while(SSIDataGetNonBlocking(SSI2_BASE, p)) { } }//end void InitializeFlash(void) /***********************************************/ void ReadID(void) { uint32_t x, *p; p = (uint32_t*)&x; GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_5, 0x00); SSIDataPut(SSI2_BASE, 0x9F); while(SSIBusy(SSI2_BASE)) { } SSIDataGet(SSI2_BASE, p); FlashBuffer[0] = 0x000000FF & x; SSIDataPut(SSI2_BASE, 0x00); while(SSIBusy(SSI2_BASE)) { } SSIDataGet(SSI2_BASE, p); FlashBuffer[1] = 0x000000FF & x; SSIDataPut(SSI2_BASE, 0x00); while(SSIBusy(SSI2_BASE)) { } SSIDataGet(SSI2_BASE, p); FlashBuffer[2] = 0x000000FF & x; SSIDataPut(SSI2_BASE, 0x00); while(SSIBusy(SSI2_BASE)) { } SSIDataGet(SSI2_BASE, p); FlashBuffer[3] = 0x000000FF & x; SSIDataPut(SSI2_BASE, 0x00); while(SSIBusy(SSI2_BASE)) { } SSIDataGet(SSI2_BASE, p); FlashBuffer[4] = 0x000000FF & x; GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_5, GPIO_PIN_5); }//end void ReadID(void)