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
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
#define FLASH4_RETVAL
Definition: flash4.h:67
void flash4_read_serial_flash_parameters(flash4_t *ctx, uint8_t *out_params, uint8_t c)
Read Serial Flash Discoverable Parameters 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.
void flash4_sector_erase(flash4_t *ctx, uint32_t addr)
Sector Erase function.
uint8_t flash4_check_wel(flash4_t *ctx)
Function for wel.
FLASH4_RETVAL flash4_init(flash4_t *ctx, flash4_cfg_t *cfg)
Initialization function. *.
void flash4_read_flash(flash4_t *ctx, uint8_t *out_data, uint32_t addr, uint8_t n_data)
Read Flash function.
void flash4_cfg_setup(flash4_cfg_t *cfg)
Config Object Initialization function.
uint8_t flash4_check_es(flash4_t *ctx)
Function for es.
void flash4_write_byte(flash4_t *ctx, uint8_t reg, uint8_t data_buff)
Write one byte to register function.
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.
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_sector_erase_4(flash4_t *ctx, uint32_t addr)
Sector Erase for 4 bytes address function.
void flash4_write_command(flash4_t *ctx, uint8_t cmd)
Write command function.
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.
void flash4_read_ecc(flash4_t *ctx, uint8_t *out_ecc, uint8_t n_dummy)
Read ECC Status Register function.
void flash4_reset(flash4_t *ctx)
Function for reset.
uint8_t flash4_check_ps(flash4_t *ctx)
Function for ps.
uint8_t flash4_check_wip(flash4_t *ctx)
Function for wip.
void flash4_read_identification(flash4_t *ctx, uint8_t *out_data, uint8_t n_data)
Read Identification function.
void flash4_read_manufacturer_id(flash4_t *ctx, uint8_t *device_id)
Read Manufacturer ID 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.
uint8_t flash4_read_electronic_id(flash4_t *ctx)
Read Electronic Signature function.
void flash4_write_reg(flash4_t *ctx, uint8_t status, uint8_t config)
Write data to register function.
uint8_t flash4_read_byte(flash4_t *ctx, uint8_t reg)
Read byte from register function.
void flash4_read_auto_boot(flash4_t *ctx, uint8_t *out_ab)
Read AutoBoot Register function.
Click configuration structure definition.
Definition: flash4.h:162
spi_master_chip_select_polarity_t cs_polarity
Definition: flash4.h:180
pin_name_t io2
Definition: flash4.h:173
pin_name_t sck
Definition: flash4.h:167
spi_master_mode_t spi_mode
Definition: flash4.h:179
pin_name_t mosi
Definition: flash4.h:166
uint32_t spi_speed
Definition: flash4.h:178
pin_name_t miso
Definition: flash4.h:165
pin_name_t io3
Definition: flash4.h:174
pin_name_t rst
Definition: flash4.h:172
pin_name_t cs
Definition: flash4.h:168
Click ctx object definition.
Definition: flash4.h:143
digital_out_t cs
Definition: flash4.h:146
spi_master_t spi
Definition: flash4.h:153
digital_out_t io3
Definition: flash4.h:148
digital_out_t io2
Definition: flash4.h:149
digital_out_t rst
Definition: flash4.h:147
pin_name_t chip_select
Definition: flash4.h:154