Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board

LTC6803-1 Multicell Battery Monitor. More...

Detailed Description

LTC6803-1 Multicell Battery Monitor.

http://www.linear.com/product/LTC6803-1

http://www.linear.com/product/LTC6803-1#demoboards

Copyright 2018(c) Analog Devices, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
  • Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright 2015 Linear Technology Corp. (LTC)

Library Header File for LTC6803-1 Multicell Battery Monitor

Definition in file LTC68031.h.

Go to the source code of this file.

Functions

void LTC6803_initialize ()
 Initializes the SPI port. More...
 
void LTC6803_stcvad ()
 Function to start Cell Voltage measurement. More...
 
void LTC6803_sttmpad ()
 Function to start Temp channel voltage measurement. More...
 
uint8_t LTC6803_rdcv (uint8_t total_ic, uint16_t cell_codes[][12])
 Function that reads Cell Voltage registers. More...
 
int8_t LTC6803_rdtmp (uint8_t total_ic, uint16_t temp_codes[][3])
 Function that reads Temp Voltage registers. More...
 
void LTC6803_wrcfg (uint8_t total_ic, uint8_t config[][6])
 Function that writes configuration of LTC6803-1/-3. More...
 
int8_t LTC6803_rdcfg (uint8_t total_ic, uint8_t r_config[][7])
 Function that reads configuration of LTC6803-1/-3. More...
 
uint8_t pec8_calc (uint8_t len, uint8_t *data)
 Function that calculates PEC byte. More...
 
void spi_write_array (uint8_t length, uint8_t *data)
 Writes an array of bytes out of the SPI port. More...
 
void spi_write_read (uint8_t *TxData, uint8_t TXlen, uint8_t *rx_data, uint8_t RXlen)
 Writes and read a set number of bytes using the SPI port. More...
 

Macros

#define LTC6803_CS   QUIKEVAL_CS
 
#define PEC_POLY   7
 

Function Documentation

◆ LTC6803_initialize()

void LTC6803_initialize ( )

Initializes the SPI port.

Returns
void

Definition at line 79 of file LTC68031.cpp.

◆ LTC6803_rdcfg()

int8_t LTC6803_rdcfg ( uint8_t  total_ic,
uint8_t  r_config[][7] 
)

Function that reads configuration of LTC6803-1/-3.

Returns
This function will return a 0 if there is no PEC error and will return -1 if there is a PEC error

Function that reads configuration of LTC6803-1/-3.

Parameters
total_ictotal_ic number of LTC6803 ICs in stack
r_configThe Function will put the read config register data into this array

Definition at line 126 of file LTC68031.cpp.

◆ LTC6803_rdcv()

uint8_t LTC6803_rdcv ( uint8_t  total_ic,
uint16_t  cell_codes[][12] 
)

Function that reads Cell Voltage registers.

Returns
This function will return a 0 if there is no PEC error and will return -1 if there is a PEC error
Parameters
total_ictotal_ic number of LTC6803 ICs in stack
cell_codesThe Function will put the parsed measured cell voltages into this array

Definition at line 246 of file LTC68031.cpp.

◆ LTC6803_rdtmp()

int8_t LTC6803_rdtmp ( uint8_t  total_ic,
uint16_t  temp_codes[][3] 
)

Function that reads Temp Voltage registers.

Returns
This function will return a 0 if there is no PEC error and will return -1 if there is a PEC error
Parameters
total_ictotal_ic number of LTC6803 ICs in stack
temp_codesThe Function will put the parsed measured Temp voltages into this array

Definition at line 195 of file LTC68031.cpp.

◆ LTC6803_stcvad()

void LTC6803_stcvad ( )

Function to start Cell Voltage measurement.

Returns
void

Function to start Cell Voltage measurement.

Definition at line 174 of file LTC68031.cpp.

◆ LTC6803_sttmpad()

void LTC6803_sttmpad ( )

Function to start Temp channel voltage measurement.

Returns
void

Function to start Temp channel voltage measurement.

Definition at line 184 of file LTC68031.cpp.

◆ LTC6803_wrcfg()

void LTC6803_wrcfg ( uint8_t  total_ic,
uint8_t  config[][6] 
)

Function that writes configuration of LTC6803-1/-3.

Returns
void
Parameters
total_ictotal_ic number of LTC6803 ICs in stack
configThe function will write the 6803 CFGR register with data in the config array

Definition at line 90 of file LTC68031.cpp.

◆ pec8_calc()

uint8_t pec8_calc ( uint8_t  len,
uint8_t *  data 
)

Function that calculates PEC byte.

Returns
The calculated CRC8
Parameters
lenthe length of the data array
datadata array

Definition at line 305 of file LTC68031.cpp.

◆ spi_write_array()

void spi_write_array ( uint8_t  length,
uint8_t *  data 
)

Writes an array of bytes out of the SPI port.

Returns
void
Parameters
lengthlength of the data array being written on the SPI port
datathe data array to be written on the SPI port

◆ spi_write_read()

void spi_write_read ( uint8_t *  TxData,
uint8_t  TXlen,
uint8_t *  rx_data,
uint8_t  RXlen 
)

Writes and read a set number of bytes using the SPI port.

Returns
void
Parameters
TxDataarray of data to be written on the SPI port
TXlenlength of the tx_data array
rx_dataarray that read data will be written too.
RXlennumber of bytes to be read from the SPI port.

Macro Definition Documentation

◆ LTC6803_CS

#define LTC6803_CS   QUIKEVAL_CS

Definition at line 55 of file LTC68031.h.

◆ PEC_POLY

#define PEC_POLY   7

Definition at line 58 of file LTC68031.h.