no-OS
|
Implementation of max14001.h. More...
#include <stdint.h>
#include <stdbool.h>
#include "no_os_spi.h"
#include "no_os_gpio.h"
#include "no_os_util.h"
Go to the source code of this file.
Classes | |
struct | max14001_dev |
struct | max14001_init_param |
Enumerations | |
enum | max14001_du { DUTY_OFF, DUTY_1P6, DUTY_3P1, DUTY_6P3 } |
MAX14001 list of possible duty cycle modes. More... | |
enum | max14001_ft { FILTER_OFF, AVERAGE_2_READINGS, AVERAGE_4_READINGS, AVERAGE_8_READINGS } |
MAX14001 list of possible filtering modes. More... | |
Functions | |
int | max14001_read (struct max14001_dev *dev, uint8_t reg_addr, uint16_t *reg_data) |
Read from device. More... | |
int | max14001_write (struct max14001_dev *dev, uint8_t reg_addr, uint16_t reg_data) |
Write to device. More... | |
int | max14001_reg_update (struct max14001_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data) |
SPI write to device using a mask. More... | |
int | max14001_write_config_verify (struct max14001_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data) |
Write to config registers then to corresponding verification register. More... | |
int | max14001_init (struct max14001_dev **device, struct max14001_init_param init_param) |
Initialize the device. More... | |
int | max14001_init_config (struct max14001_dev *dev) |
Initialize the configurations of device. More... | |
int | max14001_wen (struct max14001_dev *dev, bool write_enable) |
Enable write to registers. More... | |
int | max14001_full_reset (struct max14001_dev *dev) |
Full reset, same effect as power on reset. More... | |
int | max14001_reg_reset (struct max14001_dev *dev) |
Software reset. Restores all registers to their POR value. More... | |
int | max14001_inpls_reset (struct max14001_dev *dev) |
Trigger an inrush current pulse. More... | |
int | max14001_fast_config (struct max14001_dev *dev, bool fast) |
Enable/Disable fast inrush mode. More... | |
int | max14001_iraw_config (struct max14001_dev *dev, bool raw_data) |
Selects Inrush comparator input multiplexer. More... | |
int | max14001_emv_config (struct max14001_dev *dev, bool mode) |
Enable MV fault. More... | |
int | max14001_efet_config (struct max14001_dev *dev, bool mode) |
Enable FET fault. More... | |
int | max14001_ecrcf_config (struct max14001_dev *dev, bool mode) |
Enable CRCF fault. More... | |
int | max14001_ecrcl_config (struct max14001_dev *dev, bool mode) |
Enable CRCL fault. More... | |
int | max14001_ecom_config (struct max14001_dev *dev, bool mode) |
Enable COM fault. More... | |
int | max14001_espi_config (struct max14001_dev *dev, bool mode) |
Enable SPI fault. More... | |
int | max14001_einrd_config (struct max14001_dev *dev, bool mode) |
Enable INRD fault. More... | |
int | max14001_eadc_config (struct max14001_dev *dev, bool mode) |
Enable ADC fault. More... | |
int | max14001_dyen_config (struct max14001_dev *dev, bool mode) |
Enable dynamic FAULT signal. More... | |
int | max14001_ena_config (struct max14001_dev *dev, bool enable) |
Enable/Disable field-side current sink. More... | |
int | max14001_exrf_config (struct max14001_dev *dev, bool mode) |
Selects the voltage reference source for the ADC. More... | |
int | max14001_exti_config (struct max14001_dev *dev, bool mode) |
Current source connection. More... | |
int | max14001_tinr_config (struct max14001_dev *dev, int mode) |
Configure 4-bit inrush time. More... | |
int | max14001_iinr_config (struct max14001_dev *dev, int mode) |
Configure 4-bit inrush current. More... | |
int | max14001_du_config (struct max14001_dev *dev, enum max14001_du mode) |
Set maximum duty cycle for inrush current over the last 10 seconds. More... | |
int | max14001_ibias_config (struct max14001_dev *dev, float mode) |
Configure 4-bit bias current. More... | |
int | max14001_ft_config (struct max14001_dev *dev, enum max14001_ft mode) |
Set number of readings averaged in the ADC filter. More... | |
int | max14001_get_data_raw (struct max14001_dev *dev, uint16_t *data) |
Get adc data. More... | |
int | max14001_get_data_filtered (struct max14001_dev *dev, uint16_t *data) |
Get filtered adc data. More... | |
int | max14001_remove (struct max14001_dev *dev) |
Free the resources allocated by max14001_init(). More... | |
Implementation of max14001.h.
Copyright 2023(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define MAX14001_ACT_REG 0x0B |
#define MAX14001_ADC_FLAG_MASK NO_OS_BIT(1) |
#define MAX14001_ADC_REG 0x00 |
#define MAX14001_CFG_MAX 0xF |
#define MAX14001_CFG_MIN 0 |
#define MAX14001_CFG_Q | ( | x, | |
y | |||
) |
#define MAX14001_CFG_REG 0x09 |
#define MAX14001_CFGV_REG 0x19 |
#define MAX14001_COM_FLAG_MASK NO_OS_BIT(4) |
#define MAX14001_CRCF_FLAG_MASK NO_OS_BIT(6) |
#define MAX14001_CRCL_FLAG_MASK NO_OS_BIT(5) |
#define MAX14001_DU_INRP_MASK NO_OS_GENMASK(1, 0) |
#define MAX14001_DU_INRP_MODE | ( | a | ) | (((a) & 0x3) << 0) |
#define MAX14001_DYEN_FLTEN_MASK NO_OS_BIT(0) |
#define MAX14001_EADC_FLTEN_MASK NO_OS_BIT(1) |
#define MAX14001_ECOM_FLTEN_MASK NO_OS_BIT(4) |
#define MAX14001_ECRCF_FLTEN_MASK NO_OS_BIT(6) |
#define MAX14001_ECRCL_FLTEN_MASK NO_OS_BIT(5) |
#define MAX14001_EFET_FLTEN_MASK NO_OS_BIT(7) |
#define MAX14001_EINRD_FLTEN_MASK NO_OS_BIT(2) |
#define MAX14001_EMV_FLTEN_MASK NO_OS_BIT(8) |
#define MAX14001_ENA_ENBL_MASK NO_OS_BIT(4) |
#define MAX14001_ENBL_REG 0x0A |
#define MAX14001_ENBLV_REG 0x1A |
#define MAX14001_ESPI_FLTEN_MASK NO_OS_BIT(3) |
#define MAX14001_EXRF_CFG_MASK NO_OS_BIT(5) |
#define MAX14001_EXTI_CFG_MASK NO_OS_BIT(4) |
#define MAX14001_FADC_REG 0x01 |
#define MAX14001_FAST_CFG_MASK NO_OS_BIT(1) |
#define MAX14001_FET_FLAG_MASK NO_OS_BIT(7) |
#define MAX14001_FLAGS_REG 0x02 |
#define MAX14001_FLTEN_REG 0x03 |
#define MAX14001_FLTV_REG 0x13 |
#define MAX14001_FT_CFG_MASK NO_OS_GENMASK(3, 2) |
#define MAX14001_FT_CFG_MODE | ( | a | ) | (((a) & 0x3) << 2) |
#define MAX14001_IBIAS | ( | x | ) |
#define MAX14001_IBIAS_CFG_MASK NO_OS_GENMASK(9, 6) |
#define MAX14001_IBIAS_CFG_MODE | ( | a | ) | ((MAX14001_IBIAS(a)) << 6) |
#define MAX14001_IBIAS_INC 25 |
#define MAX14001_IINR | ( | x | ) | MAX14001_CFG_Q(x, MAX14001_IINR_INC) |
#define MAX14001_IINR_INC 7 |
#define MAX14001_IINR_INRP_MASK NO_OS_GENMASK(9, 6) |
#define MAX14001_IINR_INRP_MODE | ( | a | ) | ((MAX14001_IINR(a)) << 6) |
#define MAX14001_INPLS_MASK NO_OS_BIT(9) |
Trigger an inrush current pulse. Has no effect when ENA = 0.
#define MAX14001_INRD_FLAG_MASK NO_OS_BIT(2) |
#define MAX14001_INRP_REG 0x08 |
#define MAX14001_INRPV_REG 0x18 |
#define MAX14001_INRR_REG 0x06 |
#define MAX14001_INRRV_REG 0x16 |
#define MAX14001_INRT_REG 0x07 |
#define MAX14001_INRTV_REG 0x17 |
#define MAX14001_IRAW_CFG_MASK NO_OS_BIT(0) |
#define MAX14001_MUL 100 |
#define MAX14001_MV_FLAG_MASK NO_OS_BIT(8) |
#define MAX14001_REG_DATA_MASK NO_OS_GENMASK(9, 0) |
#define MAX14001_REG_READ | ( | x | ) | (((x) << 11) & NO_OS_GENMASK(15, 11)) |
#define MAX14001_REG_WRITE | ( | x, | |
y | |||
) |
#define MAX14001_RSET_MASK NO_OS_BIT(7) |
Reset. Has the same effect as a power on reset.
#define MAX14001_SPI_FLAG_MASK NO_OS_BIT(3) |
#define MAX14001_SPI_REG_WRITE_DISABLE 0x000 |
#define MAX14001_SPI_REG_WRITE_ENABLE 0x294 |
#define MAX14001_SRES_MASK NO_OS_BIT(6) |
Software reset. Restores all registers to their POR value.
#define MAX14001_THL_REG 0x04 |
#define MAX14001_THLV_REG 0x14 |
#define MAX14001_THU_REG 0x05 |
#define MAX14001_THUV_REG 0x15 |
#define MAX14001_TINR | ( | x | ) | MAX14001_CFG_Q(x, MAX14001_TINR_INC) |
#define MAX14001_TINR_INC 8 |
#define MAX14001_TINR_INRP_MASK NO_OS_GENMASK(5, 2) |
#define MAX14001_TINR_INRP_MODE | ( | a | ) | ((MAX14001_TINR(a)) << 2) |
#define MAX14001_WEN_REG 0x0C |
#define REVERSE_UINT16 | ( | x | ) |
#define VERIFICATION_REG | ( | x | ) | ((x) + 0x10) |
enum max14001_du |
enum max14001_ft |
int max14001_du_config | ( | struct max14001_dev * | dev, |
enum max14001_du | mode | ||
) |
Set maximum duty cycle for inrush current over the last 10 seconds.
Set maximum duty cycle for inrush current over the last 10 seconds.
dev | - The device structure. |
mode | - Duty Cycle Accepted values: DUTY_OFF DUTY_1P6 DUTY_3P1 DUTY_6P3 |
int max14001_dyen_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable dynamic FAULT signal.
Enable dynamic FAULT signal.
dev | - The device structure. |
mode | - true for dynamic FAULT signal false for latched FAULT signal (default) |
int max14001_eadc_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable ADC fault.
Enable ADC fault.
dev | - The device structure. |
mode | - true to allow ADC error to assert FAULT false to prevent ADC error to assert FAULT (default) |
int max14001_ecom_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable COM fault.
Enable COM fault.
dev | - The device structure. |
mode | - true to allow COM error to assert FAULT false to prevent COM error to assert FAULT (default) |
int max14001_ecrcf_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable CRCF fault.
Enable CRCF fault.
dev | - The device structure. |
mode | - true to allow CRCF error to assert FAULT false to prevent CRCF error to assert FAULT (default) |
int max14001_ecrcl_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable CRCL fault.
Enable CRCL fault.
dev | - The device structure. |
mode | - true to allow CRCL error to assert FAULT false to prevent CRCL error to assert FAULT (default) |
int max14001_efet_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable FET fault.
Enable FET fault.
dev | - The device structure. |
mode | - true to allow FET error to assert FAULT false to prevent FET error to assert FAULT (default) |
int max14001_einrd_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable INRD fault.
Enable INRD fault.
dev | - The device structure. |
mode | - true to allow INRD error to assert FAULT false to prevent INRD error to assert FAULT (default) |
int max14001_emv_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable MV fault.
Enable MV fault.
dev | - The device structure. |
mode | - true to allow MV error to assert FAULT false to prevent MV error to assert FAULT (default) |
int max14001_ena_config | ( | struct max14001_dev * | dev, |
bool | enable | ||
) |
Enable/Disable field-side current sink.
Enable/Disable field-side current sink.
dev | - The device structure. |
enable | - true to enable field-side current sink false to prevent field-side current sink (default) |
int max14001_espi_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Enable SPI fault.
Enable SPI fault.
dev | - The device structure. |
mode | - true to allow SPI error to assert FAULT false to prevent SPI error to assert FAULT (default) |
int max14001_exrf_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Selects the voltage reference source for the ADC.
Selects the voltage reference source for the ADC.
dev | - The device structure. |
mode | - 0 for external voltage reference enabled 1 for internal voltage reference enabled (default) |
int max14001_exti_config | ( | struct max14001_dev * | dev, |
bool | mode | ||
) |
Current source connection.
Current source connection.
dev | - The device structure. |
mode | - 0 for current source on and connected to the REFIN pin 1 for current source off (default) |
int max14001_fast_config | ( | struct max14001_dev * | dev, |
bool | fast | ||
) |
Enable/Disable fast inrush mode.
Enable/Disable fast inrush mode.
dev | - The device structure. |
fast | - true for FAST inrush mode (default) false for ADC controlled |
int max14001_ft_config | ( | struct max14001_dev * | dev, |
enum max14001_ft | mode | ||
) |
Set number of readings averaged in the ADC filter.
Set number of readings averaged in the ADC filter.
dev | - The device structure. |
mode | - Average readings Accepted values: FILTER_OFF AVERAGE_2_READINGS AVERAGE_4_READINGS AVERAGE_8_READINGS |
int max14001_full_reset | ( | struct max14001_dev * | dev | ) |
Full reset, same effect as power on reset.
Full reset, same effect as power on reset.
dev | - The device structure. |
int max14001_get_data_filtered | ( | struct max14001_dev * | dev, |
uint16_t * | data | ||
) |
Get filtered adc data.
Get filtered adc data.
dev | - Device handler. |
data | - Pointer to filtered adc value. |
int max14001_get_data_raw | ( | struct max14001_dev * | dev, |
uint16_t * | data | ||
) |
Get adc data.
Get adc data.
dev | - Device handler. |
data | - Pointer to raw adc value. |
int max14001_ibias_config | ( | struct max14001_dev * | dev, |
float | mode | ||
) |
Configure 4-bit bias current.
Configure 4-bit bias current.
dev | - The device structure. |
mode | - 50uA to 3.75mA in 0.25mA increments. Inputs are clamped and rounded within limits. |
int max14001_iinr_config | ( | struct max14001_dev * | dev, |
int | mode | ||
) |
Configure 4-bit inrush current.
Configure 4-bit inrush current.
dev | - The device structure. |
mode | - 50uA to 105mA in 7mA increments. Inputs are clamped and rounded within limits. |
int max14001_init | ( | struct max14001_dev ** | device, |
struct max14001_init_param | init_param | ||
) |
Initialize the device.
Initialize the device.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int max14001_init_config | ( | struct max14001_dev * | dev | ) |
Initialize the configurations of device.
Initialize the configurations of device.
dev | - The device structure. |
int max14001_inpls_reset | ( | struct max14001_dev * | dev | ) |
Trigger an inrush current pulse.
Trigger an inrush current pulse.
dev | - The device structure. |
int max14001_iraw_config | ( | struct max14001_dev * | dev, |
bool | raw_data | ||
) |
Selects Inrush comparator input multiplexer.
Selects Inrush comparator input multiplexer.
dev | - The device structure. |
raw_data | - 0 to connect comparator to ADC register(default) 1 to connect comparator to FADC register |
int max14001_read | ( | struct max14001_dev * | dev, |
uint8_t | reg_addr, | ||
uint16_t * | reg_data | ||
) |
Read from device.
Read from device.
dev | - The device structure. |
reg_addr | - The register address. |
reg_data | - The register data. |
int max14001_reg_reset | ( | struct max14001_dev * | dev | ) |
Software reset. Restores all registers to their POR value.
Software reset. Restores all registers to their POR value.
dev | - The device structure. |
int max14001_reg_update | ( | struct max14001_dev * | dev, |
uint8_t | reg_addr, | ||
uint16_t | mask, | ||
uint16_t | data | ||
) |
SPI write to device using a mask.
SPI write to device using a mask.
dev | - The device structure. |
reg_addr | - The register address. |
mask | - The mask. |
data | - The register data. |
int max14001_remove | ( | struct max14001_dev * | dev | ) |
Free the resources allocated by max14001_init().
Free the resources allocated by max14001_init().
dev | - The device structure. |
int max14001_tinr_config | ( | struct max14001_dev * | dev, |
int | mode | ||
) |
Configure 4-bit inrush time.
Configure 4-bit inrush time.
dev | - The device structure. |
mode | - 0 to 120ms in 8ms increments. Inputs are clamped and rounded within limits. |
int max14001_wen | ( | struct max14001_dev * | dev, |
bool | enable | ||
) |
Enable write to registers.
Enable write to registers.
dev | - The device structure. |
enable | - true to write enable false to write disable |
int max14001_write | ( | struct max14001_dev * | dev, |
uint8_t | reg_addr, | ||
uint16_t | reg_data | ||
) |
Write to device.
Write to device.
dev | - The device structure. |
reg_addr | - The register address. |
reg_data | - The register data. |
int max14001_write_config_verify | ( | struct max14001_dev * | dev, |
uint8_t | reg_addr, | ||
uint16_t | mask, | ||
uint16_t | data | ||
) |
Write to config registers then to corresponding verification register.
Write to config registers then to corresponding verification register.
dev | - The device structure. |
reg_addr | - The register address. |
mask | - The mask. |
data | - The register data. |