LibDriver AT24CXX
Loading...
Searching...
No Matches
driver_at24cxx.h
Go to the documentation of this file.
1
37
38#ifndef DRIVER_AT24CXX_H
39#define DRIVER_AT24CXX_H
40
41#include <stdio.h>
42#include <stdint.h>
43#include <string.h>
44
45#ifdef __cplusplus
46extern "C"{
47#endif
48
54
59
63typedef enum
64{
65 AT24C01 = 128,
66 AT24C02 = 256,
67 AT24C04 = 512,
68 AT24C08 = 1024,
69 AT24C16 = 2048,
70 AT24C32 = 4096,
71 AT24C64 = 8192,
72 AT24C128 = 16384,
73 AT24C256 = 32768,
74 AT24C512 = 65536,
75 AT24CM01 = 131072,
76 AT24CM02 = 262144,
77} at24cxx_t;
78
93
97typedef struct at24cxx_handle_s
98{
99 uint8_t iic_addr;
100 uint8_t (*iic_init)(void);
101 uint8_t (*iic_deinit)(void);
102 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
103 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
104 uint8_t (*iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len);
105 uint8_t (*iic_write_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len);
106 void (*delay_ms)(uint32_t ms);
107 void (*debug_print)(const char *const fmt, ...);
108 uint32_t id;
109 uint8_t inited;
111
127
131
138
145#define DRIVER_AT24CXX_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
146
153#define DRIVER_AT24CXX_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
154
161#define DRIVER_AT24CXX_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
162
169#define DRIVER_AT24CXX_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
170
177#define DRIVER_AT24CXX_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
178
185#define DRIVER_AT24CXX_LINK_IIC_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_read_address16 = FUC
186
193#define DRIVER_AT24CXX_LINK_IIC_WRITE_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_write_address16 = FUC
194
201#define DRIVER_AT24CXX_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
202
209#define DRIVER_AT24CXX_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
210
214
221
230uint8_t at24cxx_info(at24cxx_info_t *info);
231
242uint8_t at24cxx_init(at24cxx_handle_t *handle);
243
254uint8_t at24cxx_deinit(at24cxx_handle_t *handle);
255
265uint8_t at24cxx_set_type(at24cxx_handle_t *handle, at24cxx_t type);
266
276uint8_t at24cxx_get_type(at24cxx_handle_t *handle, at24cxx_t *type);
277
288
299
314uint8_t at24cxx_read(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len);
315
330uint8_t at24cxx_write(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len);
331
335
339
340#ifdef __cplusplus
341}
342#endif
343
344#endif
uint8_t at24cxx_set_type(at24cxx_handle_t *handle, at24cxx_t type)
set the chip type
uint8_t at24cxx_get_addr_pin(at24cxx_handle_t *handle, at24cxx_address_t *addr_pin)
get the chip address pin
uint8_t at24cxx_init(at24cxx_handle_t *handle)
initialize the chip
struct at24cxx_info_s at24cxx_info_t
at24cxx information structure definition
uint8_t at24cxx_read(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
read bytes from the chip
at24cxx_t
at24cxx type enumeration definition
uint8_t at24cxx_deinit(at24cxx_handle_t *handle)
close the chip
struct at24cxx_handle_s at24cxx_handle_t
at24cxx handle structure definition
uint8_t at24cxx_write(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
write bytes to the chip
at24cxx_address_t
at24cxx address enumeration definition
uint8_t at24cxx_info(at24cxx_info_t *info)
get chip's information
uint8_t at24cxx_set_addr_pin(at24cxx_handle_t *handle, at24cxx_address_t addr_pin)
set the chip address pin
uint8_t at24cxx_get_type(at24cxx_handle_t *handle, at24cxx_t *type)
get the chip type
@ AT24CM01
@ AT24C512
@ AT24C256
@ AT24C01
@ AT24CM02
@ AT24C32
@ AT24C08
@ AT24C128
@ AT24C64
@ AT24C16
@ AT24C02
@ AT24C04
@ AT24CXX_ADDRESS_A100
@ AT24CXX_ADDRESS_A111
@ AT24CXX_ADDRESS_A011
@ AT24CXX_ADDRESS_A000
@ AT24CXX_ADDRESS_A010
@ AT24CXX_ADDRESS_A001
@ AT24CXX_ADDRESS_A101
@ AT24CXX_ADDRESS_A110
at24cxx 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)
at24cxx information structure definition
uint32_t driver_version
char manufacturer_name[32]