DC2100A  1.2.0
Bi-Directional Cell Balancer Using the LTC3300-1 and the LTC6804-2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
LTC6804-2_Registers.h File Reference

Driver Registers for LTC6804-2 Multicell Battery Monitors. More...

Go to the source code of this file.

Detailed Description

Driver Registers for LTC6804-2 Multicell Battery Monitors.

Definition in file LTC6804-2_Registers.h.

Macros

#define LTC6804_COMMAND_CODE_BROADCAST_ADDRESS   0x00
 
#define LTC6804_COMMAND_CODE_ADDRESSED_BIT   0x10
 
#define LTC6804_COMMAND_CODE_ADDRESS_MASK   0x0F
 
#define LTC6804_COMMAND_CODE_ADDRESS(command_code, address)   ((command_code & 0x7FF) | ((int16)(address & 0x1F) << 11))
 
#define LTC6804_COMMAND_CODE_BASE_WRCFG   0x001
 
#define LTC6804_COMMAND_CODE_BASE_RDCFG   0x002
 
#define LTC6804_COMMAND_CODE_BASE_RDCVA   0x004
 
#define LTC6804_COMMAND_CODE_BASE_RDCVB   0x006
 
#define LTC6804_COMMAND_CODE_BASE_RDCVC   0x008
 
#define LTC6804_COMMAND_CODE_BASE_RDCVD   0x00A
 
#define LTC6804_COMMAND_CODE_BASE_RDAUXA   0x00C
 
#define LTC6804_COMMAND_CODE_BASE_RDAUXB   0x00E
 
#define LTC6804_COMMAND_CODE_BASE_RDSTATA   0x010
 
#define LTC6804_COMMAND_CODE_BASE_RDSTATB   0x012
 
#define LTC6804_COMMAND_CODE_BASE_ADCV   0x260
 
#define LTC6804_COMMAND_CODE_BASE_ADOW   0x228
 
#define LTC6804_COMMAND_CODE_BASE_CVST   0x207
 
#define LTC6804_COMMAND_CODE_BASE_ADAX   0x460
 
#define LTC6804_COMMAND_CODE_BASE_AXST   0x407
 
#define LTC6804_COMMAND_CODE_BASE_ADSTAT   0x468
 
#define LTC6804_COMMAND_CODE_BASE_STATST   0x40F
 
#define LTC6804_COMMAND_CODE_BASE_ADCVAX   0x46F
 
#define LTC6804_COMMAND_CODE_BASE_CLRCELL   0x711
 
#define LTC6804_COMMAND_CODE_BASE_CLRAUX   0x712
 
#define LTC6804_COMMAND_CODE_BASE_CLRSTAT   0x713
 
#define LTC6804_COMMAND_CODE_BASE_PLADC   0x714
 
#define LTC6804_COMMAND_CODE_BASE_DIAGN   0x715
 
#define LTC6804_COMMAND_CODE_BASE_WRCOMM   0x721
 
#define LTC6804_COMMAND_CODE_BASE_RDCOMM   0x722
 
#define LTC6804_COMMAND_CODE_BASE_STCOMM   0x723
 
#define LTC6804_COMMAND_CODE_WRCFG(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_WRCFG, address))
 
#define LTC6804_COMMAND_CODE_RDCFG(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCFG, address))
 
#define LTC6804_COMMAND_CODE_RDCVA(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCVA, address))
 
#define LTC6804_COMMAND_CODE_RDCVB(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCVB, address))
 
#define LTC6804_COMMAND_CODE_RDCVC(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCVC, address))
 
#define LTC6804_COMMAND_CODE_RDCVD(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCVD, address))
 
#define LTC6804_COMMAND_CODE_RDAUXA(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDAUXA, address))
 
#define LTC6804_COMMAND_CODE_RDAUXB(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDAUXB, address))
 
#define LTC6804_COMMAND_CODE_RDSTATA(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDSTATA, address))
 
#define LTC6804_COMMAND_CODE_RDSTATB(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDSTATB, address))
 
#define LTC6804_COMMAND_CODE_ADCV(address, md, dcp, ch)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_ADCV, address) + ((int16)(md & 0x3) << 7) + ((dcp & 0x1) << 4) + ((ch & 0x7) << 0))
 
#define LTC6804_COMMAND_CODE_ADOW(address, md, pup, dcp, ch)
 
#define LTC6804_COMMAND_CODE_CVST(address, md, st)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_CVST, address) + ((int16)(md & 0x3) << 7) + ((st & 0x3) << 5))
 
#define LTC6804_COMMAND_CODE_ADAX(address, md, chg)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_ADAX, address) + ((int16)(md & 0x3) << 7) + ((chg & 0x7) << 0))
 
#define LTC6804_COMMAND_CODE_AXST(address, md, st)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_AXST, address) + ((int16)(md & 0x3) << 7) + ((st & 0x3) << 5))
 
#define LTC6804_COMMAND_CODE_ADSTAT(address, md, chst)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_ADSTAT, address) + ((int16)(md & 0x3) << 7) + ((chst & 0x7) << 0))
 
#define LTC6804_COMMAND_CODE_STATST(address, md, st)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_STATST, address) + ((int16)(md & 0x3) << 7) + ((st & 0x3) << 5))
 
#define LTC6804_COMMAND_CODE_ADCVAX(address, md, dcp)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_ADCVAX, address) + ((int16)(md & 0x3) << 7) + ((dcp & 0x1) << 4))
 
#define LTC6804_COMMAND_CODE_CLRCELL(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_CLRCELL, address))
 
#define LTC6804_COMMAND_CODE_CLRAUX(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_CLRAUX, address))
 
#define LTC6804_COMMAND_CODE_CLRSTAT(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_CLRSTAT, address))
 
#define LTC6804_COMMAND_CODE_PLADC(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_PLADC, address))
 
#define LTC6804_COMMAND_CODE_DIAGN(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_DIAGN, address))
 
#define LTC6804_COMMAND_CODE_WRCOMM(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_WRCOMM, address))
 
#define LTC6804_COMMAND_CODE_RDCOMM(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_RDCOMM, address))
 
#define LTC6804_COMMAND_CODE_STCOMM(address)   (LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_STCOMM, address))
 
#define LTC6804_CFGR0_ADCOPT(adcopt)   (adcopt << 0)
 
#define LTC6804_CFGR0_ADCOPT_MASK   LTC6804_CFGR0_ADCOPT(1)
 
#define LTC6804_CFGR0_SWTRD_MASK   0x02
 
#define LTC6804_CFGR0_REFON(ref_on)   ((ref_on ? 1 : 0) << 2)
 
#define LTC6804_CFGR0_REFON_MASK   LTC6804_CFGR0_REFON(1)
 
#define LTC6804_CFGR0_GPIOx(gpiox)   ((gpiox & 0x1F) << 3)
 
#define LTC6804_CFGR0_GPIOx_MASK   LTC6804_CFGR0_GPIOx(0x1F)
 
#define LTC6804_CFGR1_VUV(vuv)   ((vuv & 0xFFF) << 0)
 
#define LTC6804_CFGR1_VUV_MASK   LTC6804_CFGR1_VUV(0xFFF)
 
#define LTC6804_CFGR2_VOV(vov)   ((vov & 0xFFF) << 4)
 
#define LTC6804_CFGR2_VOV_MASK   LTC6804_CFGR2_VOV(0xFFF)
 
#define LTC6804_CFGR4_DCCx(dccx)   ((dccx & 0xFFF) << 0)
 
#define LTC6804_CFGR4_DCCx_MASK   LTC6804_CFGR4_DCCx(0xFFF)
 
#define LTC6804_CFGR5_DCTO(dcto)   ((dcto & 0xF) << 4)
 
#define LTC6804_CFGR5_DCTO_MASK   LTC6804_CFGR5_DCTO(0xF)
 
#define LTC6804_ADCOPT_0   0x0
 
#define LTC6804_ADCOPT_1   0x1
 
#define LTC6804_MD_MODE_FAST   0x1
 
#define LTC6804_MD_MODE_NORMAL   0x2
 
#define LTC6804_MD_MODE_FILTERED   0x3
 
#define LTC6804_DCP_DISCHARGE_NOT_PERMITTED   0
 
#define LTC6804_DCP_DISCHARGE_PERMITTED   1
 
#define LTC6804_ICOM_I2C_WRITE_START   0x6
 
#define LTC6804_ICOM_I2C_WRITE_STOP   0x1
 
#define LTC6804_ICOM_I2C_WRITE_BLANK   0x0
 
#define LTC6804_ICOM_I2C_WRITE_NO_TRANSMIT   0x7
 
#define LTC6804_ICOM_I2C_READ_START   0x6
 
#define LTC6804_ICOM_I2C_READ_STOP   0x1
 
#define LTC6804_ICOM_I2C_READ_SDA_LOW   0x0
 
#define LTC6804_ICOM_I2C_READ_SDA_HIGH   0x7
 
#define LTC6804_FCOM_WRITE_I2C_ACK   0x0
 
#define LTC6804_FCOM_WRITE_I2C_NACK   0x8
 
#define LTC6804_FCOM_WRITE_I2C_NACK_STOP   0x9
 
#define LTC6804_FCOM_READ_I2C_ACK_FROM_MASTER   0x0
 
#define LTC6804_FCOM_READ_I2C_ACK_FROM_SLAVE   0x7
 
#define LTC6804_FCOM_READ_I2C_NACK_FROM_SLAVE   0xF
 
#define LTC6804_FCOM_READ_I2C_ACK_FROM_SLAVE_STOP_FROM_MASTER   0x1
 
#define LTC6804_FCOM_READ_I2C_NACK_FROM_SLAVE_STOP_FROM_MASTER   0x9
 
#define LTC6804_ICOM_SPI_WRITE_CSB_LOW   0x8
 
#define LTC6804_ICOM_SPI_WRITE_CSB_HIGH   0x9
 
#define LTC6804_ICOM_SPI_WRITE_NO_TRANSMIT   0xF
 
#define LTC6804_ICOM_SPI_READ   0x7
 
#define LTC6804_FCOM_SPI_WRITE_CSB_LOW   0x8
 
#define LTC6804_FCOM_SPI_WRITE_CSB_HIGH   0x9
 
#define LTC6804_FCOM_SPI_READ   0xF
 
#define LTC6804_COMM_READ_DUMMY   0xFF
 

Macro Definition Documentation

#define LTC6804_COMMAND_CODE_ADOW (   address,
  md,
  pup,
  dcp,
  ch 
)
Value:
) \
(LTC6804_COMMAND_CODE_ADDRESS(LTC6804_COMMAND_CODE_BASE_ADOW, address) + ((int16)(md & 0x3) << 7) + ((pup & 0x1) << 4) + ((dcp & 0x1) << 4) + ((ch & 0x7) << 0))

Definition at line 142 of file LTC6804-2_Registers.h.