source: trunk/firmware/Inc/ads1260.h @ 6

Last change on this file since 6 was 6, checked in by f.jahn, 3 months ago
File size: 3.9 KB
Line 
1/******************************************************************************
2*
3* @file    ads1260.h
4* @author  ECS, Joseph Zimmer
5* @version V1.0.0
6* @date    25-04-2019
7* @brief       
8*
9******************************************************************************/
10#ifndef _ADS_1260_H
11#define _ADS_1260_H
12
13//--- INCLUDEs -----------------------------------------------------------------
14#include "main.h"
15#include "sysdata.h"
16//--- GLOBALE TYPE DEFS --------------------------------------------------------       
17typedef enum 
18{
19 ADC_STATE_INITIALIZE                 = 0, 
20 ADC_STATE_CONVERSION_STOPPED         = 1,
21 ADC_STATE_CONVERSION_RUNNING         = 2,
22 ADC_STATE_READY_FOR_CONVERSION       = 3,
23 ADC_STATE_SELF_OFFSET_CALIBRATION    = 4,
24 ADC_STATE_SYSTEM_OFFSET_CALIBRATION  = 5,
25 ADC_STATE_GAIN_CALIBRATION           = 6,
26 ADC_STATE_ERROR                      = 7
27}adc_state_enum_t;
28
29typedef union
30{
31  uint32_t   w;
32   int32_t  sw;
33  uint16_t  hw[2];
34   int16_t shw[2];
35   uint8_t   s[4];
36    int8_t  ss[4];
37}convert_union_t;
38//--- GLOBALE DEFINES ----------------------------------------------------------
39
40//--- GLOBALE VARIABLEN PROTOTYPEN ---------------------------------------------
41extern volatile uint32_t newCurrentValue;
42
43//--- GLOBALE FUNKTIONS PROTOTYPEN ---------------------------------------------
44
45/*
46* @brief       
47* @param        kein
48* @retval       kein
49*/
50void ADS1260_init(void);
51
52/*
53* @brief       
54* @param        kein
55* @retval       kein
56*/
57void ADS1260_StartConversion(void);
58
59
60/*
61* @brief       
62* @param        kein
63* @retval       kein
64*/
65void ADS1260_ReadConversion(void);
66
67/*
68* @brief        set conversion state
69* @param        kein
70* @retval       kein
71*/
72void ADS1260_ConversionFinished(void);
73
74
75
76/*****************************************Softwarekalibrierung*************************************************/
77
78
79/*
80* @brief Gain Calibration
81*       
82* Diese Funktion dient zum kalibrieren der Verstärkung.
83* Funktion sollte nach Offset Korrektur und Offset Commonmode Korrektur ausgeführt werden
84* Für die Kalibrierung muss der Sensor in kalten Zustand gehalten werden, also zunächst Bypass zuschalten, Strom einstellen, warten bis Lasten stabil, dann bypass abschalten und unverzüglich kalibrierung starten
85* @param        kein
86* @retval       kein
87*/
88void ADS_1260_BatteryCurrentGainCalibrationStart(sys_data_t * data);
89
90
91/*
92* @brief Offset kalibrieren.
93*       
94* Nennspannung an Shunt 12V
95* Messstrom abschalten, warten bis Sensor kalt und Mittelwertbildung stabil. Dann Starten
96* @param        kein
97* @retval       kein
98*/
99void ADS_1260_BatteryCurrentOffsetCalibrationStart(sys_data_t * data);
100
101
102/*
103* @brief Common Mode Error korrektur
104*       
105* Diese Funktion eliminiert den Common-Mode error.
106* Die Spannung am Messwiderstand (also Batteriesspannung, wenn der Shunt in der positiven Leitung eingesetzt wird) ruft einen sogenannten Common Mode Fehler hervor.
107* Die Busspannung wird zur Kaibrierung erhöht und damit der Fehler pro mV Busspannung berechnet
108* @param        kein
109* @retval       kein
110*/
111void ADS_1260_BatteryCurrentOffsetCommonModeErrorComepensationStart(sys_data_t * data);
112
113/*
114* @brief Calibrierung der Offset Temperaturdrift
115*   
116* Offset Kalibrierung und Commonmode Calibrierung muss bereits ausgeführt sein.     
117* Diese Funktion bei erhöter Temperatur. Zum Beispiel 80°C ausführen
118* Es darf kein Strom fließen.
119* Berechnet Offset Drift mit Temperatur und speichert ein Kompensationswert
120* @param        kein
121* @retval       kein
122*/
123void ADS_1260_BatteryCurrentOffsetTemperatureErrorComepensationStart(void);
124
125void ADS_1260_BatteryCurrentGainTemperatureCalibrationShuntStart(void);
126/*
127* @brief         
128* @param        kein
129* @retval       kein
130*/
131void ADS_1260_SetDigitalFilter(SPI_HandleTypeDef * hspi, uint8_t digitalFilter);
132/*
133* @brief         
134* @param        kein
135* @retval       kein
136*/
137void ADS_1260_SetDataRate(SPI_HandleTypeDef * hspi, uint8_t dataRate);
138
139#endif // !_ADS_1260_H
Note: See TracBrowser for help on using the repository browser.