eeprom6  2.0.0.0
eeprom6.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 
28 #ifndef EEPROM6_H
29 #define EEPROM6_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_one_wire.h"
38 
59 #define EEPROM6_CMD_WRITE_SCRATCHPAD 0x0F
60 #define EEPROM6_CMD_READ_SCRATCHPAD 0xAA
61 #define EEPROM6_CMD_COPY_SCRATCHPAD 0x55
62 #define EEPROM6_CMD_READ_MEMORY 0xF0
63 #define EEPROM6_CMD_EXTENDED_READ_MEMORY 0xA5
64  // eeprom6_cmd
66 
81 #define EEPROM6_FAMILY_CODE 0x43
82 
87 #define EEPROM6_ADDRESS_0 0x00
88 #define EEPROM6_ADDRESS_1 0x01
89 #define EEPROM6_ADDRESS_ALL 0xFF
90  // eeprom6_set
92 
107 #define EEPROM6_MAP_MIKROBUS( cfg, mikrobus ) \
108  cfg.gp0 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
109  cfg.gp1 = MIKROBUS( mikrobus, MIKROBUS_AN );
110  // eeprom6_map // eeprom6
113 
118 typedef enum
119 {
124 
129 typedef struct
130 {
131  // Modules
132  one_wire_t ow;
134  one_wire_rom_address_t rom_addr;
135  uint8_t address;
137 } eeprom6_t;
138 
143 typedef struct
144 {
145  // Communication gpio pins
146  pin_name_t gp0;
147  pin_name_t gp1;
151 } eeprom6_cfg_t;
152 
157 typedef enum
158 {
160  EEPROM6_ERROR = -1
161 
163 
180 
196 
211 err_t eeprom6_init ( eeprom6_t *ctx, eeprom6_cfg_t *cfg );
212 
227 
240 
253 
266 err_t eeprom6_read_scratchpad ( eeprom6_t *ctx, uint8_t *scratchpad, uint8_t scratchpad_len );
267 
280 err_t eeprom6_write_scratchpad ( eeprom6_t *ctx, uint8_t *scratchpad, uint8_t scratchpad_len );
281 
296 err_t eeprom6_read_mem ( eeprom6_t *ctx, uint16_t reg_adr, uint8_t *data_in, uint16_t n_len );
297 
311 err_t eeprom6_write_mem ( eeprom6_t *ctx, uint16_t reg_adr, uint8_t *data_in, uint16_t n_len );
312 
313 #ifdef __cplusplus
314 }
315 #endif
316 #endif // EEPROM6_H
317  // eeprom6
319 
320 // ------------------------------------------------------------------------ END
EEPROM6_GPIO_0
@ EEPROM6_GPIO_0
Definition: eeprom6.h:120
eeprom6_write_scratchpad
err_t eeprom6_write_scratchpad(eeprom6_t *ctx, uint8_t *scratchpad, uint8_t scratchpad_len)
EEPROM 6 write scratchpad function.
eeprom6_select_device
err_t eeprom6_select_device(eeprom6_t *ctx)
EEPROM 6 select device function.
eeprom6_default_cfg
err_t eeprom6_default_cfg(eeprom6_t *ctx)
EEPROM 6 default configuration function.
eeprom6_read_scratchpad
err_t eeprom6_read_scratchpad(eeprom6_t *ctx, uint8_t *scratchpad, uint8_t scratchpad_len)
EEPROM 6 read scratchpad function.
eeprom6_t::rom_addr
one_wire_rom_address_t rom_addr
Definition: eeprom6.h:134
eeprom6_t::ow
one_wire_t ow
Definition: eeprom6.h:132
EEPROM6_OK
@ EEPROM6_OK
Definition: eeprom6.h:159
eeprom6_cfg_t::gp1
pin_name_t gp1
Definition: eeprom6.h:147
EEPROM6_GPIO_1
@ EEPROM6_GPIO_1
Definition: eeprom6.h:121
eeprom6_cfg_t
EEPROM 6 Click configuration object.
Definition: eeprom6.h:144
EEPROM6_ERROR
@ EEPROM6_ERROR
Definition: eeprom6.h:160
eeprom6_cfg_t::gp0
pin_name_t gp0
Definition: eeprom6.h:146
eeprom6_write_mem
err_t eeprom6_write_mem(eeprom6_t *ctx, uint16_t reg_adr, uint8_t *data_in, uint16_t n_len)
EEPROM 6 write memory function.
eeprom6_cfg_setup
void eeprom6_cfg_setup(eeprom6_cfg_t *cfg)
EEPROM 6 configuration object setup function.
eeprom6_gpio_selection
void eeprom6_gpio_selection(eeprom6_cfg_t *cfg, eeprom6_gpio_sel_t gpio_sel)
EEPROM 6 driver interface setup function.
eeprom6_check_communication
err_t eeprom6_check_communication(eeprom6_t *ctx)
EEPROM 6 check communication function.
eeprom6_t::address
uint8_t address
Definition: eeprom6.h:135
eeprom6_cfg_t::gpio_sel
eeprom6_gpio_sel_t gpio_sel
Definition: eeprom6.h:149
eeprom6_read_mem
err_t eeprom6_read_mem(eeprom6_t *ctx, uint16_t reg_adr, uint8_t *data_in, uint16_t n_len)
EEPROM 6 read memory function.
eeprom6_init
err_t eeprom6_init(eeprom6_t *ctx, eeprom6_cfg_t *cfg)
EEPROM 6 initialization function.
eeprom6_gpio_sel_t
eeprom6_gpio_sel_t
EEPROM 6 Click gpio selector.
Definition: eeprom6.h:119
eeprom6_return_value_t
eeprom6_return_value_t
EEPROM 6 Click return value data.
Definition: eeprom6.h:158
eeprom6_t
EEPROM 6 Click context object.
Definition: eeprom6.h:130