![]() |
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"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. | |
| int | max14001_write (struct max14001_dev *dev, uint8_t reg_addr, uint16_t reg_data) |
| Write to device. | |
| 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. | |
| 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. | |
| int | max14001_init (struct max14001_dev **device, struct max14001_init_param init_param) |
| Initialize the device. | |
| int | max14001_init_config (struct max14001_dev *dev) |
| Initialize the configurations of device. | |
| int | max14001_wen (struct max14001_dev *dev, bool write_enable) |
| Enable write to registers. | |
| int | max14001_full_reset (struct max14001_dev *dev) |
| Full reset, same effect as power on reset. | |
| int | max14001_reg_reset (struct max14001_dev *dev) |
| Software reset. Restores all registers to their POR value. | |
| int | max14001_inpls_reset (struct max14001_dev *dev) |
| Trigger an inrush current pulse. | |
| int | max14001_fast_config (struct max14001_dev *dev, bool fast) |
| Enable/Disable fast inrush mode. | |
| int | max14001_iraw_config (struct max14001_dev *dev, bool raw_data) |
| Selects Inrush comparator input multiplexer. | |
| int | max14001_emv_config (struct max14001_dev *dev, bool mode) |
| Enable MV fault. | |
| int | max14001_efet_config (struct max14001_dev *dev, bool mode) |
| Enable FET fault. | |
| int | max14001_ecrcf_config (struct max14001_dev *dev, bool mode) |
| Enable CRCF fault. | |
| int | max14001_ecrcl_config (struct max14001_dev *dev, bool mode) |
| Enable CRCL fault. | |
| int | max14001_ecom_config (struct max14001_dev *dev, bool mode) |
| Enable COM fault. | |
| int | max14001_espi_config (struct max14001_dev *dev, bool mode) |
| Enable SPI fault. | |
| int | max14001_einrd_config (struct max14001_dev *dev, bool mode) |
| Enable INRD fault. | |
| int | max14001_eadc_config (struct max14001_dev *dev, bool mode) |
| Enable ADC fault. | |
| int | max14001_dyen_config (struct max14001_dev *dev, bool mode) |
| Enable dynamic FAULT signal. | |
| int | max14001_ena_config (struct max14001_dev *dev, bool enable) |
| Enable/Disable field-side current sink. | |
| int | max14001_exrf_config (struct max14001_dev *dev, bool mode) |
| Selects the voltage reference source for the ADC. | |
| int | max14001_exti_config (struct max14001_dev *dev, bool mode) |
| Current source connection. | |
| int | max14001_tinr_config (struct max14001_dev *dev, int mode) |
| Configure 4-bit inrush time. | |
| int | max14001_iinr_config (struct max14001_dev *dev, int mode) |
| Configure 4-bit inrush current. | |
| int | max14001_du_config (struct max14001_dev *dev, enum max14001_du mode) |
| Set maximum duty cycle for inrush current over the last 10 seconds. | |
| int | max14001_ibias_config (struct max14001_dev *dev, float mode) |
| Configure 4-bit bias current. | |
| int | max14001_ft_config (struct max14001_dev *dev, enum max14001_ft mode) |
| Set number of readings averaged in the ADC filter. | |
| int | max14001_get_data_raw (struct max14001_dev *dev, uint16_t *data) |
| Get adc data. | |
| int | max14001_get_data_filtered (struct max14001_dev *dev, uint16_t *data) |
| Get filtered adc data. | |
| int | max14001_remove (struct max14001_dev *dev) |
| Free the resources allocated by max14001_init(). | |
Implementation of max14001.h.
Copyright 2023(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #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 | ) |
| #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 | ) |
| #define MAX14001_IBIAS | ( | x | ) |
| #define MAX14001_IBIAS_CFG_MASK NO_OS_GENMASK(9, 6) |
| #define MAX14001_IBIAS_CFG_MODE | ( | a | ) |
| #define MAX14001_IBIAS_INC 25 |
| #define MAX14001_IINR | ( | x | ) |
| #define MAX14001_IINR_INC 7 |
| #define MAX14001_IINR_INRP_MASK NO_OS_GENMASK(9, 6) |
| #define MAX14001_IINR_INRP_MODE | ( | a | ) |
| #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 | ) |
| #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 | ) |
| #define MAX14001_TINR_INC 8 |
| #define MAX14001_TINR_INRP_MASK NO_OS_GENMASK(5, 2) |
| #define MAX14001_TINR_INRP_MODE | ( | a | ) |
| #define MAX14001_WEN_REG 0x0C |
| #define REVERSE_UINT16 | ( | x | ) |
| #define VERIFICATION_REG | ( | x | ) |
| 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. |