Midnight Sun Firmware
Loading...
Searching...
No Matches
current_acs37800_defs.h
1#pragma once
2
3/************************************************************************************************
4 * @file current_acs37800_defs.h
5 *
6 * @brief Current Sensor ACS37800 Defs
7 *
8 * @date 2025-07-30
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13
14/* Inter-component Headers */
15
16/* Intra-component Headers */
17
25#define ACS37800_Q15_SCALE_DENOM 32768.0f
26#define ACS37800_Q16_SCALE_DENOM 65536.0f
27
28/* Pack voltage divider values from the ACS37800 input network */
29#define ACS37800_RISO_OHMS 4000000.0f
30#define ACS37800_RSENSE_OHMS 6200.0f
31#define ACS37800_LINE_TO_DEVICE_RATIO (ACS37800_RSENSE_OHMS / (ACS37800_RSENSE_OHMS + ACS37800_RISO_OHMS))
32
33/* VRMS full-scale value from the datasheet */
34#define ACS37800_DELTA_VIN_MAX 250.0f
35#define ACS37800_VOLTAGE_SCALE_MV ((ACS37800_DELTA_VIN_MAX * 1.19f) / ACS37800_Q15_SCALE_DENOM)
36
37/* Note in Amps */
38#define ACS37800_IPR_MAX_A 90.0f
39#define ACS37800_CURRENT_SCALE ((ACS37800_IPR_MAX_A * 1.19f) / ACS37800_Q15_SCALE_DENOM)
40
41#define ACS37800_MAX_POW 0.704f
42#define ACS37800_POWER_SCALE ((ACS37800_MAX_POW * 1.42f) / ACS37800_Q15_SCALE_DENOM)
43
44#define ACS37800_MASK_FAULTOUT 0x02 /* Bit 1 */
45#define ACS37800_MASK_OVERVOLTAGE 0x08 /* Bit 3 */
46#define ACS37800_MASK_UNDERVOLTAGE 0x10 /* Bit 4 */
47#define ACS37800_MASK_BYPASS_N_EN (1UL << 24)
48
55typedef enum {
69
ACS37800_Registers
Voltatile Memory register addresses.
Definition: current_acs37800_defs.h:55
@ ACS37800_REG_VI_RMSAVGONESEC
Definition: current_acs37800_defs.h:63
@ ACS37800_REG_STATUS
Definition: current_acs37800_defs.h:67
@ ACS37800_REG_PAPPARENT_PFACTOR
Definition: current_acs37800_defs.h:61
@ ACS37800_REG_PINSTANT
Definition: current_acs37800_defs.h:59
@ ACS37800_PACTAVGONESEC
Definition: current_acs37800_defs.h:65
@ ACS37800_REG_VI_RMSAVGONEMIN
Definition: current_acs37800_defs.h:64
@ ACS37800_REG_DIO_N_CONFIG
Definition: current_acs37800_defs.h:56
@ ACS37800_REG_PACTAVGONEMIN
Definition: current_acs37800_defs.h:66
@ ACS37800_REG_PACTIVE_PIMAGE
Definition: current_acs37800_defs.h:60
@ ACS37800_REG_NUMPTSOUT
Definition: current_acs37800_defs.h:62
@ ACS37800_REG_VRMS_IRMS
Definition: current_acs37800_defs.h:57
@ ACS37800_REG_VCODES_ICODES
Definition: current_acs37800_defs.h:58