AMU Library 3.0
C/C++ library for communicating with AMU (Aerospace Measurement Unit) devices
Loading...
Searching...
No Matches
amu_types.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <stddef.h>
#include "amu_config_internal.h"

Go to the source code of this file.

Data Structures

union  amu_coeff_t
struct  amu_pid_t
struct  ivsweep_config_t
struct  amu_meas_t
struct  ivsweep_meta_t
struct  ivsweep_datapoint_t
struct  ivsweep_packet_t
union  adc_channels_t
struct  ss_angle_t
struct  quad_photo_sensor_t
struct  press_data_t
struct  amu_int_volt_t
struct  amu_dut_t
struct  amu_twi_regs_t
struct  amu_scpi_dev_t
struct  amu_device_t

Macros

#define AMU_ADDRESS_DEFAULT   0x0F
#define AMU_NO_ADDRESS_MATCH   0xFF
#define AMU_DEVICE_END_LIST   0xFF
#define AMU_THIS_DEVICE   0x00
#define AMU_NOTES_SIZE   128
#define IVSWEEP_MAX_POINTS   40
#define AMU_TRANSFER_REG_SIZE   (IVSWEEP_MAX_POINTS * sizeof(float))
#define AMU_DUT_MANUFACTURER_STR_LEN   16
#define AMU_DUT_MODEL_STR_LEN   16
#define AMU_DUT_TECHNOLOGY_STR_LEN   16
#define AMU_DUT_SERIALNUM_STR_LEN   24

Typedefs

typedef amu_adc_ch_t AMU_ADC_CH_t
typedef amu_adc_power_mode_t AMU_ADC_POWER_MODE_t
typedef amu_ch_en_t AMU_CH_EN_t
typedef char amu_notes_t[128]
typedef int8_t(* amu_transfer_fptr_t) (uint8_t address, uint8_t reg, uint8_t *data, size_t len, uint8_t read)
typedef void(* amu_delay_fptr_t) (uint32_t period)
typedef void(* amu_watchdog_fptr_t) (void)
typedef void(* amu_watchdog_reset_fptr_t) (void)
typedef void(* amu_hardware_reset_fptr_t) (void)
typedef int(* amu_print_fptr_t) (const char *fmt,...)
typedef uint32_t(* amu_milis_fptr_t) (void)
typedef volatile uint8_t amu_data_reg_t

Enumerations

enum  amu_adc_ch_t {
  AMU_ADC_CH_VOLTAGE = 0 ,
  AMU_ADC_CH_CURRENT = 1 ,
  AMU_ADC_CH_TSENSOR0 = 2 ,
  AMU_ADC_CH_TSENSOR1 = 3 ,
  AMU_ADC_CH_TSENSOR2 = 4 ,
  AMU_ADC_CH_BIAS = 5 ,
  AMU_ADC_CH_OFFSET = 6 ,
  AMU_ADC_CH_TEMP = 7 ,
  AMU_ADC_CH_AVDD = 8 ,
  AMU_ADC_CH_IOVDD = 9 ,
  AMU_ADC_CH_ALDO = 10 ,
  AMU_ADC_CH_DLDO = 11 ,
  AMU_ADC_CH_SS_TL = 12 ,
  AMU_ADC_CH_SS_BL = 13 ,
  AMU_ADC_CH_SS_BR = 14 ,
  AMU_ADC_CH_SS_TR = 15 ,
  AMU_ADC_CH_NUM = 16
}
enum  amu_adc_pga_t {
  ADC_PGA_1X = 0 ,
  ADC_PGA_2X = 1 ,
  ADC_PGA_4X = 2 ,
  ADC_PGA_8X = 3 ,
  ADC_PGA_16X = 4 ,
  ADC_PGA_32X = 5 ,
  ADC_PGA_64X = 6 ,
  ADC_PGA_128X = 7 ,
  ADC_PGA_NUM = 8
}
enum  amu_adc_power_mode_t {
  AMU_ADC_POWER_MODE_LOW = 0 ,
  AMU_ADC_POWER_MODE_MID = 1 ,
  AMU_ADC_POWER_MODE_HIGH = 2 ,
  AMU_ADC_POWER_MODE_STANDBY = 3
}
enum  amu_ch_en_t {
  AMU_CH_EN_VOLTAGE = (1 << AMU_ADC_CH_VOLTAGE) ,
  AMU_CH_EN_CURRENT = (1 << AMU_ADC_CH_CURRENT) ,
  AMU_CH_EN_TSENSOR0 = (1 << AMU_ADC_CH_TSENSOR0) ,
  AMU_CH_EN_TSENSOR1 = (1 << AMU_ADC_CH_TSENSOR1) ,
  AMU_CH_EN_TSENSOR2 = (1 << AMU_ADC_CH_TSENSOR2) ,
  AMU_CH_EN_TSENSORS = (AMU_CH_EN_TSENSOR0 | AMU_CH_EN_TSENSOR1 | AMU_CH_EN_TSENSOR2) ,
  AMU_CH_EN_BIAS = (1 << AMU_ADC_CH_BIAS) ,
  AMU_CH_EN_OFFSET = (1 << AMU_ADC_CH_OFFSET) ,
  AMU_CH_EN_TEMP = (1 << AMU_ADC_CH_TEMP) ,
  AMU_CH_EN_AVDD = (1 << AMU_ADC_CH_AVDD) ,
  AMU_CH_EN_IOVDD = (1 << AMU_ADC_CH_IOVDD) ,
  AMU_CH_EN_ALDO = (1 << AMU_ADC_CH_ALDO) ,
  AMU_CH_EN_DLDO = (1 << AMU_ADC_CH_DLDO) ,
  AMU_CH_EN_INTERNAL_VOLTAGES = (AMU_CH_EN_AVDD | AMU_CH_EN_IOVDD | AMU_CH_EN_ALDO | AMU_CH_EN_DLDO) ,
  AMU_CH_EN_SS_TL = (1 << AMU_ADC_CH_SS_TL) ,
  AMU_CH_EN_SS_BL = (1 << AMU_ADC_CH_SS_BL) ,
  AMU_CH_EN_SS_BR = (1 << AMU_ADC_CH_SS_BR) ,
  AMU_CH_EN_SS_TR = (1 << AMU_ADC_CH_SS_TR) ,
  AMU_CH_EN_SUNSENSOR = (AMU_CH_EN_SS_TL | AMU_CH_EN_SS_BL | AMU_CH_EN_SS_BR | AMU_CH_EN_SS_TR) ,
  AMU_CH_EN_ALL = (0xFFFF)
}
enum  amu_hardware_revision_t {
  AMU_HARDWARE_REVISION_ISC2 = 0x01 ,
  AMU_HARDWARE_REVISION_AMU_1_0 = 0x10 ,
  AMU_HARDWARE_REVISION_AMU_1_1 = 0x11 ,
  AMU_HARDWARE_REVISION_AMU_2_0 = 0x20 ,
  AMU_HARDWARE_REVISION_AMU_2_1 = 0x21 ,
  AMU_HARDWARE_REVISION_AMU_3_0 = 0x30 ,
  AMU_HARDWARE_REVISION_AMU_3_2 = 0x32 ,
  AMU_HARDWARE_REVISION_AMU_3_3 = 0x33 ,
  AMU_HARDWARE_REVISION_AMU_SP_DEV = 0x80 ,
  AMU_HARDWARE_REVISION_AMU_SP = 0x81
}
enum  amu_tsensor_type_t {
  AMU_TSENSOR_TYPE_PT1000_RTD = 0 ,
  AMU_TSENSOR_TYPE_PT100_RTD = 1 ,
  AMU_TSENSOR_TYPE_AD590 = 2
}
enum  amu_led_pattern_t {
  AMU_LED_PATTERN_OFF = 0 ,
  AMU_LED_PATTERN_WHITE_FLASH = 1 ,
  AMU_LED_PATTERN_QUICK_RGB_FADE = 2 ,
  AMU_LED_PATTERN_SLOW_RGB_FADE = 3 ,
  AMU_LED_PATTERN_RED_FLASH = 4 ,
  AMU_LED_PATTERN_GREEN_FLASH = 5 ,
  AMU_LED_PATTERN_BLUE_FLASH = 6
}
enum  amu_status_t {
  AMU_STATUS_SLEEP = 0x01 ,
  AMU_STATUS_MEASURE = 0x02 ,
  AMU_STATUS_HEATER = 0x04 ,
  AMU_STATUS_MPPT = 0x08
}
enum  amu_sleep_mode_t {
  AMU_SLEEP_MODE_DEEP = 0 ,
  AMU_SLEEP_MODE_STANDBY = 1 ,
  AMU_SLEEP_MODE_IDLE = 2 ,
  AMU_SLEEP_MODE_OFF = 3
}

Macro Definition Documentation

◆ AMU_ADDRESS_DEFAULT

#define AMU_ADDRESS_DEFAULT   0x0F

Definition at line 19 of file amu_types.h.

◆ AMU_DEVICE_END_LIST

#define AMU_DEVICE_END_LIST   0xFF

Definition at line 22 of file amu_types.h.

◆ AMU_DUT_MANUFACTURER_STR_LEN

#define AMU_DUT_MANUFACTURER_STR_LEN   16

Definition at line 38 of file amu_types.h.

◆ AMU_DUT_MODEL_STR_LEN

#define AMU_DUT_MODEL_STR_LEN   16

Definition at line 39 of file amu_types.h.

◆ AMU_DUT_SERIALNUM_STR_LEN

#define AMU_DUT_SERIALNUM_STR_LEN   24

Definition at line 41 of file amu_types.h.

◆ AMU_DUT_TECHNOLOGY_STR_LEN

#define AMU_DUT_TECHNOLOGY_STR_LEN   16

Definition at line 40 of file amu_types.h.

◆ AMU_NO_ADDRESS_MATCH

#define AMU_NO_ADDRESS_MATCH   0xFF

Definition at line 20 of file amu_types.h.

◆ AMU_NOTES_SIZE

#define AMU_NOTES_SIZE   128

Definition at line 26 of file amu_types.h.

◆ AMU_THIS_DEVICE

#define AMU_THIS_DEVICE   0x00

Definition at line 24 of file amu_types.h.

◆ AMU_TRANSFER_REG_SIZE

#define AMU_TRANSFER_REG_SIZE   (IVSWEEP_MAX_POINTS * sizeof(float))

Definition at line 30 of file amu_types.h.

◆ IVSWEEP_MAX_POINTS

#define IVSWEEP_MAX_POINTS   40

Definition at line 29 of file amu_types.h.

Typedef Documentation

◆ AMU_ADC_CH_t

Definition at line 64 of file amu_types.h.

◆ AMU_ADC_POWER_MODE_t

Definition at line 85 of file amu_types.h.

◆ AMU_CH_EN_t

Definition at line 110 of file amu_types.h.

◆ amu_data_reg_t

typedef volatile uint8_t amu_data_reg_t

Definition at line 351 of file amu_types.h.

◆ amu_delay_fptr_t

typedef void(* amu_delay_fptr_t) (uint32_t period)

Definition at line 306 of file amu_types.h.

◆ amu_hardware_reset_fptr_t

typedef void(* amu_hardware_reset_fptr_t) (void)

Definition at line 309 of file amu_types.h.

◆ amu_milis_fptr_t

typedef uint32_t(* amu_milis_fptr_t) (void)

Definition at line 314 of file amu_types.h.

◆ amu_notes_t

typedef char amu_notes_t[128]

Definition at line 174 of file amu_types.h.

◆ amu_print_fptr_t

typedef int(* amu_print_fptr_t) (const char *fmt,...)

Definition at line 310 of file amu_types.h.

◆ amu_transfer_fptr_t

typedef int8_t(* amu_transfer_fptr_t) (uint8_t address, uint8_t reg, uint8_t *data, size_t len, uint8_t read)

1 for read, 0 for write

Parameters
addressAddress of AMU
regRegister to read or write from
dataData pointer
lenLength of data to read/write

Definition at line 299 of file amu_types.h.

◆ amu_watchdog_fptr_t

typedef void(* amu_watchdog_fptr_t) (void)

Definition at line 307 of file amu_types.h.

◆ amu_watchdog_reset_fptr_t

typedef void(* amu_watchdog_reset_fptr_t) (void)

Definition at line 308 of file amu_types.h.

Enumeration Type Documentation

◆ amu_adc_ch_t

Enumerator
AMU_ADC_CH_VOLTAGE 
AMU_ADC_CH_CURRENT 
AMU_ADC_CH_TSENSOR0 
AMU_ADC_CH_TSENSOR1 
AMU_ADC_CH_TSENSOR2 
AMU_ADC_CH_BIAS 
AMU_ADC_CH_OFFSET 
AMU_ADC_CH_TEMP 
AMU_ADC_CH_AVDD 
AMU_ADC_CH_IOVDD 
AMU_ADC_CH_ALDO 10 
AMU_ADC_CH_DLDO 11 
AMU_ADC_CH_SS_TL 12 
AMU_ADC_CH_SS_BL 13 
AMU_ADC_CH_SS_BR 14 
AMU_ADC_CH_SS_TR 15 
AMU_ADC_CH_NUM 16 

Definition at line 44 of file amu_types.h.

◆ amu_adc_pga_t

Enumerator
ADC_PGA_1X 
ADC_PGA_2X 
ADC_PGA_4X 
ADC_PGA_8X 
ADC_PGA_16X 
ADC_PGA_32X 
ADC_PGA_64X 
ADC_PGA_128X 
ADC_PGA_NUM 

Definition at line 66 of file amu_types.h.

◆ amu_adc_power_mode_t

Enumerator
AMU_ADC_POWER_MODE_LOW 
AMU_ADC_POWER_MODE_MID 
AMU_ADC_POWER_MODE_HIGH 
AMU_ADC_POWER_MODE_STANDBY 

Definition at line 78 of file amu_types.h.

◆ amu_ch_en_t

Enumerator
AMU_CH_EN_VOLTAGE (1 << AMU_ADC_CH_VOLTAGE) 
AMU_CH_EN_CURRENT (1 << AMU_ADC_CH_CURRENT) 
AMU_CH_EN_TSENSOR0 (1 << AMU_ADC_CH_TSENSOR0) 
AMU_CH_EN_TSENSOR1 (1 << AMU_ADC_CH_TSENSOR1) 
AMU_CH_EN_TSENSOR2 (1 << AMU_ADC_CH_TSENSOR2) 
AMU_CH_EN_TSENSORS (AMU_CH_EN_TSENSOR0 | AMU_CH_EN_TSENSOR1 | AMU_CH_EN_TSENSOR2) 
AMU_CH_EN_BIAS (1 << AMU_ADC_CH_BIAS) 
AMU_CH_EN_OFFSET (1 << AMU_ADC_CH_OFFSET) 
AMU_CH_EN_TEMP (1 << AMU_ADC_CH_TEMP) 
AMU_CH_EN_AVDD (1 << AMU_ADC_CH_AVDD) 
AMU_CH_EN_IOVDD (1 << AMU_ADC_CH_IOVDD) 
AMU_CH_EN_ALDO (1 << AMU_ADC_CH_ALDO) 
AMU_CH_EN_DLDO (1 << AMU_ADC_CH_DLDO) 
AMU_CH_EN_INTERNAL_VOLTAGES (AMU_CH_EN_AVDD | AMU_CH_EN_IOVDD | AMU_CH_EN_ALDO | AMU_CH_EN_DLDO) 
AMU_CH_EN_SS_TL (1 << AMU_ADC_CH_SS_TL) 
AMU_CH_EN_SS_BL (1 << AMU_ADC_CH_SS_BL) 
AMU_CH_EN_SS_BR (1 << AMU_ADC_CH_SS_BR) 
AMU_CH_EN_SS_TR (1 << AMU_ADC_CH_SS_TR) 
AMU_CH_EN_SUNSENSOR (AMU_CH_EN_SS_TL | AMU_CH_EN_SS_BL | AMU_CH_EN_SS_BR | AMU_CH_EN_SS_TR) 
AMU_CH_EN_ALL (0xFFFF) 

Definition at line 87 of file amu_types.h.

◆ amu_hardware_revision_t

Enumerator
AMU_HARDWARE_REVISION_ISC2 0x01 
AMU_HARDWARE_REVISION_AMU_1_0 0x10 
AMU_HARDWARE_REVISION_AMU_1_1 0x11 
AMU_HARDWARE_REVISION_AMU_2_0 0x20 
AMU_HARDWARE_REVISION_AMU_2_1 0x21 
AMU_HARDWARE_REVISION_AMU_3_0 0x30 
AMU_HARDWARE_REVISION_AMU_3_2 0x32 
AMU_HARDWARE_REVISION_AMU_3_3 0x33 
AMU_HARDWARE_REVISION_AMU_SP_DEV 0x80 
AMU_HARDWARE_REVISION_AMU_SP 0x81 

Definition at line 112 of file amu_types.h.

◆ amu_led_pattern_t

Enumerator
AMU_LED_PATTERN_OFF 
AMU_LED_PATTERN_WHITE_FLASH 
AMU_LED_PATTERN_QUICK_RGB_FADE 
AMU_LED_PATTERN_SLOW_RGB_FADE 
AMU_LED_PATTERN_RED_FLASH 
AMU_LED_PATTERN_GREEN_FLASH 
AMU_LED_PATTERN_BLUE_FLASH 

Definition at line 132 of file amu_types.h.

◆ amu_sleep_mode_t

Enumerator
AMU_SLEEP_MODE_DEEP 
AMU_SLEEP_MODE_STANDBY 
AMU_SLEEP_MODE_IDLE 
AMU_SLEEP_MODE_OFF 

Definition at line 149 of file amu_types.h.

◆ amu_status_t

Enumerator
AMU_STATUS_SLEEP 0x01 
AMU_STATUS_MEASURE 0x02 
AMU_STATUS_HEATER 0x04 
AMU_STATUS_MPPT 0x08 

Definition at line 142 of file amu_types.h.

◆ amu_tsensor_type_t

Enumerator
AMU_TSENSOR_TYPE_PT1000_RTD 
AMU_TSENSOR_TYPE_PT100_RTD 
AMU_TSENSOR_TYPE_AD590 

Definition at line 126 of file amu_types.h.