32#define SPI_FLASH_PORT SPI0
57 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
60 SPI_FLASH_PORT->CLKDIV = (SPI_FLASH_PORT->CLKDIV & ~SPI_CLKDIV_DIVIDER1_Msk) | (0x14 <<
SPI_CLKDIV_DIVIDER1_Pos);
73 unsigned int au32SourceData;
74 unsigned int au32DestinationData;
80 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
83 au32SourceData = 0x90;
84 SPI_FLASH_PORT->TX0 = au32SourceData;
95 SPI_FLASH_PORT->TX0 = au32SourceData;
105 au32SourceData = 0x0;
106 SPI_FLASH_PORT->TX0 = au32SourceData;
113 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
116 au32DestinationData = SPI_FLASH_PORT->RX0;
118 return (au32DestinationData & 0xffff);
129 unsigned int au32SourceData;
135 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
138 au32SourceData = 0x06;
139 SPI_FLASH_PORT->TX0 = au32SourceData;
146 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
149 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
152 au32SourceData = 0xc7;
153 SPI_FLASH_PORT->TX0 = au32SourceData;
160 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
171 unsigned int au32SourceData;
172 unsigned int au32DestinationData;
178 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
181 au32SourceData = 0x0500;
182 SPI_FLASH_PORT->TX0 = au32SourceData;
189 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
192 au32DestinationData = SPI_FLASH_PORT->RX0;
194 return (au32DestinationData & 0xFF);
205 unsigned int au32SourceData;
206 unsigned int au32DestinationData;
212 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
215 au32SourceData = 0x3500;
216 SPI_FLASH_PORT->TX0 = au32SourceData;
223 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
226 au32DestinationData = SPI_FLASH_PORT->RX0;
228 return (au32DestinationData & 0xFF);
239 unsigned int ReturnValue;
244 ReturnValue = ReturnValue & 1;
246 while(ReturnValue!=0);
263 unsigned int au32SourceData;
264 unsigned int Counter;
270 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
273 au32SourceData = 0x06;
274 SPI_FLASH_PORT->TX0 = au32SourceData;
281 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
284 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
287 au32SourceData = 0x02;
288 SPI_FLASH_PORT->TX0 = au32SourceData;
298 au32SourceData = StartAddress;
299 SPI_FLASH_PORT->TX0 = au32SourceData;
308 for(Counter=0; Counter<ByteCount; Counter++)
311 au32SourceData = DataBuffer[Counter];
312 SPI_FLASH_PORT->TX0 = au32SourceData;
320 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
335void SpiFlash_ReadData(
unsigned char *DataBuffer,
unsigned int StartAddress,
unsigned int ByteCount)
337 unsigned int au32SourceData;
338 unsigned int au32DestinationData;
339 unsigned int Counter;
345 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk) | 0x1;
348 au32SourceData = 0x03;
349 SPI_FLASH_PORT->TX0 = au32SourceData;
359 au32SourceData = StartAddress;
360 SPI_FLASH_PORT->TX0 = au32SourceData;
369 for(Counter=0; Counter<ByteCount; Counter++)
372 au32SourceData = 0x0;
373 SPI_FLASH_PORT->TX0 = au32SourceData;
380 au32DestinationData = SPI_FLASH_PORT->RX0;
381 DataBuffer[Counter] = (
unsigned char) au32DestinationData;
385 SPI_FLASH_PORT->SSR = (SPI_FLASH_PORT->SSR & ~SPI_SSR_SSR_Msk);
Nano100 series peripheral access layer header file. This file contains all the peripheral register's ...
#define SPI_CTL_RX_NEG_Msk
#define SPI_CTL_GO_BUSY_Msk
#define SPI_CTL_TX_BIT_LEN_Msk
#define SPI_CTL_TX_NEG_Msk
#define SPI_CTL_SLAVE_Msk
#define SPI_CTL_TX_BIT_LEN_Pos
#define SPI_CLKDIV_DIVIDER1_Pos
NuEdu-Basic01 SPI Flash driver header file for NuEdu-SDK-Nano130.
#define CLK_APBCLK_SPI0_EN_Msk
#define CLK
Pointer to CLK register structure.
#define SYS
Pointer to SYS register structure.
#define SYS_PE_L_MFP_PE1_MFP_SPI0_SS0
#define SYS_PE_L_MFP_PE3_MFP_SPI0_MISO0
#define SYS_PE_L_MFP_PE4_MFP_SPI0_MOSI0
#define SYS_PE_L_MFP_PE2_MFP_SPI0_SCLK
void SpiFlash_PageProgram(unsigned char *DataBuffer, unsigned int StartAddress, unsigned int ByteCount)
This function do the page programming to SPI Flash device.
void Open_SPI_Flash(void)
Open GPIO port for SPI interface and configure this SPI controller as Master, MSB first,...
void SpiFlash_WaitReady(void)
Waiting for the BUSY bit of SPI Flash that be cleared to 0.
unsigned int SpiFlash_ReadMidDid(void)
Read back the Manufacturer ID and Device ID from SPI Flash device.
unsigned int SpiFlash_ReadStatusReg1(void)
Read back the Status Register 1 from SPI Flash device.
void SpiFlash_ChipErase(void)
This function do the chip erasing to SPI Flash device.
unsigned int SpiFlash_ReadStatusReg2(void)
Read back the Status Register 2 from SPI Flash device.
void SpiFlash_ReadData(unsigned char *DataBuffer, unsigned int StartAddress, unsigned int ByteCount)
This function do the data reading from SPI Flash device.