LibDriver MB85RCXX
Loading...
Searching...
No Matches
driver_mb85rcxx.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_MB85RCXX_H
38#define DRIVER_MB85RCXX_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62typedef enum
63{
64 MB85RC04 = 512,
65 MB85RC16 = 2048,
66 MB85RC64 = 8192,
67 MB85RC128 = 16384,
68 MB85RC256 = 32768,
69 MB85RC512 = 65536,
70 MB85RC1M = 131072,
72
87
91typedef struct mb85rcxx_handle_s
92{
93 uint8_t iic_addr;
94 uint8_t (*iic_init)(void);
95 uint8_t (*iic_deinit)(void);
96 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
97 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
98 uint8_t (*iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len);
99 uint8_t (*iic_write_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len);
100 void (*delay_ms)(uint32_t ms);
101 void (*debug_print)(const char *const fmt, ...);
102 uint32_t id;
103 uint8_t inited;
105
121
125
132
139#define DRIVER_MB85RCXX_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
140
147#define DRIVER_MB85RCXX_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
148
155#define DRIVER_MB85RCXX_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
156
163#define DRIVER_MB85RCXX_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
164
171#define DRIVER_MB85RCXX_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
172
179#define DRIVER_MB85RCXX_LINK_IIC_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_read_address16 = FUC
180
187#define DRIVER_MB85RCXX_LINK_IIC_WRITE_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_write_address16 = FUC
188
195#define DRIVER_MB85RCXX_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
196
203#define DRIVER_MB85RCXX_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
204
208
215
224uint8_t mb85rcxx_info(mb85rcxx_info_t *info);
225
236uint8_t mb85rcxx_init(mb85rcxx_handle_t *handle);
237
248uint8_t mb85rcxx_deinit(mb85rcxx_handle_t *handle);
249
259uint8_t mb85rcxx_set_type(mb85rcxx_handle_t *handle, mb85rcxx_t type);
260
270uint8_t mb85rcxx_get_type(mb85rcxx_handle_t *handle, mb85rcxx_t *type);
271
282
293
308uint8_t mb85rcxx_read(mb85rcxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len);
309
324uint8_t mb85rcxx_write(mb85rcxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len);
325
329
333
334#ifdef __cplusplus
335}
336#endif
337
338#endif
uint8_t mb85rcxx_deinit(mb85rcxx_handle_t *handle)
close the chip
uint8_t mb85rcxx_get_type(mb85rcxx_handle_t *handle, mb85rcxx_t *type)
get the chip type
uint8_t mb85rcxx_set_addr_pin(mb85rcxx_handle_t *handle, mb85rcxx_address_t addr_pin)
set the chip address pin
mb85rcxx_address_t
mb85rcxx address enumeration definition
mb85rcxx_t
mb85rcxx type enumeration definition
struct mb85rcxx_info_s mb85rcxx_info_t
mb85rcxx information structure definition
uint8_t mb85rcxx_write(mb85rcxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
write bytes to the chip
uint8_t mb85rcxx_info(mb85rcxx_info_t *info)
get chip's information
uint8_t mb85rcxx_get_addr_pin(mb85rcxx_handle_t *handle, mb85rcxx_address_t *addr_pin)
get the chip address pin
uint8_t mb85rcxx_set_type(mb85rcxx_handle_t *handle, mb85rcxx_t type)
set the chip type
uint8_t mb85rcxx_init(mb85rcxx_handle_t *handle)
initialize the chip
uint8_t mb85rcxx_read(mb85rcxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
read bytes from the chip
struct mb85rcxx_handle_s mb85rcxx_handle_t
mb85rcxx handle structure definition
@ MB85RCXX_ADDRESS_A100
@ MB85RCXX_ADDRESS_A110
@ MB85RCXX_ADDRESS_A111
@ MB85RCXX_ADDRESS_A011
@ MB85RCXX_ADDRESS_A010
@ MB85RCXX_ADDRESS_A001
@ MB85RCXX_ADDRESS_A101
@ MB85RCXX_ADDRESS_A000
@ MB85RC16
@ MB85RC512
@ MB85RC04
@ MB85RC256
@ MB85RC128
@ MB85RC1M
@ MB85RC64
mb85rcxx handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_write_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
mb85rcxx information structure definition
char manufacturer_name[32]