CTS-SAT-1-OBC-Firmware
Loading...
Searching...
No Matches
flash_internal_spi.h
Go to the documentation of this file.
1#ifndef INCLUDE_GUARD__FLASH_INTERNAL_SPI_H__
2#define INCLUDE_GUARD__FLASH_INTERNAL_SPI_H__
3#include <stdint.h>
4
5
6/*-----------------------------FLASH ERROR CODES-----------------------------*/
7typedef enum {
8 FLASH_ERR_OK = 0, // No error occurred
9 FLASH_ERR_SPI_TRANSMIT_FAILED = -3, // Error occurred while transmitting SPI signal
10 FLASH_ERR_SPI_RECEIVE_FAILED = -4, // Error occurred while receiving SPI signal
11 FLASH_ERR_DEVICE_BUSY_TIMEOUT = -6, // Took too long for the device to be in standby
12 FLASH_ERR_UNKNOWN = -7, // Unknown error occurred (code reached where it shouldn't have been possible)
13 FLASH_ERR_STATUS_REG_ERROR = -8, // Error occurred which was indicated by one of the Status Register Bits.
14 FLASH_ERR_SPI_TRANSMIT_TIMEOUT = -10, // Timeout when transmitting SPI signal
15 FLASH_ERR_SPI_RECEIVE_TIMEOUT = -11 // Timeout when receiving SPI signal
17
18
19/*-----------------------------FLASH TYPES-----------------------------*/
20typedef struct {
21 const uint8_t *data;
22 uint16_t len;
24
25
26/*-----------------------------FLASH COMMAND VARIABLES-----------------------------*/
27typedef enum {
28 // All comments refer to the "MT29F1G 1Gib (128MiB)" Datasheet by Micron
29
30 FLASH_CMD_PAGE_READ = 0x13, // Read Page
31 FLASH_CMD_READ_FROM_CACHE = 0x03, // Read from Cache
32
33 FLASH_CMD_PROGRAM_LOAD = 0x02, // Load Program into cache registers
34 FLASH_CMD_PROGRAM_EXECUTE = 0x10, // Send data from cache to memory
35
36 FLASH_CMD_BLOCK_ERASE = 0xD8, // Block Erase
37
38 FLASH_CMD_WRITE_ENABLE = 0x06, // Write Enable
39 FLASH_CMD_WRITE_DISABLE = 0x04, // Write Disable
40
41 FLASH_CMD_GET_FEATURES = 0x0F, // Get Features
42 FLASH_CMD_SET_FEATURES = 0x1F, // Set Features
43
44 FLASH_CMD_READ_ID = 0x9F, // Read ID (0x2C 0x14)
45
46 FLASH_CMD_RESET = 0xFF // Reset operation
47
49
50
51/*-----------------------------FLASH SPI DRIVER FUNCTIONS-----------------------------*/
52FLASH_error_enum_t FLASH_SPI_send_command(const FLASH_SPI_Data_t cmd[], uint8_t chip_number);
54 const FLASH_SPI_Data_t cmd[], FLASH_SPI_Data_t *data, uint8_t chip_number
55);
57 const FLASH_SPI_Data_t cmd[], uint8_t *response, uint16_t response_size, uint8_t chip_number
58);
59
60void FLASH_SPI_enable_then_disable_chip_select(uint8_t chip_number);
61
62#endif // INCLUDE_GUARD__FLASH_INTERNAL_SPI_H__
FLASH_error_enum_t FLASH_SPI_send_command_with_data(const FLASH_SPI_Data_t cmd[], FLASH_SPI_Data_t *data, uint8_t chip_number)
Definition flash_internal_spi.c:32
FLASH_command_t
Definition flash_internal_spi.h:27
@ FLASH_CMD_PROGRAM_EXECUTE
Definition flash_internal_spi.h:34
@ FLASH_CMD_PAGE_READ
Definition flash_internal_spi.h:30
@ FLASH_CMD_GET_FEATURES
Definition flash_internal_spi.h:41
@ FLASH_CMD_SET_FEATURES
Definition flash_internal_spi.h:42
@ FLASH_CMD_READ_ID
Definition flash_internal_spi.h:44
@ FLASH_CMD_WRITE_ENABLE
Definition flash_internal_spi.h:38
@ FLASH_CMD_RESET
Definition flash_internal_spi.h:46
@ FLASH_CMD_BLOCK_ERASE
Definition flash_internal_spi.h:36
@ FLASH_CMD_WRITE_DISABLE
Definition flash_internal_spi.h:39
@ FLASH_CMD_READ_FROM_CACHE
Definition flash_internal_spi.h:31
@ FLASH_CMD_PROGRAM_LOAD
Definition flash_internal_spi.h:33
void FLASH_SPI_enable_then_disable_chip_select(uint8_t chip_number)
Definition flash_internal_spi.c:80
FLASH_error_enum_t
Definition flash_internal_spi.h:7
@ FLASH_ERR_SPI_TRANSMIT_FAILED
Definition flash_internal_spi.h:9
@ FLASH_ERR_STATUS_REG_ERROR
Definition flash_internal_spi.h:13
@ FLASH_ERR_SPI_RECEIVE_TIMEOUT
Definition flash_internal_spi.h:15
@ FLASH_ERR_SPI_TRANSMIT_TIMEOUT
Definition flash_internal_spi.h:14
@ FLASH_ERR_SPI_RECEIVE_FAILED
Definition flash_internal_spi.h:10
@ FLASH_ERR_DEVICE_BUSY_TIMEOUT
Definition flash_internal_spi.h:11
@ FLASH_ERR_OK
Definition flash_internal_spi.h:8
@ FLASH_ERR_UNKNOWN
Definition flash_internal_spi.h:12
FLASH_error_enum_t FLASH_SPI_send_command_receive_response(const FLASH_SPI_Data_t cmd[], uint8_t *response, uint16_t response_size, uint8_t chip_number)
Definition flash_internal_spi.c:53
FLASH_error_enum_t FLASH_SPI_send_command(const FLASH_SPI_Data_t cmd[], uint8_t chip_number)
Definition flash_internal_spi.c:16
Definition flash_internal_spi.h:20
uint16_t len
Definition flash_internal_spi.h:22
const uint8_t * data
Definition flash_internal_spi.h:21