Flash 3 click
Flash 3 Click is a mikroBUS add-on board for adding more Flash Memory to your target board microcontroller. It carries an ISSI IS25LP128 IC with 128 Mbit capacity.
click Product page
Click library
- Author : MikroE Team
- Date : dec 2019.
- Type : SPI type
Software Support
We provide a library for the Flash3 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly form compilers IDE(recommended way), or downloaded from our LibStock, or found on mikroE github account.
Library Description
This library contains API for Flash3 Click driver.
Standard key functions :
- Config Object Initialization function.
void flash3_cfg_setup ( flash3_cfg_t *cfg );
- Initialization function.
FLASH3_RETVAL flash3_init ( flash3_t *ctx, flash3_cfg_t *cfg );
- Generic transfer function.
void flash3_generic_transfer ( flash3_t *ctx, spi_master_transfer_data_t *block );
Example key functions :
- Pause function.
void flash3_pause ( flash3_t *ctx );
- Unpause function.
void flash3_unpause ( flash3_t *ctx );
- Unpause function.
void flash3_unpause ( flash3_t *ctx );
Examples Description
This applicaion adding more flash memory.
The demo application is composed of two sections :
Application Init
Initalizes device, Flash 3 click board and makes an initial log.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
Delay_ms ( 100 );
log_printf( &logger, "------------------- \r\n" );
log_printf( &logger, " Flash 3 Click \r\n" );
log_printf( &logger, "-------------------\r\n" );
Delay_ms ( 100 );
log_printf( &logger, " Initialized \r\n" );
log_printf( &logger, "------------------- \r\n" );
}
#define FLASH3_MAP_MIKROBUS(cfg, mikrobus)
Definition flash3.h:67
FLASH3_RETVAL flash3_init(flash3_t *ctx, flash3_cfg_t *cfg)
Initialization function.
void flash3_cfg_setup(flash3_cfg_t *cfg)
Config Object Initialization function.
void flash3_setting(flash3_t *ctx)
Initialisation function.
void application_init(void)
Definition main.c:33
Click configuration structure definition.
Definition flash3.h:191
Application Task
This is an example that shows the capabilities of the Flash 3 click by writing into memory array of a Flash 3 click board and reading same data from memory array.
{
char val_in[ 8 ] = { 0x4D, 0x49, 0x4B, 0x52, 0x4F, 0x45, 0x00 };
char val_out[ 8 ] = { 0 };
log_printf( &logger, "\r\n ____________________ \r\n" );
log_printf( &logger, "Begin demonstration! \r\n\r\n" );
log_printf( &logger, "Writing : %s\r\n", val_in );
Delay_ms ( 100 );
log_printf( &logger, "------------------ \r\n" );
log_printf( &logger, "Reading : %s\r\n", val_in );
Delay_ms ( 100 );
log_printf( &logger, "------------------ \r\n" );
log_printf( &logger, "Erasing... \r\n" );
Delay_ms ( 300 );
log_printf( &logger, "Erased!" );
Delay_ms ( 100 );
log_printf( &logger, "------------------ \r\n" );
log_printf( &logger, "Reading : %s\r\n", val_out );
Delay_ms ( 100 );
log_printf( &logger, "------------------ \r\n" );
log_printf( &logger, "Demonstration over!" );
log_printf( &logger, "\r\n ___________________ \r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
}
void flash3_normal_read(flash3_t *ctx, uint32_t addr, uint8_t *buff, uint32_t cnt)
Normal data read function.
void flash3_write(flash3_t *ctx, uint32_t addr, uint8_t *buff, uint32_t cnt)
Fast data read function.
void flash3_fast_read(flash3_t *ctx, uint32_t addr, uint8_t *buff, uint32_t cnt)
Fast data read function.
void flash3_sector_erase(flash3_t *ctx, uint32_t address)
Sector erase function.
void application_task(void)
Definition main.c:67
The full application code, and ready to use projects can be installed directly form compilers IDE(recommneded) or found on LibStock page or mikroE GitHub accaunt.
Other mikroE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.Flash3
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all Mikroelektronika compilers, or any other terminal application of your choice, can be used to read the message.