#include /* Requires use of spi.h, and hence assumes definitions of: SPI_PORT Port for the SPI signals eg PORTB SPI_DDR DDR for the SPI signals eg DDRB SPI_PIN Input Port for the SPI signals eg PINB SPI_SCK Clock from master to slave SPI_SEND Data from Master to slave SPI_RECV Data from slave to master Additionally, the following needs to be defined: RAM_CS RAM_PORT RAM_DDR /* Register definitions for M25P16 flash ram */ #define RAM_WREN 0x06 /* write enable */ #define RAM_WRDI 0x04 /* write disable */ #define RAM_RDID 0x9F /* read id */ #define RAM_RDSR 0x05 /* read status */ #define RAM_WRSR 0x01 /* write status */ #define RAM_READ 0x03 /* read data */ #define RAM_FASTREAD 0x0B #define RAM_PP 0x02 /* page program */ #define RAM_SE 0xD8 /* sector erase */ #define RAM_BE 0xC7 /* bulk erase */ #define RAM_DP 0xB9 /* deep power down */ #define RAM_RES 0xAB /* release from power down, read electronic signature */ void read_ram_id(uint8_t* mem_ptr); uint8_t read_ram_status(); void ram_bulk_erase(); void ram_sector_erase(uint8_t sector); void read_write_flash_ram(uint8_t one_read_zero_write,uint8_t bytes_to_readwrite,uint8_t flash_sector,uint8_t flash_page,uint8_t offset,uint8_t* mem_ptr);