Mercurial > public > ostc4
annotate Small_CPU/Inc/externalInterface.h @ 985:aeafa631147d BootloaderOstc5
Exchange shared files with Bootloader specific mini version
| author | Ideenmodellierer |
|---|---|
| date | Sun, 30 Mar 2025 21:32:37 +0200 |
| parents | f72613a152dd |
| children | d9290c76b840 |
| rev | line source |
|---|---|
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
1 /** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
2 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
3 * @file externalInterface.h |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
4 * @author heinrichs weikamp gmbh |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
5 * @version V0.0.1 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
6 * @date 07-Nov-2020 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
7 * @brief Interface functionality to proceed external analog signal via i2c connection |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
8 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
9 @verbatim |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
10 ============================================================================== |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
11 ##### How to use ##### |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
12 ============================================================================== |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
13 @endverbatim |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
14 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
15 * @attention |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
16 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
17 * <h2><center>© COPYRIGHT(c) 2014 heinrichs weikamp</center></h2> |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
18 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
19 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
20 */ |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
21 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
22 /* Define to prevent recursive inclusion -------------------------------------*/ |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
23 #ifndef EXTERNAL_INTERFACE_H |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
24 #define EXTERNAL_INTERFACE_H |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
25 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
26 #ifdef __cplusplus |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
27 extern "C" { |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
28 #endif |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
29 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
30 /* Includes ------------------------------------------------------------------*/ |
| 742 | 31 #include "configuration.h" |
| 794 | 32 #include "data_central.h" |
| 33 #include "data_exchange.h" | |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
34 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
35 #define MAX_ADC_CHANNEL (3u) /* number of channels to be read */ |
| 781 | 36 #define MAX_MUX_CHANNEL (4u) /* number of channels provided by the UART multiplexer */ |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
37 #define EXTERNAL_ADC_NO_DATA 0xFF |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
38 |
| 662 | 39 #define EXT33V_CONTROL_PIN GPIO_PIN_7 /* PortC */ |
| 40 | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
41 #define MIN_ADC_VOLTAGE_MV (5.0f) /* miminal voltage to rate an ADC channel as active */ |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
42 |
| 794 | 43 #define COMMON_SENSOR_STATE_INIT (0x0u) /* All individual state definitions shall start with a INIT state = 0 */ |
|
798
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
44 #define COMMON_SENSOR_STATE_INVALID (0xFFu) /* All individual state definitions shall not use 0xFF for operation control */ |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
45 |
| 839 | 46 |
| 47 enum /* Definitions for supported UART protocols */ | |
| 48 { | |
| 49 EXT_INTERFACE_UART_OFF = 0, | |
| 50 EXT_INTERFACE_UART_CO2, | |
| 51 EXT_INTERFACE_UART_SENTINEL, | |
|
918
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
52 EXT_INTERFACE_UART_O2, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
53 EXT_INTERFACE_UART_GNSS |
| 839 | 54 }; |
| 55 | |
| 56 | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
57 typedef enum |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
58 { |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
59 DETECTION_OFF = 0, /* no detection requested */ |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
60 DETECTION_INIT, /* prepare external interface for operation if not already activated */ |
| 731 | 61 DETECTION_START, |
| 62 DETECTION_ANALOG1, /* check ADC channels for connected sensors */ | |
| 63 DETECTION_ANALOG2, | |
|
779
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
64 DETECTION_UARTMUX, /* check if a uart multiplexer is present */ |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
65 DETECTION_DIGO2_0, /* check UART channel for connected DigO2 sensor */ |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
66 DETECTION_DIGO2_1, |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
67 DETECTION_DIGO2_2, |
| 781 | 68 DETECTION_DIGO2_3, |
| 742 | 69 #ifdef ENABLE_CO2_SUPPORT |
|
798
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
70 DETECTION_CO2_0, /* check UART channel for connected CO2 sensor */ |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
71 DETECTION_CO2_1, |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
72 DETECTION_CO2_2, |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
73 DETECTION_CO2_3, |
| 742 | 74 #endif |
|
918
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
75 #ifdef ENABLE_GNSS_SUPPORT |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
76 DETECTION_GNSS_0, /* check UART channel for connected gnss sensor */ |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
77 DETECTION_GNSS_1, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
78 DETECTION_GNSS_2, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
79 DETECTION_GNSS_3, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
80 #endif |
| 742 | 81 #ifdef ENABLE_SENTINEL_MODE |
| 82 DETECTION_SENTINEL, /* check UART channel for connected Sentinel */ | |
| 83 DETECTION_SENTINEL2, | |
| 84 #endif | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
85 DETECTION_DONE |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
86 } externalInterfaceAutoDetect_t; |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
87 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
88 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
89 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
90 |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
91 void externalInterface_Init(void); |
| 662 | 92 void externalInterface_InitPower33(void); |
|
738
30717de00f3a
Added data init function for external interface:
Ideenmodellierer
parents:
731
diff
changeset
|
93 void externalInterface_InitDatastruct(void); |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
94 uint8_t externalInterface_StartConversion(uint8_t channel); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
95 uint8_t externalInterface_ReadAndSwitch(); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
96 float externalInterface_CalculateADCValue(uint8_t channel); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
97 float getExternalInterfaceChannel(uint8_t channel); |
| 691 | 98 uint8_t setExternalInterfaceChannel(uint8_t channel, float value); |
| 662 | 99 void externalInterface_SwitchPower33(uint8_t state); |
| 691 | 100 void externalInterface_SwitchADC(uint8_t state); |
|
704
f1b40364b0af
Added protocol functions for UART DiveO2 sensor:
Ideenmodellierer
parents:
691
diff
changeset
|
101 void externalInterface_SwitchUART(uint8_t protocol); |
| 691 | 102 uint8_t externalInterface_isEnabledPower33(void); |
| 103 uint8_t externalInterface_isEnabledADC(void); | |
| 794 | 104 uint8_t externalInterface_GetUARTProtocol(void); |
| 105 void externalInterface_HandleUART(void); | |
| 106 void externalInterface_SetCO2Scale(float CO2Scale); | |
| 107 float externalInterface_GetCO2Scale(void); | |
| 662 | 108 void externalInterface_SetCO2Value(uint16_t CO2_ppm); |
| 109 void externalInterface_SetCO2SignalStrength(uint16_t LED_qa); | |
| 110 uint16_t externalInterface_GetCO2Value(void); | |
| 111 uint16_t externalInterface_GetCO2SignalStrength(void); | |
| 112 void externalInterface_SetCO2State(uint16_t state); | |
| 113 uint16_t externalInterface_GetCO2State(void); | |
|
779
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
114 uint8_t externalInterface_GetSensorData(uint8_t sensorId, uint8_t* pDataStruct); |
| 786 | 115 void externalInterface_SetSensorData(uint8_t sensorId, uint8_t* pDataStruct); |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
116 void externalInface_SetSensorMap(uint8_t* pMap); |
| 731 | 117 uint8_t* externalInterface_GetSensorMapPointer(uint8_t finalMap); |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
118 void externalInterface_AutodetectSensor(void); |
| 662 | 119 void externalInterface_ExecuteCmd(uint16_t Cmd); |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
120 |
| 794 | 121 uint8_t externalInterface_GetActiveUartSensor(void); |
| 122 void externalInterface_SetSensorState(uint8_t sensorIdx, uint8_t state); | |
| 123 uint8_t externalInterface_GetSensorState(uint8_t sensorIdx); | |
| 124 | |
| 125 | |
| 126 | |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
127 #endif /* EXTERNAL_INTERFACE_H */ |
