no-OS
Loading...
Searching...
No Matches
max22216.h
Go to the documentation of this file.
1/***************************************************************************/
33
34#ifndef MAX22216_H
35#define MAX22216_H
36
37#include <stdbool.h>
38#include "no_os_gpio.h"
39#include "no_os_spi.h"
40#include "no_os_alloc.h"
41#include "no_os_util.h"
42#include "no_os_error.h"
43
44#define MAX22216_NR_OF_CHANNELS 4 // Number of channels supported by MAX22216
45
46#define MAX22216_K_CDR 1.017
47#define MAX22216_GAIN 0.25
48#define MAX22216_SNSF 1
49#define MAX22216_GLOBAL_CTRL 0x00
50#define MAX22216_GLOBAL_CFG 0x01
51#define MAX22216_F_AC 0x07
52#define MAX22216_U_AC_SCAN 0x08
53#define MAX22216_CFG_DC_L2H_0 0x09
54#define MAX22216_CFG_DC_H_0 0x0A
55#define MAX22216_CFG_L2H_TIME_0 0x0C
56#define MAX22216_CFG_CTRL0_0 0x0D
57#define MAX22216_CFG_CTRL1_0 0x0E
58
59#define MAX22216_CFG_IND_0_0 0x13
60#define MAX22216_CFG_IND_DITHERING_BIT 11
61
62#define MAX22216_CFG_P_0 0x15
63#define MAX22216_DIAG_CURR_MON_0 0x45 // Diagnostics current monitor register for channel 0
64#define MAX22216_CFG_I_0 0x16
65#define MAX22216_FAULT0 0x65
66#define MAX22216_FAULT1 0x66
67
68#define MAX22216_CHANNEL_CONFIG_REG_SHIFT 0x14 // Channel configuration registers start at 0x14
69#define MAX22216_DIAGNOSTICS_REG_SHIFT 0x09
70
71typedef struct {
72 uint8_t reg_addr; // Register address
73 int16_t data; // Data to write
75
78 struct no_os_gpio_init_param *drv_en_gpio_ip; // GPIO for driver enable
79 struct no_os_gpio_init_param *fault_gpio_ip; // GPIO for fault indication
80};
81
84 struct no_os_gpio_desc *drv_en_gpio; // GPIO for driver enable
85 struct no_os_gpio_desc *fault_gpio; // GPIO for fault indication
86 uint16_t status_reg; // Status register value
87};
88
89int max22216_init(struct max22216_desc **desc,
90 struct max22216_init_param *param);
91int max22216_remove(struct max22216_desc *desc);
92int max22216_write_reg(struct max22216_desc *desc, uint8_t, uint16_t);
93int max22216_read_reg(struct max22216_desc *desc, uint8_t, uint16_t*);
95 max22216_reg_setting_t* list, uint8_t elem_nr);
96int max22216_set_enable_pin(struct max22216_desc *desc, bool value);
97int max22216_check_fault_pin(struct max22216_desc *desc, bool *fault_status);
98int max22216_current_reg_control(struct max22216_desc *desc, uint8_t channel_nr,
99 uint16_t value);
100int max22216_set_current_ma(struct max22216_desc *desc, uint8_t channel_nr,
101 uint16_t current_ma);
102int max22216_turn_on(struct max22216_desc *desc, uint8_t channel_nr);
103int max22216_turn_off(struct max22216_desc *desc, uint8_t channel_nr);
104
105#endif // MAX22216_H
int max22216_read_reg(struct max22216_desc *desc, uint8_t, uint16_t *)
Definition max22216.c:52
int max22216_set_enable_pin(struct max22216_desc *desc, bool value)
Definition max22216.c:106
int max22216_init(struct max22216_desc **desc, struct max22216_init_param *param)
Definition max22216.c:267
int max22216_write_reg(struct max22216_desc *desc, uint8_t, uint16_t)
Definition max22216.c:36
int max22216_turn_off(struct max22216_desc *desc, uint8_t channel_nr)
Definition max22216.c:209
int max22216_remove(struct max22216_desc *desc)
Definition max22216.c:332
int max22216_set_current_ma(struct max22216_desc *desc, uint8_t channel_nr, uint16_t current_ma)
Definition max22216.c:250
int max22216_current_reg_control(struct max22216_desc *desc, uint8_t channel_nr, uint16_t value)
Definition max22216.c:133
int max22216_check_fault_pin(struct max22216_desc *desc, bool *fault_status)
Definition max22216.c:117
int max22216_turn_on(struct max22216_desc *desc, uint8_t channel_nr)
Definition max22216.c:165
int max22216_write_reg_list(struct max22216_desc *desc, max22216_reg_setting_t *list, uint8_t elem_nr)
Definition max22216.c:75
Error codes definition.
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition max22216.h:82
struct no_os_gpio_desc * drv_en_gpio
Definition max22216.h:84
uint16_t status_reg
Definition max22216.h:86
struct no_os_gpio_desc * fault_gpio
Definition max22216.h:85
struct no_os_spi_desc * spi_desc
Definition max22216.h:83
Definition max22216.h:76
struct no_os_gpio_init_param * fault_gpio_ip
Definition max22216.h:79
struct no_os_gpio_init_param * drv_en_gpio_ip
Definition max22216.h:78
struct no_os_spi_init_param * spi_ip
Definition max22216.h:77
Definition max22216.h:71
uint8_t reg_addr
Definition max22216.h:72
int16_t data
Definition max22216.h:73
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128