eeram5v 2.0.0.0
eeram5v.h
Go to the documentation of this file.
1/****************************************************************************
2** Copyright (C) 2020 MikroElektronika d.o.o.
3** Contact: https://www.mikroe.com/contact
4**
5** Permission is hereby granted, free of charge, to any person obtaining a copy
6** of this software and associated documentation files (the "Software"), to deal
7** in the Software without restriction, including without limitation the rights
8** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9** copies of the Software, and to permit persons to whom the Software is
10** furnished to do so, subject to the following conditions:
11** The above copyright notice and this permission notice shall be
12** included in all copies or substantial portions of the Software.
13**
14** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20** USE OR OTHER DEALINGS IN THE SOFTWARE.
21****************************************************************************/
22
27// ----------------------------------------------------------------------------
28
29#ifndef EERAM5V_H
30#define EERAM5V_H
31
32#ifdef __cplusplus
33extern "C"{
34#endif
35
40#ifdef PREINIT_SUPPORTED
41#include "preinit.h"
42#endif
43
44#ifdef MikroCCoreVersion
45 #if MikroCCoreVersion >= 1
46 #include "delays.h"
47 #endif
48#endif
49
50#include "drv_digital_out.h"
51#include "drv_digital_in.h"
52#include "drv_i2c_master.h"
53
74#define EERAM5V_ADDRESS_SRAM 0x50
75#define EERAM5V_ADDRESS_CONTROL 0x18
76#define EERAM5V_CMD_STORE 0x33
77#define EERAM5V_CMD_RECALL 0xDD
78
79 // eeram5v_const
80
95#define EERAM5V_MAP_MIKROBUS( cfg, mikrobus ) \
96 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
97 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
98 cfg.hs = MIKROBUS( mikrobus, MIKROBUS_INT )
99
100 // eeram5v_map
101 // eeram5v
102
107typedef struct
108{
109
110 digital_out_t hs;
112 // Modules
113
114 i2c_master_t i2c;
116 // I2C slave address
117
120} eeram5v_t;
121
126typedef struct
127{
128 pin_name_t scl;
129 pin_name_t sda;
131 pin_name_t hs;
133 uint32_t i2c_speed;
134 uint8_t i2c_address;
137
142typedef enum
143{
145 EERAM5V_ERROR = -1
146
148
166
183
200void eeram5v_generic_write ( eeram5v_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len );
201
218void eeram5v_generic_read ( eeram5v_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len );
219
230void eeram5v_status_write ( eeram5v_t *ctx, uint8_t command );
231
241
254void eeram5v_read ( eeram5v_t *ctx, uint16_t address, uint8_t *data_out, uint8_t count_out );
255
267 void eeram5v_write ( eeram5v_t *ctx, uint16_t address, uint8_t * data_in, uint8_t count_in );
268
269#ifdef __cplusplus
270}
271#endif
272#endif // EERAM5V_H
273
274 // eeram5v
275
276// ------------------------------------------------------------------------ END
eeram5v_return_value_t
EERAM 5V Click return value data.
Definition eeram5v.h:143
@ EERAM5V_ERROR
Definition eeram5v.h:145
@ EERAM5V_OK
Definition eeram5v.h:144
void eeram5v_generic_read(eeram5v_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
EERAM 5V I2C reading function.
void eeram5v_cfg_setup(eeram5v_cfg_t *cfg)
EERAM 5V configuration object setup function.
void eeram5v_read(eeram5v_t *ctx, uint16_t address, uint8_t *data_out, uint8_t count_out)
EERAM 5V Click SRAM Read.
void eeram5v_write(eeram5v_t *ctx, uint16_t address, uint8_t *data_in, uint8_t count_in)
EERAM 5V Click SRAM Write.
err_t eeram5v_init(eeram5v_t *ctx, eeram5v_cfg_t *cfg)
EERAM 5V initialization function.
uint8_t eeram5v_status_read(eeram5v_t *ctx)
EERAM 5V Click Status Read.
void eeram5v_status_write(eeram5v_t *ctx, uint8_t command)
EERAM 5V Click Status Write.
void eeram5v_generic_write(eeram5v_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
EERAM 5V I2C writing function.
EERAM 5V Click configuration object.
Definition eeram5v.h:127
pin_name_t hs
Definition eeram5v.h:131
uint32_t i2c_speed
Definition eeram5v.h:133
pin_name_t scl
Definition eeram5v.h:128
pin_name_t sda
Definition eeram5v.h:129
uint8_t i2c_address
Definition eeram5v.h:134
EERAM 5V Click context object.
Definition eeram5v.h:108
i2c_master_t i2c
Definition eeram5v.h:114
digital_out_t hs
Definition eeram5v.h:110
uint8_t slave_address
Definition eeram5v.h:118