MCUSW

Introduction

This files defines ADC MCAL configuration structures

Data Structures

struct  Adc_ChannelConfigType
 Structure containing parameters for ADC MCAL channel configuration. In term of ADC hardware, this represents the step configuration. There are ADC_NUM_CHANNEL steps in the ADC hardware and each step could be mapped to an actual hardware input channel. More...
 
struct  Adc_GroupConfigType
 ADC Group configuration structure. More...
 
struct  Adc_HwUnitConfigType
 ADC Hardware unit configuration structure. More...
 
struct  Adc_ConfigType
 ADC config structure. More...
 
struct  Adc_RegisterReadbackType
 ADC register readback structure. More...
 

Variables

const struct Adc_ConfigType_s AdcConfigSet
 ADC Configuration struct declaration. More...
 

Typedefs

typedef void(* Adc_GroupEndNotifyType) (void)
 Typedef for group end notification function pointer. More...
 

Enumerations

enum  Adc_StatusType { ADC_IDLE, ADC_BUSY, ADC_COMPLETED, ADC_STREAM_COMPLETED }
 Current status of the conversion of the requested ADC Channel group. More...
 
enum  Adc_TriggerSourceType { ADC_TRIGG_SRC_SW, ADC_TRIGG_SRC_HW }
 Type for configuring the trigger source for an ADC Channel group. More...
 
enum  Adc_GroupConvModeType { ADC_CONV_MODE_ONESHOT, ADC_CONV_MODE_CONTINUOUS }
 Type for configuring the conversion mode of an ADC Channel group. More...
 
enum  Adc_StreamBufferModeType { ADC_STREAM_BUFFER_LINEAR, ADC_STREAM_BUFFER_CIRCULAR }
 Type for configuring the streaming access mode buffer type. More...
 
enum  Adc_GroupAccessModeType { ADC_ACCESS_MODE_SINGLE, ADC_ACCESS_MODE_STREAMING }
 Type for configuring the access mode to group conversion results. More...
 
enum  Adc_HwTriggerSignalType { ADC_HW_TRIG_RISING_EDGE, ADC_HW_TRIG_FALLING_EDGE, ADC_HW_TRIG_BOTH_EDGES }
 Type for configuring on which edge of the hardware trigger signal the driver should react, i.e. start the conversion. More...
 
enum  Adc_PriorityImplementationType { ADC_PRIORITY_NONE, ADC_PRIORITY_HW, ADC_PRIORITY_HW_SW }
 Type for configuring the prioritization mechanism. More...
 
enum  Adc_GroupReplacementType { ADC_GROUP_REPL_ABORT_RESTART, ADC_GROUP_REPL_SUSPEND_RESUME }
 Replacement mechanism, which is used on ADC group level, if a group conversion is interrupted by a group which has a higher priority. More...
 
enum  Adc_ChannelRangeSelectType {
  ADC_RANGE_UNDER_LOW, ADC_RANGE_BETWEEN, ADC_RANGE_OVER_HIGH, ADC_RANGE_ALWAYS,
  ADC_RANGE_NOT_UNDER_LOW, ADC_RANGE_NOT_BETWEEN, ADC_RANGE_NOT_OVER_HIGH
}
 In case of active limit checking: defines which conversion values are taken into account related to the boardes defined with AdcChannelLowLimit and AdcChannelHighLimit. More...
 
enum  Adc_ResultAlignmentType { ADC_ALIGN_LEFT, ADC_ALIGN_RIGHT }
 Type for alignment of ADC raw results in ADC result buffer (left/right alignment). More...
 
enum  Adc_PowerStateType { ADC_FULL_POWER, ADC_ZERO_POWER }
 Power state currently active or set as target power state. More...
 
enum  Adc_PowerStateRequestResultType {
  ADC_SERVICE_ACCEPTED, ADC_NOT_INIT, ADC_SEQUENCE_ERROR, ADC_HW_FAILURE,
  ADC_POWER_STATE_NOT_SUPP, ADC_TRANS_NOT_POSSIBLE
}
 Result of the requests related to power state transitions. More...
 
enum  Adc_AveragingMode {
  ADC_AVERAGING_MODE_NONE, ADC_AVERAGING_MODE_2_SAMPLES, ADC_AVERAGING_MODE_4_SAMPLES, ADC_AVERAGING_MODE_8_SAMPLES,
  ADC_AVERAGING_MODE_16_SAMPLES
}
 Enum to number of samplings to average. ADC allows user to program the number of samplings to average. More...
 

Macros

#define ADC_VARIANT_POST_BUILD   (STD_ON)
 ADC Build Variant. Build variants.(i.e Pre Compile,Post Build) More...
 
#define ADC_DEV_ERROR_DETECT   (STD_ON)
 Pre Compile config macro name. More...
 
#define ADC_GROUP_LOG   (STD_OFF)
 Enable/disable ADC group log. More...
 
#define ADC_MAX_GROUP_LOG   (100U)
 Maximum group log entries when logging is ON. More...
 
#define ADC_FIFO_ERR_LOG   (STD_OFF)
 Enable/disable ADC FIFO error log. More...
 
#define ADC_MAX_FIFO_ERR_LOG   (100U)
 Maximum FIFO error log entries when logging is ON. More...
 
#define ADC_VERSION_INFO_API   (STD_ON)
 Enable/disable ADC get version info API. More...
 
#define ADC_READ_GROUP_API   (STD_ON)
 Read group API. More...
 
#define ADC_GRP_NOTIF_CAPABILITY_API   (STD_ON)
 Enable/disable ADC enable/disable group notify API. More...
 
#define ADC_ENABLE_START_STOP_GROUP_API   (STD_ON)
 Enable/disable ADC start/stop group notify API. More...
 
#define ADC_DEINIT_API   (STD_ON)
 Enable/disable ADC deinit API. More...
 
#define ADC_PRIORITY_IMPLEMENTATION   (ADC_PRIORITY_HW_SW)
 Determines whether a priority mechanism is available for prioritization of the conversion requests and if available, the type of prioritization mechanism. More...
 
#define ADC_ENABLE_QUEUING   (STD_ON)
 Determines, if the queuing mechanism is active in case of priority mechanism disabled. More...
 
#define ADC_RESULT_ALIGNMENT   (ADC_ALIGN_RIGHT)
 Alignment of ADC raw results in ADC result buffer (left/right alignment) More...
 
#define ADC_MAX_GROUP   (2U)
 Maximum group across all hwunit. More...
 
#define ADC_MAX_HW_UNIT   (2U)
 Maximum HW unit - This should match the sum for the below units ISR which are ON. More...
 
#define ADC_INSTANCE_0
 
#define ADC_INSTANCE_1
 
#define ADC_ISR_TYPE   (ADC_ISR_CAT1)
 ISR type. More...
 
#define ADC_OS_COUNTER_ID   ((CounterType)0U)
 Counter ID for counter used to count wait ticks. More...
 
#define ADC_TIMEOUT_DURATION   (10000U)
 ADC timeout - used in ADC AFE busy wait and FSM busy wait. More...
 
#define ADC_REGISTER_READBACK_API   (STD_ON)
 Enable/disable ADC register read back API. More...
 
#define ADC_DIFFERENTIAL_INPUT_ENABLE   (STD_OFF)
 Enable/disable ADC differential input support. More...
 

Adc Group Id names

Defines for symbolic names for the AdcGroupId

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0   (0U)
 
#define ADC_GROUP_ID_0   AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0
 
#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0   (1U)
 
#define ADC_GROUP_ID_1   AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0
 

Adc Hw Unit Id names

Defines for symbolic names for the AdcHwUnitId

#define AdcConf_AdcHwUnit_AdcHwUnit_0   (ADC_UNIT_0)
 
#define ADC_HW_UNIT_ID_0   AdcConf_AdcHwUnit_AdcHwUnit_0
 
#define AdcConf_AdcHwUnit_AdcHwUnit_1   (ADC_UNIT_1)
 
#define ADC_HW_UNIT_ID_1   AdcConf_AdcHwUnit_AdcHwUnit_1
 

Adc Group Channel Id names

Defines for symbolic names for the Adc Group Channel Id

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0   (0U)
 Channel Ids for each group. More...
 
#define ADC_HW_UNIT_ID_ADCHWUNIT_0_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0
 
#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0   (0U)
 
#define ADC_HW_UNIT_ID_ADCHWUNIT_1_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0
 

Adc Channel Id names

Defines for symbolic names for the Adc Channel Id

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcChannel_AdcChannel_0   (0U)
 Channel Ids for all channels. More...
 
#define ADC_HW_UNIT_ID_ADCHWUNIT_0_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_0_AdcChannel_AdcChannel_0
 
#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcChannel_AdcChannel_0   (0U)
 
#define ADC_HW_UNIT_ID_ADCHWUNIT_1_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_1_AdcChannel_AdcChannel_0
 

ADC DEM Error codes to report

Pre-compile switches for enabling/disabling DEM events

#define DemConf_DemEventParameter_ADC_DEM_NO_EVENT   (0xFFFFU)
 
#define ADC_DEM_NO_EVENT   DemConf_DemEventParameter_ADC_DEM_NO_EVENT
 
#define ADC_E_HARDWARE_ERROR   (DemConf_DemEventParameter_ADC_E_HARDWARE_ERROR)
 Hardware failed. More...
 

Macro Definition Documentation

◆ ADC_VARIANT_POST_BUILD

#define ADC_VARIANT_POST_BUILD   (STD_ON)

ADC Build Variant. Build variants.(i.e Pre Compile,Post Build)

◆ ADC_DEV_ERROR_DETECT

#define ADC_DEV_ERROR_DETECT   (STD_ON)

Pre Compile config macro name.

Enable/disable ADC dev detect error

◆ ADC_GROUP_LOG

#define ADC_GROUP_LOG   (STD_OFF)

Enable/disable ADC group log.

◆ ADC_MAX_GROUP_LOG

#define ADC_MAX_GROUP_LOG   (100U)

Maximum group log entries when logging is ON.

◆ ADC_FIFO_ERR_LOG

#define ADC_FIFO_ERR_LOG   (STD_OFF)

Enable/disable ADC FIFO error log.

◆ ADC_MAX_FIFO_ERR_LOG

#define ADC_MAX_FIFO_ERR_LOG   (100U)

Maximum FIFO error log entries when logging is ON.

◆ ADC_VERSION_INFO_API

#define ADC_VERSION_INFO_API   (STD_ON)

Enable/disable ADC get version info API.

◆ ADC_READ_GROUP_API

#define ADC_READ_GROUP_API   (STD_ON)

Read group API.

◆ ADC_GRP_NOTIF_CAPABILITY_API

#define ADC_GRP_NOTIF_CAPABILITY_API   (STD_ON)

Enable/disable ADC enable/disable group notify API.

◆ ADC_ENABLE_START_STOP_GROUP_API

#define ADC_ENABLE_START_STOP_GROUP_API   (STD_ON)

Enable/disable ADC start/stop group notify API.

◆ ADC_DEINIT_API

#define ADC_DEINIT_API   (STD_ON)

Enable/disable ADC deinit API.

◆ ADC_PRIORITY_IMPLEMENTATION

#define ADC_PRIORITY_IMPLEMENTATION   (ADC_PRIORITY_HW_SW)

Determines whether a priority mechanism is available for prioritization of the conversion requests and if available, the type of prioritization mechanism.

◆ ADC_ENABLE_QUEUING

#define ADC_ENABLE_QUEUING   (STD_ON)

Determines, if the queuing mechanism is active in case of priority mechanism disabled.

◆ ADC_RESULT_ALIGNMENT

#define ADC_RESULT_ALIGNMENT   (ADC_ALIGN_RIGHT)

Alignment of ADC raw results in ADC result buffer (left/right alignment)

◆ ADC_MAX_GROUP

#define ADC_MAX_GROUP   (2U)

Maximum group across all hwunit.

◆ ADC_MAX_HW_UNIT

#define ADC_MAX_HW_UNIT   (2U)

Maximum HW unit - This should match the sum for the below units ISR which are ON.

◆ ADC_INSTANCE_0

#define ADC_INSTANCE_0

< ADC UNIT 0 INSTANCE ADC UNIT 1 INSTANCE

◆ ADC_INSTANCE_1

#define ADC_INSTANCE_1

◆ ADC_ISR_TYPE

#define ADC_ISR_TYPE   (ADC_ISR_CAT1)

ISR type.

◆ ADC_OS_COUNTER_ID

#define ADC_OS_COUNTER_ID   ((CounterType)0U)

Counter ID for counter used to count wait ticks.

◆ ADC_TIMEOUT_DURATION

#define ADC_TIMEOUT_DURATION   (10000U)

ADC timeout - used in ADC AFE busy wait and FSM busy wait.

◆ ADC_REGISTER_READBACK_API

#define ADC_REGISTER_READBACK_API   (STD_ON)

Enable/disable ADC register read back API.

◆ ADC_DIFFERENTIAL_INPUT_ENABLE

#define ADC_DIFFERENTIAL_INPUT_ENABLE   (STD_OFF)

Enable/disable ADC differential input support.

◆ AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0   (0U)

◆ ADC_GROUP_ID_0

◆ AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0

#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0   (1U)

◆ ADC_GROUP_ID_1

◆ AdcConf_AdcHwUnit_AdcHwUnit_0

#define AdcConf_AdcHwUnit_AdcHwUnit_0   (ADC_UNIT_0)

◆ ADC_HW_UNIT_ID_0

#define ADC_HW_UNIT_ID_0   AdcConf_AdcHwUnit_AdcHwUnit_0

◆ AdcConf_AdcHwUnit_AdcHwUnit_1

#define AdcConf_AdcHwUnit_AdcHwUnit_1   (ADC_UNIT_1)

◆ ADC_HW_UNIT_ID_1

#define ADC_HW_UNIT_ID_1   AdcConf_AdcHwUnit_AdcHwUnit_1

◆ AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0   (0U)

Channel Ids for each group.

◆ ADC_HW_UNIT_ID_ADCHWUNIT_0_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0

#define ADC_HW_UNIT_ID_ADCHWUNIT_0_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_0_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0

◆ AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0

#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0   (0U)

◆ ADC_HW_UNIT_ID_ADCHWUNIT_1_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0

#define ADC_HW_UNIT_ID_ADCHWUNIT_1_GROUP_ID_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_1_AdcGroup_AdcGroup_0_AdcChannel_AdcChannel_0

◆ AdcConf_AdcHwUnit_AdcHwUnit_0_AdcChannel_AdcChannel_0

#define AdcConf_AdcHwUnit_AdcHwUnit_0_AdcChannel_AdcChannel_0   (0U)

Channel Ids for all channels.

◆ ADC_HW_UNIT_ID_ADCHWUNIT_0_CHANNEL_ID_ADCCHANNEL_0

#define ADC_HW_UNIT_ID_ADCHWUNIT_0_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_0_AdcChannel_AdcChannel_0

◆ AdcConf_AdcHwUnit_AdcHwUnit_1_AdcChannel_AdcChannel_0

#define AdcConf_AdcHwUnit_AdcHwUnit_1_AdcChannel_AdcChannel_0   (0U)

◆ ADC_HW_UNIT_ID_ADCHWUNIT_1_CHANNEL_ID_ADCCHANNEL_0

#define ADC_HW_UNIT_ID_ADCHWUNIT_1_CHANNEL_ID_ADCCHANNEL_0   AdcConf_AdcHwUnit_AdcHwUnit_1_AdcChannel_AdcChannel_0

◆ DemConf_DemEventParameter_ADC_DEM_NO_EVENT

#define DemConf_DemEventParameter_ADC_DEM_NO_EVENT   (0xFFFFU)

◆ ADC_DEM_NO_EVENT

#define ADC_DEM_NO_EVENT   DemConf_DemEventParameter_ADC_DEM_NO_EVENT

◆ ADC_E_HARDWARE_ERROR

#define ADC_E_HARDWARE_ERROR   (DemConf_DemEventParameter_ADC_E_HARDWARE_ERROR)

Hardware failed.

Typedef Documentation

◆ Adc_GroupEndNotifyType

typedef void(* Adc_GroupEndNotifyType) (void)

Typedef for group end notification function pointer.

Enumeration Type Documentation

◆ Adc_StatusType

Current status of the conversion of the requested ADC Channel group.

Enumerator
ADC_IDLE 

The conversion of the specified group has not been started. No result is available

ADC_BUSY 

The conversion of the specified group has been started and is still going on. So far no result is available

ADC_COMPLETED 

A conversion round (which is not the final one) of the specified group has been finished. A result is available for all channels of the group

ADC_STREAM_COMPLETED 

The result buffer is completely filled. For each channel of the selected group the number of samples to be acquired is available

◆ Adc_TriggerSourceType

Type for configuring the trigger source for an ADC Channel group.

Enumerator
ADC_TRIGG_SRC_SW 

Group is triggered by a software API call

ADC_TRIGG_SRC_HW 

Group is triggered by a hardware event Note: This feature is not supported in this driver

◆ Adc_GroupConvModeType

Type for configuring the conversion mode of an ADC Channel group.

Enumerator
ADC_CONV_MODE_ONESHOT 

Exactly one conversion of each channel in an ADC channel group is performed after the configured trigger event

ADC_CONV_MODE_CONTINUOUS 

Repeated conversions of each ADC channel in an ADC channel group are performed

◆ Adc_StreamBufferModeType

Type for configuring the streaming access mode buffer type.

Enumerator
ADC_STREAM_BUFFER_LINEAR 

The ADC Driver stops the conversion as soon as the stream buffer is full (number of samples reached)

ADC_STREAM_BUFFER_CIRCULAR 

The ADC Driver continues the conversion even if the stream buffer is full (number of samples reached) by wrapping around the stream buffer itself

◆ Adc_GroupAccessModeType

Type for configuring the access mode to group conversion results.

Enumerator
ADC_ACCESS_MODE_SINGLE 

Single value access mode

ADC_ACCESS_MODE_STREAMING 

Streaming access mode

◆ Adc_HwTriggerSignalType

Type for configuring on which edge of the hardware trigger signal the driver should react, i.e. start the conversion.

Note: This feature is not supported in this driver

Enumerator
ADC_HW_TRIG_RISING_EDGE 

React on the rising edge of the hardware trigger signal

ADC_HW_TRIG_FALLING_EDGE 

React on the falling edge of the hardware trigger signal

ADC_HW_TRIG_BOTH_EDGES 

React on both edges of the hardware trigger signal

◆ Adc_PriorityImplementationType

Type for configuring the prioritization mechanism.

Enumerator
ADC_PRIORITY_NONE 

Priority mechanism is not available

ADC_PRIORITY_HW 

Hardware priority mechanism is available only

ADC_PRIORITY_HW_SW 

Hardware and software priority mechanism is available

◆ Adc_GroupReplacementType

Replacement mechanism, which is used on ADC group level, if a group conversion is interrupted by a group which has a higher priority.

Enumerator
ADC_GROUP_REPL_ABORT_RESTART 

Abort/Restart mechanism is used on group level, if a group is interrupted by a higher priority group

ADC_GROUP_REPL_SUSPEND_RESUME 

Suspend/Resume mechanism is used on group level, if a group is interrupted by a higher priority group. Note: The implementation is same as abort/restart i.e. when a group is started again, previous intermediate results are discarded and the driver always starts from first channel of the group

◆ Adc_ChannelRangeSelectType

In case of active limit checking: defines which conversion values are taken into account related to the boardes defined with AdcChannelLowLimit and AdcChannelHighLimit.

Note: This feature is not supported yet.

Enumerator
ADC_RANGE_UNDER_LOW 

Range below low limit - low limit value included

ADC_RANGE_BETWEEN 

Range between low limit and high limit - high limit value included

ADC_RANGE_OVER_HIGH 

Range above high limit

ADC_RANGE_ALWAYS 

Complete range - independent from channel limit settings

ADC_RANGE_NOT_UNDER_LOW 

Range above low limit

ADC_RANGE_NOT_BETWEEN 

Range above high limit or below low limit - low limit value included

ADC_RANGE_NOT_OVER_HIGH 

Range below high limit - high limit value included

◆ Adc_ResultAlignmentType

Type for alignment of ADC raw results in ADC result buffer (left/right alignment).

Enumerator
ADC_ALIGN_LEFT 

Left alignment. Note: This feature is not supported in the ADC hardware

ADC_ALIGN_RIGHT 

Right alignment

◆ Adc_PowerStateType

Power state currently active or set as target power state.

Enumerator
ADC_FULL_POWER 

Full Power (0)

ADC_ZERO_POWER 

Power modes with decreasing power consumptions

◆ Adc_PowerStateRequestResultType

Result of the requests related to power state transitions.

Enumerator
ADC_SERVICE_ACCEPTED 

Power state change executed

ADC_NOT_INIT 

ADC Module not initialized

ADC_SEQUENCE_ERROR 

Wrong API call sequence

ADC_HW_FAILURE 

The HW module has a failure which prevents it to enter the required power state

ADC_POWER_STATE_NOT_SUPP 

ADC Module does not support the requested power state

ADC_TRANS_NOT_POSSIBLE 

ADC Module cannot transition directly from the current power state to the requested power state or the HW peripheral is still busy

◆ Adc_AveragingMode

Enum to number of samplings to average. ADC allows user to program the number of samplings to average.

Enumerator
ADC_AVERAGING_MODE_NONE 

Disable averaging

ADC_AVERAGING_MODE_2_SAMPLES 

Set number of samplings to average to 2

ADC_AVERAGING_MODE_4_SAMPLES 

Set number of samplings to average to 4

ADC_AVERAGING_MODE_8_SAMPLES 

Set number of samplings to average to 8

ADC_AVERAGING_MODE_16_SAMPLES 

Set number of samplings to average to 16

Variable Documentation

◆ AdcConfigSet

const struct Adc_ConfigType_s AdcConfigSet

ADC Configuration struct declaration.