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"
54 #define FLASH2_MAP_MIKROBUS( cfg, mikrobus ) \
55 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
56 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
57 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
58 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
59 cfg.hld = MIKROBUS( mikrobus, MIKROBUS_RST ); \
60 cfg.wp = MIKROBUS( mikrobus, MIKROBUS_PWM )
63 #define FLASH2_STATUS_WEL 0x02
64 #define FLASH2_STATUS_WSE 0x04
65 #define FLASH2_STATUS_WSP 0x08
66 #define FLASH2_STATUS_WPLD 0x10
67 #define FLASH2_STATUS_SEC 0x20
68 #define FLASH2_STATUS_RES 0x40
69 #define FLASH2_STATUS_BUSY 0x80
72 #define FLASH2_CFG_RES 0x01
73 #define FLASH2_CFG_IOC 0x02
74 #define FLASH2_CFG_BPNV 0x08
75 #define FLASH2_CFG_WPEN 0x80
78 #define FLASH2_INSTR_NOP 0x00
79 #define FLASH2_INSTR_RSTEN 0x66
80 #define FLASH2_INSTR_RST 0x99
81 #define FLASH2_INSTR_EQIO 0x38
82 #define FLASH2_INSTR_RSTQIO 0xFF
83 #define FLASH2_INSTR_RDSR 0x05
84 #define FLASH2_INSTR_WRSR 0x01
85 #define FLASH2_INSTR_RDCR 0x35
86 #define FLASH2_INSTR_READ 0x03
87 #define FLASH2_INSTR_HS_READ 0x0B
88 #define FLASH2_INSTR_SQOR 0x6B
89 #define FLASH2_INSTR_SQIOR 0xEB
90 #define FLASH2_INSTR_SDOR 0x3B
91 #define FLASH2_INSTR_SDIOR 0xBB
92 #define FLASH2_INSTR_SB 0xC0
93 #define FLASH2_INSTR_RBSQI 0x0C
94 #define FLASH2_INSTR_RBSPI 0xEC
95 #define FLASH2_INSTR_JEDECID 0x9F
96 #define FLASH2_INSTR_QUAD_JID 0xAF
97 #define FLASH2_INSTR_SFDP 0x5A
98 #define FLASH2_INSTR_WREN 0x06
99 #define FLASH2_INSTR_WRDI 0x04
100 #define FLASH2_INSTR_SE 0x20
101 #define FLASH2_INSTR_BE 0xD8
102 #define FLASH2_INSTR_CE 0xC7
103 #define FLASH2_INSTR_PP 0x02
104 #define FLASH2_INSTR_SPI_QUAD 0x32
105 #define FLASH2_INSTR_WRSU 0xB0
106 #define FLASH2_INSTR_WRRE 0x30
107 #define FLASH2_INSTR_RBPR 0x72
108 #define FLASH2_INSTR_WBPR 0x42
109 #define FLASH2_INSTR_LBPR 0x8D
110 #define FLASH2_INSTR_NVWLDR 0xE8
111 #define FLASH2_INSTR_ULBPR 0x98
112 #define FLASH2_INSTR_RSID 0x88
113 #define FLASH2_INSTR_PSID 0xA5
114 #define FLASH2_INSTR_LSID 0x85
117 #define FLASH2_START_PAGE_ADDRESS 0x010000
118 #define FLASH2_END_PAGE_ADDRESS 0x7FFFFF
119 #define FLASH2_FLASH_PAGE_SIZE 256
124 #define FLASH2_RETVAL uint8_t
126 #define FLASH2_OK 0x00
127 #define FLASH2_INIT_ERROR 0xFF
224 uint32_t data_count );
620 uint32_t data_count );
655 uint32_t data_count);
775 uint32_t data_count );
791 uint32_t data_count );
833 uint32_t data_count );
894 uint32_t data_count );
1029 #endif // _FLASH2_H_
void flash2_hold_enable(flash2_t *ctx)
Flash 2 Hold Enable.
spi_master_t spi
Definition: flash2.h:151
uint8_t flash2_device_type(flash2_t *ctx)
Flash 2 Device Type.
void flash2_nonvolatile_write_lock(flash2_t *ctx, uint8_t *buffer)
Flash 2 Non-Volatile Write-Lock.
uint8_t flash2_quad_device_id(flash2_t *ctx)
Flash 2 Quad Device ID.
void flash2_write_generic(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Write.
void flash2_read_dual_io(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Read Dual I/O.
void flash2_sector_erase(flash2_t *ctx, uint32_t address)
Flash 2 Sector Erase.
digital_out_t wp
Definition: flash2.h:147
void flash2_quadWrite(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Quad Write.
pin_name_t sck
Definition: flash2.h:165
uint8_t flash2_quad_device_type(flash2_t *ctx)
Flash 2 Quad Device Type.
void flash2_quad_io_read(flash2_t *ctx, uint32_t address, uint8_t mode, uint8_t *buffer, uint32_t data_count)
Flash 2 Quad I/O Read.
uint8_t flash2_quad_device_manufac(flash2_t *ctx)
Flash 2 Quad Device Manufacturer.
pin_name_t wp
Definition: flash2.h:171
void flash2_generic_transfer(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Generic transfer function.
void flash2_read_dual_output(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Read Dual Output.
uint8_t flash2_security_status(flash2_t *ctx)
Flash 2 Security Status.
digital_out_t hld
Definition: flash2.h:146
pin_name_t hld
Definition: flash2.h:170
FLASH2_RETVAL flash2_init(flash2_t *ctx, flash2_cfg_t *cfg)
Initialization function.
void flash2_cfg_setup(flash2_cfg_t *cfg)
Config Object Initialization function.
uint8_t flash2_device_manufac(flash2_t *ctx)
Flash 2 Device Manufacturer.
spi_master_chip_select_polarity_t cs_polarity
Definition: flash2.h:177
void flash2_reset(flash2_t *ctx)
Flash 2 Reset.
void flash2_spi_get_bpr(flash2_t *ctx, uint8_t *buffer, uint32_t data_count)
Flash 2 Get Block Protection Register SPI.
uint8_t flash2_protect_status(flash2_t *ctx)
Flash 2 Protect Status.
void flash2_read_generic(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Read.
pin_name_t mosi
Definition: flash2.h:164
pin_name_t cs
Definition: flash2.h:166
void flash2_quad_reset(flash2_t *ctx)
Flash 2 Quad Reset.
void flash2_quad_enable(flash2_t *ctx)
Flash 2 Quad Enable.
void flash2_write_status_reg(flash2_t *ctx, uint8_t s_reg)
Flash 2 Write Status Register.
#define FLASH2_RETVAL
Definition: flash2.h:124
spi_master_mode_t spi_mode
Definition: flash2.h:176
uint8_t flash2_write_status(flash2_t *ctx)
Flash 2 Write Status.
void flash2_hold_disable(flash2_t *ctx)
Flash 2 Hold Disable.
void flash2_global_block_unlock(flash2_t *ctx)
Flash 2 Global Block Unlock.
uint8_t flash2_get_config_reg(flash2_t *ctx)
Flash 2 Get Config Register.
Click configuration structure definition.
Definition: flash2.h:160
uint8_t flash2_device_id(flash2_t *ctx)
Flash 2 Device ID.
pin_name_t chip_select
Definition: flash2.h:152
void flash2_lock_security_id(flash2_t *ctx)
flash2_lock_security_id
uint32_t spi_speed
Definition: flash2.h:175
void flash2_quad_out_read(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Quad Output Read.
void flash2_read_sqi_burst_wrap(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Read Burst with Wrap through SQI.
uint8_t flash2_program_status(flash2_t *ctx)
Flash 2 Program Status.
void flash2_set_burst(flash2_t *ctx, uint8_t length)
Flash 2 Set Burst.
void flash2_lockBpr(flash2_t *ctx)
Flash 2 Lock Block Protection Register.
void flash2_write_suspend(flash2_t *ctx)
Flash 2 Write Suspend.
void flash2_get_sfdp_params(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 get Serial Flash Discoverable \ Parameters.
void flash2_set_bpr(flash2_t *ctx, uint8_t *buffer)
Flash 2 Set Block Protection Register.
void flash2_sqi_get_security_id(flash2_t *ctx, uint8_t *buffer, uint32_t data_count)
Flash 2 Get Security ID SQI.
void flash2_highspeedRread(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 High Speed Read.
Click ctx object definition.
Definition: flash2.h:141
void flash2_write_protect_enable(flash2_t *ctx)
Flash 2 Write Protect Enable.
uint8_t flash2_erase_status(flash2_t *ctx)
Flash 2 Erase Status.
void flash2_set_security_id(flash2_t *ctx, uint8_t *buffer, uint32_t data_count)
Flash 2 Set Security ID.
void flash2_write_disable(flash2_t *ctx)
Flash 2 Write Disable.
void flash2_write_protect_disable(flash2_t *ctx)
Flash 2 Write Protect Disable.
void flash2_sqi_get_bpr(flash2_t *ctx, uint8_t *buffer, uint32_t data_count)
Flash 2 Get Block Protection Register SQI.
void flash2_write_enable(flash2_t *ctx)
Flash 2 Write Enable.
uint8_t flash2_busy(flash2_t *ctx)
Flash 2 Busy.
void flash2_block_erase(flash2_t *ctx, uint32_t address)
Flash 2 Block Erase.
uint8_t flash2_get_status_reg(flash2_t *ctx)
Flash 2 Get Status Register.
void flash2_chip_erase(flash2_t *ctx)
Flash 2 Chip Erase.
pin_name_t miso
Definition: flash2.h:163
digital_out_t cs
Definition: flash2.h:142
void flash2_spi_get_security_id(flash2_t *ctx, uint8_t *buffer, uint32_t data_count)
Flash 2 Get Security ID SPI.
void flash2_write_resume(flash2_t *ctx)
Flash 2 Write Resume.
void flash2_read_spi_burst_wrap(flash2_t *ctx, uint32_t address, uint8_t *buffer, uint32_t data_count)
Flash 2 Read Burst with Wrap through SPI.