MCUSW
ICU Driver API

Introduction

This component provides services for initialization and control of the ICU unit. The ICU module captures and measures signals. signal period time.

See also
ICU Configuration
ICU Driver Interrupt Handlers

Sub Modules

 ICU Configuration
 
 ICU Driver Interrupt Handlers
 

ICU Driver ID Info

#define ICU_VENDOR_ID   ((uint16) 44U)
 Texas Instruments Vendor ID. More...
 
#define ICU_MODULE_ID   ((uint16) 122U)
 ICU Driver Module ID. More...
 
#define ICU_INSTANCE_ID   ((uint8) 0U)
 ICU Driver Instance ID. More...
 

ICU Driver Module SW Version Info

Defines for ICU Driver version used for compatibility checks

#define ICU_SW_MAJOR_VERSION   (1U)
 Driver Implementation Major Version. More...
 
#define ICU_SW_MINOR_VERSION   (3U)
 Driver Implementation Minor Version. More...
 
#define ICU_SW_PATCH_VERSION   (2U)
 Driver Implementation Patch Version. More...
 

ICU Driver Module AUTOSAR Version Info

Defines for ICU Driver AUTOSAR version used for compatibility checks

#define ICU_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by ICU Driver. More...
 
#define ICU_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by ICU Driver. More...
 
#define ICU_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by ICU Driver. More...
 

ICU Service IDs

The Service Id is one of the argument to Det_ReportError function and is used to identify the source of the error

#define ICU_INIT_ID   ((uint8) 0x00U)
 Icu_Init() API Service ID. More...
 
#define ICU_DEINIT_ID   ((uint8) 0x01U)
 Icu_DeInit() API Service ID. More...
 
#define ICU_SETMODE_ID   ((uint8) 0x02U)
 Icu_SetMode() API Service ID. More...
 
#define ICU_SETACTIVATIONCONDITION_ID   ((uint8) 0x05U)
 Icu_SetActivationCondition() API Service ID. More...
 
#define ICU_DISABLENOTIFICATION_ID   ((uint8) 0x06U)
 Icu_DisableNotification() API Service ID. More...
 
#define ICU_ENABLENOTIFICATION_ID   ((uint8) 0x07U)
 Icu_EnableNotification() API Service ID. More...
 
#define ICU_GETINPUTSTATE_ID   ((uint8) 0x08U)
 Icu_GetInputState() API Service ID. More...
 
#define ICU_STARTTIMESTAMP_ID   ((uint8) 0x09U)
 Icu_StartTimestamp() API Service ID. More...
 
#define ICU_STOPTIMESTAMP_ID   ((uint8) 0x0AU)
 Icu_StopTimestamp() API Service ID. More...
 
#define ICU_GETTIMESTAMPINDEX_ID   ((uint8) 0x0BU)
 Icu_GetTimeStampIndex() API Service ID. More...
 
#define ICU_RESETEDGECOUNT_ID   ((uint8) 0x0CU)
 Icu_ResetEdgeCount() API Service ID. More...
 
#define ICU_ENABLEEDGECOUNT_ID   ((uint8) 0x0DU)
 Icu_EnableEdgeCount() API Service ID. More...
 
#define ICU_ENABLEEDGEDETECTION_ID   ((uint8) 0x16U)
 Icu_EnableEdgeDetection() API Service ID. More...
 
#define ICU_DISABLEEDGEDETECTION_ID   ((uint8) 0x17U)
 Icu_DisableEdgeDetection() API Service ID. More...
 
#define ICU_DISABLEEDGECOUNT_ID   ((uint8) 0x0EU)
 Icu_DisableEdgeCount() API Service ID. More...
 
#define ICU_GETEDGENUMBERS_ID   ((uint8) 0x0FU)
 Icu_GetEdgeNumbers() API Service ID. More...
 
#define ICU_STARTSIGNALMEASUREMENT_ID   ((uint8) 0x13U)
 Icu_StartSignalMeasurement() API Service ID. More...
 
#define ICU_STOPSIGNALMEASUREMENT_ID   ((uint8) 0x14U)
 Icu_StopSignalMeasurement() API Service ID. More...
 
#define ICU_GETTIMEELAPSED_ID   ((uint8) 0x10U)
 Icu_GetTimeElapsed() API Service ID. More...
 
#define ICU_GETDUTYCYCLEVALUES_ID   ((uint8) 0x11U)
 Icu_GetDutyCycleValues() API Service ID. More...
 
#define ICU_GETVERSIONINFO_ID   ((uint8) 0x12U)
 Icu_GetVersionInfo() API Service ID. More...
 

ICU Error Codes

Error codes returned by ICU functions

#define ICU_E_PARAM_POINTER   ((uint8) 0x0AU)
 API service called with invalid pointer. More...
 
#define ICU_E_PARAM_CHANNEL   ((uint8) 0x0BU)
 API service called with invalid channel identifier or channel not configured. More...
 
#define ICU_E_PARAM_ACTIVATION   ((uint8) 0x0CU)
 API service calleed with an invalid or not feasible activation. More...
 
#define ICU_E_INIT_FAILED   ((uint8) 0x0DU)
 Init Function Failed. More...
 
#define ICU_E_PARAM_BUFFER_SIZE   ((uint8) 0x0EU)
 API service used with invalid Buffer size. More...
 
#define ICU_E_PARAM_MODE   ((uint8) 0x0FU)
 API service called with invalid mode. More...
 
#define ICU_E_UNINIT   ((uint8) 0x14U)
 API service calleed without module initialisation. More...
 
#define ICU_E_NOT_STARTED   ((uint8) 0x16U)
 Icu_StopTimestamp called on channel not started or already stopped. More...
 
#define ICU_E_BUSY_OPERATION   ((uint8) 0x16U)
 API service called while a running operation. More...
 
#define ICU_E_ALREADY_INITIALIZED   ((uint8) 0x17U)
 API service Icu_Init called when module already initialized. More...
 
#define ICU_E_PARAM_NOTIFY_INTERVAL   ((uint8) 0x18U)
 API service called when notify interval is invalid. More...
 
#define ICU_E_PARAM_VINFO   ((uint8) 0x19U)
 API service Icu_GetVersionInfo called and parameter is invalid. More...
 

ICU Driver State Values

The ICU Driver State Values

#define ICU_STATUS_UNINIT   ((uint8)(0U))
 ICU driver Status uninitialized. More...
 
#define ICU_STATUS_INIT   ((uint8)(1U))
 ICU driver Status Initialized. More...
 

Macros to define Rising and Falling edge config for capture registers

#define ICU_FALLING   ((uint8)(0U))
 Capture regsiter configuration for FALLING edge. More...
 
#define ICU_RISING   ((uint8)(1U))
 Capture regsiter configuration for RISING edge. More...
 
#define ICU_MAX_NUM_CHANNELS   (3U)
 
#define ICU_CHANNEL0   (0U)
 ECAP Channel 0, in MAIN DOMAIN. More...
 
#define ICU_CHANNEL1   (1U)
 ECAP Channel 1, in MAIN DOMAIN. More...
 
#define ICU_CHANNEL2   (2U)
 ECAP Channel 2, in MAIN DOMAIN. More...
 
enum  Icu_ModeType { ICU_MODE_NORMAL, ICU_MODE_SLEEP }
 This type defines a range of mode type. More...
 
enum  Icu_InputStateType { ICU_ACTIVE, ICU_IDLE }
 This type defines a input state of ICU driver. More...
 
enum  Icu_ActivationType { ICU_RISING_EDGE, ICU_FALLING_EDGE, ICU_BOTH_EDGES }
 This type defines Activation range. More...
 
enum  Icu_MeasurementModeType { ICU_MODE_SIGNAL_EDGE_DETECT, ICU_MODE_SIGNAL_MEASUREMENT, ICU_MODE_TIMESTAMP, ICU_MODE_EDGE_COUNTER }
 This type defines available measurement modes. More...
 
enum  Icu_SignalMeasurementPropertyType { ICU_LOW_TIME, ICU_HIGH_TIME, ICU_PERIOD_TIME, ICU_DUTY_CYCLE }
 This type defines Signal Measurement Property range. More...
 
enum  Icu_TimestampBufferType { ICU_LINEAR_BUFFER, ICU_CIRCULAR_BUFFER }
 This type defines TimeStamp Property range. More...
 
typedef uint16 Icu_ValueType
 This type defines Value type. More...
 
typedef uint32 Icu_IndexType
 This type defines return value Icu_GetTimeStampIndex. More...
 
typedef uint32 Icu_EdgeNumberType
 This type defines return value of Icu-Icu_GetEdgeNumbers. More...
 
typedef void(* Icu_NotifyFuncType) (void)
 Notification callback function pointer. More...
 
typedef uint8 Icu_ChannelType
 This type defines Channel type. More...
 
typedef uint8 Icu_ChannelPrescalerType
 This type defines Prescaler type. More...
 

Macro Definition Documentation

◆ ICU_VENDOR_ID

#define ICU_VENDOR_ID   ((uint16) 44U)

Texas Instruments Vendor ID.

◆ ICU_MODULE_ID

#define ICU_MODULE_ID   ((uint16) 122U)

ICU Driver Module ID.

◆ ICU_INSTANCE_ID

#define ICU_INSTANCE_ID   ((uint8) 0U)

ICU Driver Instance ID.

◆ ICU_SW_MAJOR_VERSION

#define ICU_SW_MAJOR_VERSION   (1U)

Driver Implementation Major Version.

◆ ICU_SW_MINOR_VERSION

#define ICU_SW_MINOR_VERSION   (3U)

Driver Implementation Minor Version.

◆ ICU_SW_PATCH_VERSION

#define ICU_SW_PATCH_VERSION   (2U)

Driver Implementation Patch Version.

◆ ICU_AR_RELEASE_MAJOR_VERSION

#define ICU_AR_RELEASE_MAJOR_VERSION   (4U)

AUTOSAR Major version specification implemented by ICU Driver.

◆ ICU_AR_RELEASE_MINOR_VERSION

#define ICU_AR_RELEASE_MINOR_VERSION   (3U)

AUTOSAR Minor version specification implemented by ICU Driver.

◆ ICU_AR_RELEASE_REVISION_VERSION

#define ICU_AR_RELEASE_REVISION_VERSION   (1U)

AUTOSAR Patch version specification implemented by ICU Driver.

◆ ICU_INIT_ID

#define ICU_INIT_ID   ((uint8) 0x00U)

Icu_Init() API Service ID.

◆ ICU_DEINIT_ID

#define ICU_DEINIT_ID   ((uint8) 0x01U)

Icu_DeInit() API Service ID.

◆ ICU_SETMODE_ID

#define ICU_SETMODE_ID   ((uint8) 0x02U)

Icu_SetMode() API Service ID.

◆ ICU_SETACTIVATIONCONDITION_ID

#define ICU_SETACTIVATIONCONDITION_ID   ((uint8) 0x05U)

◆ ICU_DISABLENOTIFICATION_ID

#define ICU_DISABLENOTIFICATION_ID   ((uint8) 0x06U)

Icu_DisableNotification() API Service ID.

◆ ICU_ENABLENOTIFICATION_ID

#define ICU_ENABLENOTIFICATION_ID   ((uint8) 0x07U)

Icu_EnableNotification() API Service ID.

◆ ICU_GETINPUTSTATE_ID

#define ICU_GETINPUTSTATE_ID   ((uint8) 0x08U)

Icu_GetInputState() API Service ID.

◆ ICU_STARTTIMESTAMP_ID

#define ICU_STARTTIMESTAMP_ID   ((uint8) 0x09U)

Icu_StartTimestamp() API Service ID.

◆ ICU_STOPTIMESTAMP_ID

#define ICU_STOPTIMESTAMP_ID   ((uint8) 0x0AU)

Icu_StopTimestamp() API Service ID.

◆ ICU_GETTIMESTAMPINDEX_ID

#define ICU_GETTIMESTAMPINDEX_ID   ((uint8) 0x0BU)

Icu_GetTimeStampIndex() API Service ID.

◆ ICU_RESETEDGECOUNT_ID

#define ICU_RESETEDGECOUNT_ID   ((uint8) 0x0CU)

Icu_ResetEdgeCount() API Service ID.

◆ ICU_ENABLEEDGECOUNT_ID

#define ICU_ENABLEEDGECOUNT_ID   ((uint8) 0x0DU)

Icu_EnableEdgeCount() API Service ID.

◆ ICU_ENABLEEDGEDETECTION_ID

#define ICU_ENABLEEDGEDETECTION_ID   ((uint8) 0x16U)

Icu_EnableEdgeDetection() API Service ID.

◆ ICU_DISABLEEDGEDETECTION_ID

#define ICU_DISABLEEDGEDETECTION_ID   ((uint8) 0x17U)

Icu_DisableEdgeDetection() API Service ID.

◆ ICU_DISABLEEDGECOUNT_ID

#define ICU_DISABLEEDGECOUNT_ID   ((uint8) 0x0EU)

Icu_DisableEdgeCount() API Service ID.

◆ ICU_GETEDGENUMBERS_ID

#define ICU_GETEDGENUMBERS_ID   ((uint8) 0x0FU)

Icu_GetEdgeNumbers() API Service ID.

◆ ICU_STARTSIGNALMEASUREMENT_ID

#define ICU_STARTSIGNALMEASUREMENT_ID   ((uint8) 0x13U)

◆ ICU_STOPSIGNALMEASUREMENT_ID

#define ICU_STOPSIGNALMEASUREMENT_ID   ((uint8) 0x14U)

Icu_StopSignalMeasurement() API Service ID.

◆ ICU_GETTIMEELAPSED_ID

#define ICU_GETTIMEELAPSED_ID   ((uint8) 0x10U)

Icu_GetTimeElapsed() API Service ID.

◆ ICU_GETDUTYCYCLEVALUES_ID

#define ICU_GETDUTYCYCLEVALUES_ID   ((uint8) 0x11U)

Icu_GetDutyCycleValues() API Service ID.

◆ ICU_GETVERSIONINFO_ID

#define ICU_GETVERSIONINFO_ID   ((uint8) 0x12U)

Icu_GetVersionInfo() API Service ID.

◆ ICU_E_PARAM_POINTER

#define ICU_E_PARAM_POINTER   ((uint8) 0x0AU)

API service called with invalid pointer.

◆ ICU_E_PARAM_CHANNEL

#define ICU_E_PARAM_CHANNEL   ((uint8) 0x0BU)

API service called with invalid channel identifier or channel not configured.

◆ ICU_E_PARAM_ACTIVATION

#define ICU_E_PARAM_ACTIVATION   ((uint8) 0x0CU)

API service calleed with an invalid or not feasible activation.

◆ ICU_E_INIT_FAILED

#define ICU_E_INIT_FAILED   ((uint8) 0x0DU)

Init Function Failed.

◆ ICU_E_PARAM_BUFFER_SIZE

#define ICU_E_PARAM_BUFFER_SIZE   ((uint8) 0x0EU)

API service used with invalid Buffer size.

◆ ICU_E_PARAM_MODE

#define ICU_E_PARAM_MODE   ((uint8) 0x0FU)

API service called with invalid mode.

◆ ICU_E_UNINIT

#define ICU_E_UNINIT   ((uint8) 0x14U)

API service calleed without module initialisation.

◆ ICU_E_NOT_STARTED

#define ICU_E_NOT_STARTED   ((uint8) 0x16U)

Icu_StopTimestamp called on channel not started or already stopped.

◆ ICU_E_BUSY_OPERATION

#define ICU_E_BUSY_OPERATION   ((uint8) 0x16U)

API service called while a running operation.

◆ ICU_E_ALREADY_INITIALIZED

#define ICU_E_ALREADY_INITIALIZED   ((uint8) 0x17U)

API service Icu_Init called when module already initialized.

◆ ICU_E_PARAM_NOTIFY_INTERVAL

#define ICU_E_PARAM_NOTIFY_INTERVAL   ((uint8) 0x18U)

API service called when notify interval is invalid.

◆ ICU_E_PARAM_VINFO

#define ICU_E_PARAM_VINFO   ((uint8) 0x19U)

API service Icu_GetVersionInfo called and parameter is invalid.

◆ ICU_STATUS_UNINIT

#define ICU_STATUS_UNINIT   ((uint8)(0U))

ICU driver Status uninitialized.

◆ ICU_STATUS_INIT

#define ICU_STATUS_INIT   ((uint8)(1U))

ICU driver Status Initialized.

◆ ICU_FALLING

#define ICU_FALLING   ((uint8)(0U))

Capture regsiter configuration for FALLING edge.

◆ ICU_RISING

#define ICU_RISING   ((uint8)(1U))

Capture regsiter configuration for RISING edge.

◆ ICU_MAX_NUM_CHANNELS

#define ICU_MAX_NUM_CHANNELS   (3U)

◆ ICU_CHANNEL0

#define ICU_CHANNEL0   (0U)

ECAP Channel 0, in MAIN DOMAIN.

◆ ICU_CHANNEL1

#define ICU_CHANNEL1   (1U)

ECAP Channel 1, in MAIN DOMAIN.

◆ ICU_CHANNEL2

#define ICU_CHANNEL2   (2U)

ECAP Channel 2, in MAIN DOMAIN.

Typedef Documentation

◆ Icu_ValueType

typedef uint16 Icu_ValueType

This type defines Value type.

◆ Icu_IndexType

typedef uint32 Icu_IndexType

This type defines return value Icu_GetTimeStampIndex.

◆ Icu_EdgeNumberType

typedef uint32 Icu_EdgeNumberType

This type defines return value of Icu-Icu_GetEdgeNumbers.

◆ Icu_NotifyFuncType

typedef void(* Icu_NotifyFuncType) (void)

Notification callback function pointer.

◆ Icu_ChannelType

typedef uint8 Icu_ChannelType

This type defines Channel type.

◆ Icu_ChannelPrescalerType

typedef uint8 Icu_ChannelPrescalerType

This type defines Prescaler type.

Enumeration Type Documentation

◆ Icu_ModeType

This type defines a range of mode type.

Enumerator
ICU_MODE_NORMAL 

Normal Mode

ICU_MODE_SLEEP 

Sleep Mode

◆ Icu_InputStateType

This type defines a input state of ICU driver.

Enumerator
ICU_ACTIVE 

Module is in active state

ICU_IDLE 

Module is in idle state

◆ Icu_ActivationType

This type defines Activation range.

Enumerator
ICU_RISING_EDGE 

Rising Edge Activation type

ICU_FALLING_EDGE 

Falling Edge Activation type

ICU_BOTH_EDGES 

Both Edge Activation type

◆ Icu_MeasurementModeType

This type defines available measurement modes.

Enumerator
ICU_MODE_SIGNAL_EDGE_DETECT 

Signal Edge Detect Mode

ICU_MODE_SIGNAL_MEASUREMENT 

Signal measurement Mode

ICU_MODE_TIMESTAMP 

Signal Timestamp Mode

ICU_MODE_EDGE_COUNTER 

Signal Edge counter Mode

◆ Icu_SignalMeasurementPropertyType

This type defines Signal Measurement Property range.

Enumerator
ICU_LOW_TIME 

Signal Low time

ICU_HIGH_TIME 

Signal High time

ICU_PERIOD_TIME 

Signal Period time

ICU_DUTY_CYCLE 

Signal Duty Cycle time

◆ Icu_TimestampBufferType

This type defines TimeStamp Property range.

Enumerator
ICU_LINEAR_BUFFER 

Linear Buffer to be used in Timestamp

ICU_CIRCULAR_BUFFER 

Circular Buffer to be used in Timestamp