42#define CHIP_NAME "RAMXEED MB85RSXX"
43#define MANUFACTURER_NAME "RAMXEED"
44#define SUPPLY_VOLTAGE_MIN 1.8f
45#define SUPPLY_VOLTAGE_MAX 5.5f
46#define MAX_CURRENT 2.6f
47#define TEMPERATURE_MIN -40.0f
48#define TEMPERATURE_MAX 85.0f
49#define DRIVER_VERSION 1000
54#define MB85RSXX_COMMAND_WREN 0x06
55#define MB85RSXX_COMMAND_WRDI 0x04
56#define MB85RSXX_COMMAND_RDSR 0x05
57#define MB85RSXX_COMMAND_WRSR 0x01
58#define MB85RSXX_COMMAND_READ 0x03
59#define MB85RSXX_COMMAND_WRITE 0x02
60#define MB85RSXX_COMMAND_RDID 0x9F
90 handle->
debug_print(
"mb85rsxx: enable write failed.\n");
126 handle->
debug_print(
"mb85rsxx: disable write failed.\n");
163 handle->
debug_print(
"mb85rsxx: get status failed.\n");
200 handle->
debug_print(
"mb85rsxx: enable write failed.\n");
210 handle->
debug_print(
"mb85rsxx: set status failed.\n");
219 handle->
debug_print(
"mb85rsxx: disable write failed.\n");
244 const uint32_t density[] = {1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288};
256 handle->
debug_print(
"mb85rsxx: spi_init is null.\n");
262 handle->
debug_print(
"mb85rsxx: spi_deinit is null.\n");
268 handle->
debug_print(
"mb85rsxx: spi_read_write is null.\n");
274 handle->
debug_print(
"mb85rsxx: delay_ms is null.\n");
281 handle->
debug_print(
"mb85rsxx: spi init failed.\n");
285#if (MB85RSXX_USE_DEVICE_ID != 0)
295 if ((number[0] != 0x04) || (number[1] != 0x7F))
302 ind = number[2] & 0x1F;
310 if (density[ind] != handle->
id)
346 handle->
debug_print(
"mb85rsxx: spi deinit failed.\n");
371 handle->
id = (uint32_t)type;
424 if ((address + len) > handle->
id)
426 handle->
debug_print(
"mb85rsxx: read out of range.\n");
434 reg[1] = (address >> 16) & 0xFF;
435 reg[2] = (address >> 8) & 0xFF;
436 reg[3] = (address >> 0) & 0xFF;
448 reg[1] = (address >> 8) & 0xFF;
449 reg[2] = (address >> 0) & 0xFF;
490 if ((address + len) > handle->
id)
492 handle->
debug_print(
"mb85rsxx: write out of range.\n");
507 handle->
debug_print(
"mb85rsxx: enable write failed.\n");
515 handle->
buf[1] = (address >> 16) & 0xFF;
516 handle->
buf[2] = (address >> 8) & 0xFF;
517 handle->
buf[3] = (address >> 0) & 0xFF;
518 memcpy((uint8_t *)(handle->
buf + 4), (uint8_t *)buf, len);
530 handle->
buf[1] = (address >> 8) & 0xFF;
531 handle->
buf[2] = (address >> 0) & 0xFF;
532 memcpy((uint8_t *)(handle->
buf + 3), (uint8_t *)buf, len);
546 handle->
debug_print(
"mb85rsxx: disable write failed.\n");
569 uint8_t *product_id1, uint8_t *product_id2)
571#if (MB85RSXX_USE_DEVICE_ID != 0)
593 *manufacturer_id = number[0];
594 *continuation_code = number[1];
595 *product_id1 = number[2];
596 *product_id2 = number[3];
609 handle->
debug_print(
"mb85rsxx: this function is disable.\n");
#define MB85RSXX_COMMAND_WRITE
#define MB85RSXX_COMMAND_WRDI
#define MB85RSXX_COMMAND_READ
#define MB85RSXX_COMMAND_RDSR
#define MB85RSXX_COMMAND_WREN
chip command definition
#define SUPPLY_VOLTAGE_MAX
#define MANUFACTURER_NAME
#define SUPPLY_VOLTAGE_MIN
#define MB85RSXX_COMMAND_RDID
#define MB85RSXX_COMMAND_WRSR
#define CHIP_NAME
chip information definition
driver mb85rsxx header file
uint8_t mb85rsxx_info(mb85rsxx_info_t *info)
get chip's information
uint8_t mb85rsxx_enable_write(mb85rsxx_handle_t *handle)
enable write
uint8_t mb85rsxx_get_device_id(mb85rsxx_handle_t *handle, uint8_t *manufacturer_id, uint8_t *continuation_code, uint8_t *product_id1, uint8_t *product_id2)
get device id
uint8_t mb85rsxx_get_type(mb85rsxx_handle_t *handle, mb85rsxx_t *type)
get the chip type
uint8_t mb85rsxx_write(mb85rsxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
write bytes to the chip
uint8_t mb85rsxx_read(mb85rsxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
read bytes from the chip
struct mb85rsxx_info_s mb85rsxx_info_t
mb85rsxx information structure definition
uint8_t mb85rsxx_set_status(mb85rsxx_handle_t *handle, uint8_t status)
set status
uint8_t mb85rsxx_set_type(mb85rsxx_handle_t *handle, mb85rsxx_t type)
set the chip type
struct mb85rsxx_handle_s mb85rsxx_handle_t
mb85rsxx handle structure definition
uint8_t mb85rsxx_deinit(mb85rsxx_handle_t *handle)
close the chip
mb85rsxx_t
mb85rsxx type enumeration definition
uint8_t mb85rsxx_get_status(mb85rsxx_handle_t *handle, uint8_t *status)
get status
uint8_t mb85rsxx_disable_write(mb85rsxx_handle_t *handle)
disable write
uint8_t mb85rsxx_init(mb85rsxx_handle_t *handle)
initialize the chip
uint8_t(* spi_init)(void)
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* spi_deinit)(void)
uint8_t(* spi_read_write)(uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len)
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v