41#ifndef DOXYGEN_PRIVATE
56 spi->
transmit(spi, W25Q128_WRITE_ENABLE);
74 *status = spi->
transmit(spi, W25Q128_READ_STATUS_REGISTER_1);
93 *status = spi->
transmit(spi, W25Q128_READ_STATUS_REGISTER_2);
112 *status = spi->
transmit(spi, W25Q128_READ_STATUS_REGISTER_3);
138 spi->
transmit(spi, W25Q128_ERASE_CHIP);
144 }
while (status & 0x01);
167 spi->
transmit(spi, W25Q128_PAGE_PROGRAM);
168 spi->
transmit(spi, (address & 0xFF0000) >> 16);
169 spi->
transmit(spi, (address & 0xFF00) >> 8);
170 spi->
transmit(spi, (address & 0xFF));
173 for (
int i = 0; i < 256; i++) {
182 }
while (status & 0x1);
202 spi->
transmit(spi, W25Q128_READ_DATA);
203 spi->
transmit(spi, (address & 0xFF0000) >> 16);
204 spi->
transmit(spi, (address & 0xFF00) >> 8);
205 spi->
transmit(spi, (address & 0xFF));
207 for (
int i = 0; i < 256; i++) {
void(* set)(struct GPIOpin *)
void(* reset)(struct GPIOpin *)
Struct definition for a GPIO pin.
uint16_t(* transmit)(struct SPI *, uint16_t)
SPI transmit method.
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...
void(* readPage)(struct W25Q128 *, uint32_t, volatile uint8_t *)
Read page method.
int pageSize
Number of bytes per page.
void(* writePage)(struct W25Q128 *, uint32_t, uint8_t *)
Write page method.
GPIOpin_t cs
Chip select GPIO.
void(* erase)(struct W25Q128 *)
Chip erase method.
SPI_t * base
Parent SPI interface.
long pageCount
Total number of pages.
void _W25Q128_writeEnable(W25Q128_t *flash)
Send Write Enable instruction to the flash device.
void W25Q128_erase(W25Q128_t *)
Erase flash chip.
void W25Q128_readPage(W25Q128_t *, uint32_t, volatile uint8_t *)
Read from flash.
void _W25Q128_readStatus2(W25Q128_t *flash, uint8_t *status)
Read from Status Register 2.
void _W25Q128_readStatus3(W25Q128_t *flash, uint8_t *status)
Read from Status Register 3.
W25Q128_t W25Q128_init(W25Q128_t *flash, SPI_t *spi, GPIOpin_t cs)
Initialise flash struct.
void _W25Q128_readStatus1(W25Q128_t *flash, uint8_t *status)
Read from Status Register 1.
void W25Q128_writePage(W25Q128_t *, uint32_t, uint8_t *)
Write page to flash.