S32 SDK
cmp_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 - 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #ifndef CMP_DRIVER_H
20 #define CMP_DRIVER_H
21 
22 
23 #include "cmp_hal.h"
24 #include "status.h"
25 
41 typedef struct
42 {
66 
73 typedef struct
74 {
84 
91 typedef struct
92 {
95  uint8_t voltage;
96  bool state;
97 }cmp_dac_t;
98 
105 typedef struct
106 {
112  uint8_t samples;
120 
127 typedef struct
128 {
133 }cmp_module_t;
134 
135 
136 /*******************************************************************************
137  * API
138  ******************************************************************************/
144 #if defined(__cplusplus)
145 extern "C" {
146 #endif
147 
158 status_t CMP_DRV_Reset(const uint32_t instance);
159 
172 
185 status_t CMP_DRV_Init(const uint32_t instance, const cmp_module_t* const config);
186 
198 status_t CMP_DRV_GetConfigAll(const uint32_t instance, cmp_module_t* const config);
199 
211 
223 status_t CMP_DRV_ConfigDAC(const uint32_t instance, const cmp_dac_t* config);
224 
236 status_t CMP_DRV_GetDACConfig(const uint32_t instance, cmp_dac_t* const config);
237 
249 
261 status_t CMP_DRV_ConfigMUX(const uint32_t instance, const cmp_anmux_t* config);
262 
274 status_t CMP_DRV_GetMUXConfig(const uint32_t instance, cmp_anmux_t* const config);
275 
287 
299 status_t CMP_DRV_ConfigTriggerMode(const uint32_t instance, const cmp_trigger_mode_t* config);
300 
312 status_t CMP_DRV_GetTriggerModeConfig(const uint32_t instance, cmp_trigger_mode_t* const config);
313 
329 status_t CMP_DRV_GetOutputFlags(const uint32_t instance, cmp_output_trigger_t *flags);
330 
341 status_t CMP_DRV_ClearOutputFlags(const uint32_t instance);
342 
355 status_t CMP_DRV_GetInputFlags(const uint32_t instance, cmp_ch_list_t *flags);
356 
367 status_t CMP_DRV_ClearInputFlags(const uint32_t instance);
368 
382 
396 status_t CMP_DRV_ConfigComparator(const uint32_t instance, const cmp_comparator_t *config);
397 
411 status_t CMP_DRV_GetComparatorConfig(const uint32_t instance, cmp_comparator_t *config);
412 
413 
415 #if defined(__cplusplus)
416 }
417 #endif
418 
421 #endif /* __CMP_DRIVER_H__*/
422 /*******************************************************************************
423  * EOF
424  ******************************************************************************/
425 
status_t CMP_DRV_GetComparatorConfig(const uint32_t instance, cmp_comparator_t *config)
Return configuration for comparator from CMP module.
Definition: cmp_driver.c:481
cmp_ch_number_t fixedChannel
Definition: cmp_driver.h:111
uint8_t initializationDelay
Definition: cmp_driver.h:113
cmp_fixed_port_t fixedPort
Definition: cmp_driver.h:109
status_t CMP_DRV_GetDACConfig(const uint32_t instance, cmp_dac_t *const config)
Return current configuration for DAC.
Definition: cmp_driver.c:221
cmp_power_mode_t
Power Modes selection Implements : cmp_power_mode_t_Class.
Definition: cmp_hal.h:67
status_t CMP_DRV_ConfigTriggerMode(const uint32_t instance, const cmp_trigger_mode_t *config)
Configure trigger mode.
Definition: cmp_driver.c:319
cmp_ch_number_t positiveInputMux
Definition: cmp_driver.h:81
cmp_port_mux_t
Port Mux Source selection Implements : cmp_port_mux_t_Class.
Definition: cmp_hal.h:85
cmp_output_trigger_t
Comparator output interrupt configuration Implements : cmp_output_trigger_t_Class.
Definition: cmp_hal.h:150
status_t CMP_DRV_GetInitTriggerMode(cmp_trigger_mode_t *config)
Get reset configuration for registers related with Trigger Mode.
Definition: cmp_driver.c:298
cmp_anmux_t mux
Definition: cmp_driver.h:130
status_t CMP_DRV_ConfigDAC(const uint32_t instance, const cmp_dac_t *config)
Configure only the DAC component.
Definition: cmp_driver.c:203
status_t CMP_DRV_GetInitConfigComparator(cmp_comparator_t *config)
Get reset configuration for registers related with comparator features.
Definition: cmp_driver.c:430
status_t CMP_DRV_GetTriggerModeConfig(const uint32_t instance, cmp_trigger_mode_t *const config)
Get current trigger mode configuration.
Definition: cmp_driver.c:342
Defines the analog mux.
Definition: cmp_driver.h:73
bool roundRobinInterruptState
Definition: cmp_driver.h:108
bool state
Definition: cmp_driver.h:96
Defines the trigger mode.
Definition: cmp_driver.h:105
status_t CMP_DRV_ClearInputFlags(const uint32_t instance)
Clear comparator input channels flags.
Definition: cmp_driver.c:414
uint8_t cmp_ch_list_t
Comparator channels list (1bit/channel) |------—|------—|--—|------—|------—| |CH7_state|CH6_sta...
Definition: cmp_hal.h:180
status_t CMP_DRV_GetOutputFlags(const uint32_t instance, cmp_output_trigger_t *flags)
Get comparator output flags.
Definition: cmp_driver.c:365
uint8_t voltage
Definition: cmp_driver.h:95
status_t CMP_DRV_GetConfigAll(const uint32_t instance, cmp_module_t *const config)
Gets the current comparator configuration.
Definition: cmp_driver.c:145
cmp_ch_list_t roundRobinChannelsState
Definition: cmp_driver.h:114
uint8_t cmp_ch_number_t
Number of channel Implements : cmp_ch_number_t_Class.
Definition: cmp_hal.h:185
uint8_t filterSamplePeriod
Definition: cmp_driver.h:49
Defines the comparator module configuration.
Definition: cmp_driver.h:127
status_t CMP_DRV_ConfigMUX(const uint32_t instance, const cmp_anmux_t *config)
Configure only the MUX component.
Definition: cmp_driver.c:258
status_t CMP_DRV_GetInitConfigMUX(cmp_anmux_t *config)
Get reset configuration for registers related with MUX.
Definition: cmp_driver.c:240
status_t CMP_DRV_GetInputFlags(const uint32_t instance, cmp_ch_list_t *flags)
Gets input channels change flags.
Definition: cmp_driver.c:398
cmp_voltage_reference_t voltageReferenceSource
Definition: cmp_driver.h:93
status_t CMP_DRV_ConfigComparator(const uint32_t instance, const cmp_comparator_t *config)
Configure only comparator features.
Definition: cmp_driver.c:455
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
Definition: status.h:31
status_t CMP_DRV_Reset(const uint32_t instance)
Reset all registers.
Definition: cmp_driver.c:48
cmp_output_enable_t pinState
Definition: cmp_driver.h:55
status_t CMP_DRV_GetInitConfigAll(cmp_module_t *config)
Get reset configuration for all registers.
Definition: cmp_driver.c:64
cmp_offset_t
Comparator hard block offset control Implements : cmp_offset_t_Class.
Definition: cmp_hal.h:121
status_t CMP_DRV_Init(const uint32_t instance, const cmp_module_t *const config)
Configure all comparator features with the given configuration structure.
Definition: cmp_driver.c:102
cmp_output_enable_t
Comparator output pin enable selection Implements : cmp_output_enable_t_Class.
Definition: cmp_hal.h:112
cmp_mode_t
Comparator functional modes Implements : cmp_mode_t_Class.
Definition: cmp_hal.h:161
cmp_ch_number_t negativeInputMux
Definition: cmp_driver.h:82
cmp_port_mux_t positivePortMux
Definition: cmp_driver.h:75
cmp_hysteresis_t
Comparator hysteresis control Implements : cmp_hysteresis_t_Class.
Definition: cmp_hal.h:130
cmp_comparator_t comparator
Definition: cmp_driver.h:129
cmp_inverter_t
Comparator output invert selection Implements : cmp_inverter_t_Class.
Definition: cmp_hal.h:94
cmp_mode_t mode
Definition: cmp_driver.h:48
cmp_dac_t dac
Definition: cmp_driver.h:131
cmp_output_select_t outputSelect
Definition: cmp_driver.h:57
cmp_offset_t offsetLevel
Definition: cmp_driver.h:59
status_t CMP_DRV_GetInitConfigDAC(cmp_dac_t *config)
Get reset configuration for registers related with DAC.
Definition: cmp_driver.c:187
Defines the block configuration.
Definition: cmp_driver.h:41
cmp_hysteresis_t hysteresisLevel
Definition: cmp_driver.h:61
status_t CMP_DRV_ClearOutputFlags(const uint32_t instance)
Clear comparator output flags.
Definition: cmp_driver.c:381
uint8_t filterSampleCount
Definition: cmp_driver.h:50
cmp_trigger_mode_t triggerMode
Definition: cmp_driver.h:132
cmp_output_trigger_t outputInterruptTrigger
Definition: cmp_driver.h:44
cmp_fixed_port_t
Comparator Round-Robin fixed port Implements : cmp_fixed_port_t_Class.
Definition: cmp_hal.h:141
status_t CMP_DRV_GetMUXConfig(const uint32_t instance, cmp_anmux_t *const config)
Return configuration only for the MUX component.
Definition: cmp_driver.c:278
Defines the DAC block.
Definition: cmp_driver.h:91
cmp_ch_list_t programedState
Definition: cmp_driver.h:118
cmp_power_mode_t powerMode
Definition: cmp_driver.h:51
cmp_inverter_t inverterState
Definition: cmp_driver.h:53
cmp_voltage_reference_t
Voltage Reference selection Implements : cmp_voltage_reference_t_Class.
Definition: cmp_hal.h:76
cmp_port_mux_t negativePortMux
Definition: cmp_driver.h:78
bool dmaTriggerState
Definition: cmp_driver.h:43
cmp_output_select_t
Comparator output select selection Implements : cmp_output_select_t_Class.
Definition: cmp_hal.h:103