foxBMS  1.0.1
The foxBMS Battery Management System API Documentation
adc.h File Reference

Headers for the driver for the ADC module. More...

#include "general.h"
#include "battery_system_cfg.h"
#include "io.h"
#include "spi.h"
Include dependency graph for adc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ADC_HET1_GIO   (hetREG1)
 
#define ADC_HET1_RESET_PIN   (28U)
 
#define ADC_VREF_1   (2.5f)
 
#define ADC_VREF_2   (4.096f)
 
#define ADC_GAIN   (1.0f)
 
#define SINGLE_MESSAGE_LENGTH   (2U)
 
#define CONVERT_LENGTH   (10U)
 
#define ADC_NUMBER_OF_CHANNELS   (4U)
 

Enumerations

enum  ADC_STATE_e {
  ADC_INIT, ADC_ENDINIT, ADC_READY, ADC_UNLOCK,
  ADC_UNLOCKED, ADC_WRITE_ADC_ENA, ADC_READ_ADC_ENA, ADC_CHECK_ADC_ENA,
  ADC_WAKEUP, ADC_LOCK, ADC_CONVERT_1, ADC_CONVERT_2
}
 

Functions

void ADC_Initialize (void)
 initializes the ADC devices. It is called during startup. More...
 
void ADC_Control (void)
 determines which ADC is measured and stores result in database. More...
 

Detailed Description

Headers for the driver for the ADC module.

SPDX-License-Identifier: BSD-3-Clause

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

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. 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.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 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.

We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:

  • ″This product uses parts of foxBMS®″
  • ″This product includes parts of foxBMS®″
  • ″This product is derived from foxBMS®″
Author
foxBMS Team
Date
2019-01-07 (date of creation)
Updated
2021-03-24 (date of last update)
Prefix
ADC

Definition in file adc.h.

Macro Definition Documentation

◆ ADC_GAIN

#define ADC_GAIN   (1.0f)

ADC digital gain, set in registers 0x11 to 0x14

Definition at line 77 of file adc.h.

◆ ADC_HET1_GIO

#define ADC_HET1_GIO   (hetREG1)

HET1 GIO register that the ADC is connected to.

Definition at line 68 of file adc.h.

◆ ADC_HET1_RESET_PIN

#define ADC_HET1_RESET_PIN   (28U)

Pin of HET1 that the ADC Reset is connected to.

Definition at line 70 of file adc.h.

◆ ADC_NUMBER_OF_CHANNELS

#define ADC_NUMBER_OF_CHANNELS   (4U)

Number of channels measured by the ADC. ADS131A04 has four channels.

Definition at line 87 of file adc.h.

◆ ADC_VREF_1

#define ADC_VREF_1   (2.5f)

Voltage reference used by ADC0

Definition at line 73 of file adc.h.

◆ ADC_VREF_2

#define ADC_VREF_2   (4.096f)

Voltage reference used by ADC1

Definition at line 75 of file adc.h.

◆ CONVERT_LENGTH

#define CONVERT_LENGTH   (10U)

Size of SPI messages used to retrieve conversion results of the ADC

Definition at line 85 of file adc.h.

◆ SINGLE_MESSAGE_LENGTH

#define SINGLE_MESSAGE_LENGTH   (2U)

Size of SPI messages used to send commands to the ADC Example of commands: NULL, read or write register, lock, unlock...

Definition at line 83 of file adc.h.

Enumeration Type Documentation

◆ ADC_STATE_e

State for the ADC conversion

Enumerator
ADC_INIT 
ADC_ENDINIT 
ADC_READY 
ADC_UNLOCK 
ADC_UNLOCKED 
ADC_WRITE_ADC_ENA 
ADC_READ_ADC_ENA 
ADC_CHECK_ADC_ENA 
ADC_WAKEUP 
ADC_LOCK 
ADC_CONVERT_1 
ADC_CONVERT_2 

Definition at line 92 of file adc.h.

Function Documentation

◆ ADC_Control()

void ADC_Control ( void  )

determines which ADC is measured and stores result in database.

It alternates between measurement on ADC1 and ADC2. Measurement read by SPI.

Definition at line 211 of file adc.c.

Here is the call graph for this function:

◆ ADC_Initialize()

void ADC_Initialize ( void  )

initializes the ADC devices. It is called during startup.

Definition at line 194 of file adc.c.

Here is the call graph for this function: