Go to the documentation of this file.
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_spi_master.h"
53 #define FLASH4_MAP_MIKROBUS( cfg, mikrobus ) \
54 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
55 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
56 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
57 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
58 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
59 cfg.io2 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
60 cfg.io3 = MIKROBUS( mikrobus, MIKROBUS_INT )
67 #define FLASH4_RETVAL uint8_t
69 #define FLASH4_OK 0x00
70 #define FLASH4_INIT_ERROR 0xFF
76 #define FLASH4_MANUFACTURER_ID 0x01
77 #define FLASH4_DEVICE_ID 0x19
83 #define FLASH4_CMD_READ_ID 0x90
84 #define FLASH4_CMD_READ_IDENTIFICATION 0x9F
85 #define FLASH4_CMD_READ_ELECTRONIC_SIGNATURE 0xAB
86 #define FLASH4_CMD_READ_SERIAL_FLASH_PARAMETERS 0x5A
87 #define FLASH4_CMD_READ_STATUS_REG_1 0x05
88 #define FLASH4_CMD_READ_STATUS_REG_2 0x07
89 #define FLASH4_CMD_READ_CONFIGURATION_REG 0x35
90 #define FLASH4_CMD_READ_BANK_REG 0x16
91 #define FLASH4_CMD_WRITE_BANK_REG 0x17
92 #define FLASH4_CMD_ACCESS_BANK_REG 0xB9
93 #define FLASH4_CMD_WRITE_REGISTER_WRR 0x01
94 #define FLASH4_CMD_WRITE_ENABLE_WREN 0x06
95 #define FLASH4_CMD_WRITE_DISABLE_WRDI 0x04
96 #define FLASH4_CMD_CLEAR_STATUS_REG 0x30
97 #define FLASH4_CMD_READ_ECC_STATUS_REG 0x18
98 #define FLASH4_CMD_READ_AUTO_BOOT_REG 0x14
99 #define FLASH4_CMD_WRITE_AUTO_BOOT_REG 0x15
100 #define FLASH4_CMD_PROGRAM_NVDLR 0x43
101 #define FLASH4_CMD_WRITE_VDLR 0x4A
102 #define FLASH4_CMD_READ_DATA_LEARNING_PATTERN 0x41
103 #define FLASH4_CMD_READ_FLASH 0x03
104 #define FLASH4_CMD_4READ_FLASH 0x13
105 #define FLASH4_CMD_FAST_READ_FLASH 0x0B
106 #define FLASH4_CMD_FAST_4READ_FLASH 0x0C
107 #define FLASH4_CMD_FAST_READ_DDR 0x0D
108 #define FLASH4_CMD_FAST_4READ_DDR 0x0E
109 #define FLASH4_CMD_PAGE_PROGRAM 0x02
110 #define FLASH4_CMD_PAGE_4PROGRAM 0x12
111 #define FLASH4_CMD_PROGRAM_SUSPEND 0x85
112 #define FLASH4_CMD_PROGRAM_RESUME 0x8A
113 #define FLASH4_CMD_SECTOR_ERASE 0xD8
114 #define FLASH4_CMD_SECTOR_4ERASE 0xDC
115 #define FLASH4_CMD_BULK_ERASE 0xC7
116 #define FLASH4_CMD_ERASE_SUSPEND 0x75
117 #define FLASH4_CMD_ERASE_RESUME 0x7A
118 #define FLASH4_CMD_WRITE_OTP_PROGRAM 0x42
119 #define FLASH4_CMD_READ_OTP 0x4B
120 #define FLASH4_CMD_READ_ASP 0x2B
121 #define FLASH4_CMD_WRITE_ASP_PROGRAM 0x2F
122 #define FLASH4_CMD_READ_DYB 0xE0
123 #define FLASH4_CMD_WRITE_DYB 0xE1
124 #define FLASH4_CMD_READ_PPB 0xE2
125 #define FLASH4_CMD_WRITE_PPB 0xE3
126 #define FLASH4_CMD_ERASE_PPB 0xE4
127 #define FLASH4_CMD_READ_PPB_LOCK_BIT 0xA7
128 #define FLASH4_CMD_WRITE_PPB_LOCK_BIT 0xA6
129 #define FLASH4_CMD_SOFTWARE_RESET 0xF0
130 #define FLASH4_CMD_MODE_BIT_RESET 0xFF
pin_name_t chip_select
Definition: flash4.h:154
void flash4_read_ecc(flash4_t *ctx, uint8_t *out_ecc, uint8_t n_dummy)
Read ECC Status Register function.
void flash4_read_manufacturer_id(flash4_t *ctx, uint8_t *device_id)
Read Manufacturer ID function.
spi_master_chip_select_polarity_t cs_polarity
Definition: flash4.h:180
void flash4_write_byte(flash4_t *ctx, uint8_t reg, uint8_t data_buff)
Write one byte to register function.
uint8_t flash4_check_es(flash4_t *ctx)
Function for es.
void flash4_fast_read_flash(flash4_t *ctx, uint8_t *out_data, uint32_t addr, uint8_t n_data_dummy)
Fast read Flash function.
void flash4_reset(flash4_t *ctx)
Function for reset.
void flash4_cfg_setup(flash4_cfg_t *cfg)
Config Object Initialization function.
digital_out_t cs
Definition: flash4.h:146
void flash4_read_serial_flash_parameters(flash4_t *ctx, uint8_t *out_params, uint8_t c)
Read Serial Flash Discoverable Parameters function.
void flash4_read_auto_boot(flash4_t *ctx, uint8_t *out_ab)
Read AutoBoot Register function.
pin_name_t mosi
Definition: flash4.h:166
void flash4_page_program_4(flash4_t *ctx, uint8_t *in_data, uint32_t addr, uint8_t n_data)
Write data to address with 4 byte address function.
uint8_t flash4_check_wip(flash4_t *ctx)
Function for wip.
pin_name_t sck
Definition: flash4.h:167
uint32_t spi_speed
Definition: flash4.h:178
#define FLASH4_RETVAL
Definition: flash4.h:67
pin_name_t rst
Definition: flash4.h:172
uint8_t flash4_check_wel(flash4_t *ctx)
Function for wel.
FLASH4_RETVAL flash4_init(flash4_t *ctx, flash4_cfg_t *cfg)
Initialization function. *.
digital_out_t rst
Definition: flash4.h:147
pin_name_t io3
Definition: flash4.h:174
spi_master_t spi
Definition: flash4.h:153
digital_out_t io2
Definition: flash4.h:149
pin_name_t io2
Definition: flash4.h:173
void flash4_read_flash_4(flash4_t *ctx, uint8_t *out_data, uint32_t addr, uint8_t n_data)
Read Flash with 4 byte address function.
Click configuration structure definition.
Definition: flash4.h:161
pin_name_t cs
Definition: flash4.h:168
Click ctx object definition.
Definition: flash4.h:142
uint8_t flash4_check_ps(flash4_t *ctx)
Function for ps.
void flash4_sector_erase_4(flash4_t *ctx, uint32_t addr)
Sector Erase for 4 bytes address function.
pin_name_t miso
Definition: flash4.h:165
void flash4_sector_erase(flash4_t *ctx, uint32_t addr)
Sector Erase function.
void flash4_read_flash(flash4_t *ctx, uint8_t *out_data, uint32_t addr, uint8_t n_data)
Read Flash function.
void flash4_read_identification(flash4_t *ctx, uint8_t *out_data, uint8_t n_data)
Read Identification function.
spi_master_mode_t spi_mode
Definition: flash4.h:179
uint8_t flash4_read_byte(flash4_t *ctx, uint8_t reg)
Read byte from register function.
void flash4_generic_transfer(flash4_t *ctx, uint8_t *wr_buf, uint16_t wr_len, uint8_t *rd_buf, uint16_t rd_len)
Generic transfer function.
digital_out_t io3
Definition: flash4.h:148
void flash4_write_command(flash4_t *ctx, uint8_t cmd)
Write command function.
void flash4_write_reg(flash4_t *ctx, uint8_t status, uint8_t config)
Write data to register function.
uint8_t flash4_read_electronic_id(flash4_t *ctx)
Read Electronic Signature function.
void flash4_fast_read_flash_4(flash4_t *ctx, uint8_t *out_data, uint8_t addr, uint8_t n_data)
Fast read Flash with 4 byte address function.