172 lines
5.3 KiB
C
172 lines
5.3 KiB
C
|
/*
|
||
|
* ADBMS_CMD_MAKROS.h
|
||
|
*
|
||
|
* Created on: 14.07.2022
|
||
|
* Author: max
|
||
|
*/
|
||
|
|
||
|
#ifndef INC_ADBMS_CMD_MAKROS_H_
|
||
|
#define INC_ADBMS_CMD_MAKROS_H_
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#define WRCFGA 0x0001 // Write Configuration Register Group A
|
||
|
#define RDCFGA 0x0002 // Read Configuration Register Group A
|
||
|
#define WRCFGB 0x0024 // Write Configuration Register Group B
|
||
|
#define RDCFGB 0x0026 // Read Configuration Register Group B
|
||
|
|
||
|
#define WRPWMA 0x0020 // Write PWM Register Group A
|
||
|
#define RDPWMA 0x0022 // Read PWM Register Group A
|
||
|
#define WRPWMB 0x0021 // Write PWM Register Group B
|
||
|
#define RDPWMB 0x0023 // Read PWM Register Group B
|
||
|
|
||
|
#define RDCVA 0x0004 // Read Cell Voltage Register Group A
|
||
|
#define RDCVB 0x0006 // Read Cell Voltage Register Group B
|
||
|
#define RDCVC 0x0008 // Read Cell Voltage Register Group C
|
||
|
#define RDCVD 0x000A // Read Cell Voltage Register Group D
|
||
|
#define RDCVE 0x0009 // Read Cell Voltage Register Group E
|
||
|
#define RDCVF 0x000B // Read Cell Voltage Register Group F
|
||
|
#define RDCVALL 0x000C // Read All Cell Voltage Register Groups
|
||
|
|
||
|
#define RDACA 0x0044 // Read averaged Cell Voltage Register Group A
|
||
|
#define RDACB 0x0046 // Read averaged Cell Voltage Register Group B
|
||
|
#define RDACC 0x0048 // Read averaged Cell Voltage Register Group C
|
||
|
#define RDACD 0x004A // Read averaged Cell Voltage Register Group D
|
||
|
#define RDACE 0x0049 // Read averaged Cell Voltage Register Group E
|
||
|
#define RDACF 0x004B // Read averaged Cell Voltage Register Group F
|
||
|
#define RDACALL 0x004C // Read averaged All Cell Voltage Register Groups
|
||
|
|
||
|
#define RDAUXA 0x0019 // Read Auxilliary Register Group A
|
||
|
#define RDAUXB 0x001A // Read Auxilliary Register Group B
|
||
|
#define RDAUXC 0x001B // Read Auxilliary Register Group C
|
||
|
#define RDAUXD 0x001F // Read Auxilliary Register Group D
|
||
|
|
||
|
#define RDAUXALL 0x0035 // Read All Auxilliary and Status Register Groups
|
||
|
|
||
|
#define RDSTATA 0x0030 // Read Status Register Group A
|
||
|
#define RDSTATB 0x0031 // Read Status Register Group B
|
||
|
#define RDSTATC 0x0032 // Read Status Register Group C
|
||
|
#define RDSTATD 0x0033 // Read Status Register Group D
|
||
|
#define RDSTATE 0x0034 // Read Status Register Group E
|
||
|
|
||
|
#define ADCV 0x0260 // Start Cell Voltage Conversion with C-ADC
|
||
|
#define ADCV_OW_0 (1u << 0)
|
||
|
#define ADCV_OW_1 (1u << 1)
|
||
|
#define ADCV_RSTF (1u << 2)
|
||
|
#define ADCV_DCP (1u << 4)
|
||
|
#define ADCV_CONT (1u << 7) // Continuous Mode
|
||
|
#define ADCV_RD (1u << 8) // Redundancy Mode
|
||
|
|
||
|
#define ADSV 0x0168 // Start Cell Voltage Conversion with S-ADC
|
||
|
#define ADSV_OW_0 (1u << 0)
|
||
|
#define ADSV_OW_1 (1u << 1)
|
||
|
#define ADSV_DCP (1u << 4)
|
||
|
#define ADSV_CONT (1u << 7) // Continuous Mode
|
||
|
|
||
|
#define ADAX 0x0410 // Start GPIOs and Vref2 Conversion
|
||
|
#define ADAX_CONV_ALL 0x0000 // Convert all GPIOs, VREF2, VD, VA, ITEMP
|
||
|
#define ADAX_OW (1u << 8)
|
||
|
|
||
|
#define CLRCELL 0x0711 // Clear Cell Voltage Register Groups
|
||
|
#define CLRAUX 0x0712 // Clear Auxiliary Register Groups
|
||
|
#define CLOVUV 0x0715 // Clear Overvoltage and Undervoltage Flags
|
||
|
#define CLRFLAG 0x0717 // Clear all Flags
|
||
|
|
||
|
#define PLADC 0x0718 // Poll ADC Conversion Status
|
||
|
#define PLAUX 0x071E // Poll AUX Conversion Status
|
||
|
|
||
|
#define SRST 0x0027 //Soft reset
|
||
|
|
||
|
#define DIAGN 0x0715 // Diagnos MUX and Poll Status
|
||
|
#define WRCOMM 0x0721 // Write COMM Register Group
|
||
|
#define RDCOMM 0x0722 // Read COMM Register Group
|
||
|
#define STCOMM 0x0723 // Start I2C/SPI Communication
|
||
|
#define MUTE 0x0028 // Mute Discharge
|
||
|
#define UNMUTE 0x0029 // Unmute Discharge
|
||
|
|
||
|
|
||
|
|
||
|
/* GPIO Selection for ADC Converion
|
||
|
* 000: GPIO1 to 5, 2nd Reference, GPIO 6 to 9
|
||
|
* 001: GPIO1 and GPIO6
|
||
|
* 010 GPIO2 and GPIO7
|
||
|
* 011 GPIO3 and GPIO8
|
||
|
* 100 GPIO4 and GPIO9
|
||
|
* 101 GPIO5
|
||
|
* 110 2nd Reference
|
||
|
*/
|
||
|
|
||
|
#define CHG000 (0x00)
|
||
|
#define CHG001 (0x01)
|
||
|
#define CHG010 (0x02)
|
||
|
#define CHG011 (0x03)
|
||
|
#define CHG100 (0x04)
|
||
|
#define CHG101 (0x05)
|
||
|
#define CHG110 (0x06)
|
||
|
|
||
|
/* Status Group Selection
|
||
|
* 000: SC,ITMP,VA,VD
|
||
|
* 001: SC
|
||
|
* 010: ITMP
|
||
|
* 011: VA
|
||
|
* 100: VD
|
||
|
*/
|
||
|
|
||
|
#define CHST000 (0x00)
|
||
|
#define CHST001 (0x01)
|
||
|
#define CHST010 (0x02)
|
||
|
#define CHST011 (0x03)
|
||
|
#define CHST100 (0x04)
|
||
|
|
||
|
#define PEC_FIELD_SIZE 2
|
||
|
|
||
|
#define CFG_GROUP_A_SIZE 6
|
||
|
#define CFG_GROUP_B_SIZE 6
|
||
|
|
||
|
#define PWM_GROUP_A_SIZE 6
|
||
|
#define PWM_GROUP_B_SIZE 2
|
||
|
|
||
|
#define CV_GROUP_A_SIZE 6
|
||
|
#define CV_GROUP_B_SIZE 6
|
||
|
#define CV_GROUP_C_SIZE 6
|
||
|
#define CV_GROUP_D_SIZE 6
|
||
|
#define CV_GROUP_E_SIZE 6
|
||
|
#define CV_GROUP_F_SIZE 6
|
||
|
|
||
|
#define AUX_GROUP_A_SIZE 6
|
||
|
#define AUX_GROUP_B_SIZE 6
|
||
|
#define AUX_GROUP_C_SIZE 6
|
||
|
#define AUX_GROUP_D_SIZE 6
|
||
|
|
||
|
#define STATUS_GROUP_A_SIZE 6
|
||
|
#define STATUS_GROUP_B_SIZE 6
|
||
|
#define STATUS_GROUP_C_SIZE 6
|
||
|
#define STATUS_GROUP_D_SIZE 6
|
||
|
#define STATUS_GROUP_E_SIZE 6
|
||
|
#define COMM_GROUP_SIZE 6
|
||
|
#define S_CONTROL_GROUP_SIZE 6
|
||
|
#define PWM_GROUP_SIZE 6
|
||
|
#define PWM_S_CONTROL_GROUP_B_SIZE 6
|
||
|
|
||
|
#define CFG_GROUP_A_ID 1
|
||
|
#define CFG_GROUP_B_ID 2
|
||
|
#define CV_GROUP_A_ID 3
|
||
|
#define CV_GROUP_B_ID 4
|
||
|
#define CV_GROUP_C_ID 5
|
||
|
#define CV_GROUP_D_ID 6
|
||
|
#define CV_GROUP_E_ID 7
|
||
|
#define CV_GROUP_F_ID 8
|
||
|
|
||
|
#define AUX_GROUP_A_ID 9
|
||
|
#define AUX_GROUP_B_ID 10
|
||
|
#define AUX_GROUP_C_ID 11
|
||
|
#define AUX_GROUP_D_ID 12
|
||
|
|
||
|
#define STATUS_GROUP_A_ID 13
|
||
|
#define STATUS_GROUP_B_ID 14
|
||
|
#define COMM_GROUP_ID 15
|
||
|
#define S_CONTROL_GROUP_ID 16
|
||
|
#define PWM_GROUP_ID 17
|
||
|
#define PWM_S_CONTROL_GROUP_B_ID 18
|
||
|
|
||
|
#endif /* INC_ADBMS_CMD_MAKROS_H_ */
|