RTEMS 6.3
Loading...
Searching...
No Matches
afec.h File Reference
#include <assert.h>
#include <stdint.h>

Go to the source code of this file.

Macros

#define AFEC_MR_SETTLING_Pos   20
#define AFEC_MR_SETTLING_Msk   (0x3u << AFEC_MR_SETTLING_Pos)
 (AFEC_MR) Trigger Selection
#define AFEC_MR_SETTLING_AST3   (0x0u << 20)
 (AFEC_MR) ADC_SETTLING_AST3 3 periods of AFEClock
#define AFEC_MR_SETTLING_AST5   (0x1u << 20)
 (AFEC_MR) ADC_SETTLING_AST5 5 periods of AFEClock
#define AFEC_MR_SETTLING_AST9   (0x2u << 20)
 (AFEC_MR) ADC_SETTLING_AST9 9 periods of AFEClock
#define AFEC_MR_SETTLING_AST17   (0x3u << 20)
 (AFEC_MR) ADC_SETTLING_AST17 17 periods of AFEClock
#define AFEC_EMR_STM_Pos   25
#define AFEC_EMR_STM_Msk   (0x1u << AFEC_EMR_STM_Pos)
 (AFEC_EMR) Single Trigger Mode
#define AFEC_EMR_STM_MULTI_TRIG   (0x0u << 25)
 (AFEC_EMR) Single Trigger Mode: Multiple triggers are required to get an averaged result.
#define AFEC_EMR_STM_SINGLE_TRIG   (0x1u << 25)
 (AFEC_EMR) Single Trigger Mode: Only a Single Trigger is required to get an averaged value.
#define AFEC_EMR_TAG_Pos   24
#define AFEC_EMR_TAG_Msk   (0x1u << AFEC_EMR_TAG_Pos)
 (AFEC_EMR) TAG of the AFEC_LDCR Register
#define AFEC_EMR_TAG_CHNB_ZERO   (0x0u << 24)
 (AFEC_EMR) TAG of the AFEC_LDCR Register: Sets CHNB to zero in AFEC_LDCR.
#define AFEC_EMR_TAG_APPENDS   (0x1u << 24)
 (AFEC_EMR) TAG of the AFEC_LDCR Register: Appends the channel number to the conversion result in AFEC_LDCR register.
#define AFEC_EMR_CMPALL_Pos   9
#define AFEC_EMR_CMPALL_Msk   (0x1u << AFEC_EMR_TAG_Pos)
 (AFEC_EMR) Compare All Channels
#define AFEC_EMR_CMPALL_ONE_CHANNEL_COMP   (0x0u << 9)
 (AFEC_EMR) Compare All Channels: Only channel indicated in CMPSEL field is compared.
#define AFEC_EMR_CMPALL_ALL_CHANNELS_COMP   (0x1u << 9)
 (AFEC_EMR) Compare All Channels: All channels are compared.
#define AFEC_ACR_PGA0_ON   (0x1u << 2)
#define AFEC_ACR_PGA1_ON   (0x1u << 3)
#define AFEC_GetModeReg(pAFEC)
#define AFEC_SetModeReg(pAFEC, mode)
#define AFEC_GetExtModeReg(pAFEC)
#define AFEC_SetExtModeReg(pAFEC, mode)
#define AFEC_StartConversion(pAFEC)
#define AFEC_EnableChannel(pAFEC, dwChannel)
#define AFEC_DisableChannel(pAFEC, dwChannel)
#define AFEC_EnableIt(pAFEC, dwMode)
#define AFEC_DisableIt(pAFEC, dwMode)
#define AFEC_SetChannelGain(pAFEC, dwMode)
#define AFEC_EnableDataReadyIt(pAFEC)
#define AFEC_GetStatus(pAFEC)
#define AFEC_GetCompareMode(pAFEC)
#define AFEC_GetChannelStatus(pAFEC)
#define AFEC_GetInterruptMaskStatus(pAFEC)
#define AFEC_GetLastConvertedData(pAFEC)

Functions

void AFEC_Initialize (Afec *pAFEC, uint32_t dwId)
 Initialize the AFE controller.
uint32_t AFEC_SetClock (Afec *pAFEC, uint32_t dwPres, uint32_t dwMck)
 Set AFE clock.
void AFEC_SetTiming (Afec *pAFEC, uint32_t dwStartup, uint32_t dwTracking, uint32_t dwSettling)
 Set AFE timing.
void AFEC_SetTrigger (Afec *pAFEC, uint32_t dwTrgSel)
 Set AFE trigger.
void AFEC_SetAnalogChange (Afec *pAFE, uint8_t bEnDis)
 Set analog change. IF enabled, it allows different analog settings for each channel, otherwise, DIFF0, GAIN0 and OFF0 are used for all channels.
void AFEC_SetSleepMode (Afec *pAFEC, uint8_t bEnDis)
 Enable/Disable sleep mode.
void AFEC_SetFastWakeup (Afec *pAFEC, uint8_t bEnDis)
 Enable/Disable fast wake up.
void AFEC_SetSequenceMode (Afec *pAFEC, uint8_t bEnDis)
 Enable/Disable sequence mode.
void AFEC_SetSequence (Afec *pAFEC, uint32_t dwSEQ1, uint32_t dwSEQ2)
 Set channel sequence.
void AFEC_SetSequenceByList (Afec *pAFEC, uint8_t ucChList[], uint8_t ucNumCh)
 Set channel sequence by given channel list.
void AFEC_SetTagEnable (Afec *pAFEC, uint8_t bEnDis)
 Set "TAG" mode, show channel number in last data or not.
void AFEC_SetCompareChannel (Afec *pAFEC, uint32_t dwChannel)
 Set compare channel.
void AFEC_SetCompareMode (Afec *pAFEC, uint32_t dwMode)
 Set compare mode.
void AFEC_SetComparisonWindow (Afec *pAFEC, uint32_t dwHi_Lo)
 Set comparison window.
uint8_t AFEC_CheckConfiguration (Afec *pAFEC, uint32_t dwMcK)
uint32_t AFEC_GetConvertedData (Afec *pAFEC, uint32_t dwChannel)
 Return the Channel Converted Data.
void AFEC_SetStartupTime (Afec *pAFEC, uint32_t dwUs)
void AFEC_SetTrackingTime (Afec *pAFEC, uint32_t dwNs)
void AFEC_SetAnalogOffset (Afec *pAFE, uint32_t dwChannel, uint32_t aoffset)
 Set analog offset to be used for channel CSEL.
void AFEC_SetAnalogControl (Afec *pAFE, uint32_t control)
 Set analog offset to be used for channel CSEL.

Detailed Description

Purpose

Interface for configuration the Analog-to-Digital Converter (AFEC) peripheral.

Usage

  1. Configurate the pins for AFEC.
  2. Initialize the AFEC with AFEC_Initialize().
  3. Set AFEC clock and timing with AFEC_SetClock() and AFEC_SetTiming().
  4. Select the active channel using AFEC_EnableChannel().
  5. Start the conversion with AFEC_StartConversion().
  6. Wait the end of the conversion by polling status with AFEC_GetStatus().
  7. Finally, get the converted data using AFEC_GetConvertedData() or AFEC_GetLastConvertedData().

Macro Definition Documentation

◆ AFEC_DisableChannel

#define AFEC_DisableChannel ( pAFEC,
dwChannel )
Value:
{\
(pAFEC)->AFEC_CHDR = (1 << (dwChannel));\
}

◆ AFEC_DisableIt

#define AFEC_DisableIt ( pAFEC,
dwMode )
Value:
{\
(pAFEC)->AFEC_IDR = (dwMode);\
}

◆ AFEC_EnableChannel

#define AFEC_EnableChannel ( pAFEC,
dwChannel )
Value:
{\
(pAFEC)->AFEC_CHER = (1 << (dwChannel));\
}

◆ AFEC_EnableDataReadyIt

#define AFEC_EnableDataReadyIt ( pAFEC)
Value:
((pAFEC)->AFEC_IER = AFEC_IER_DRDY)

◆ AFEC_EnableIt

#define AFEC_EnableIt ( pAFEC,
dwMode )
Value:
{\
(pAFEC)->AFEC_IER = (dwMode);\
}

◆ AFEC_GetChannelStatus

#define AFEC_GetChannelStatus ( pAFEC)
Value:
((pAFEC)->AFEC_CHSR)

◆ AFEC_GetCompareMode

#define AFEC_GetCompareMode ( pAFEC)
Value:
(((pAFEC)->AFEC_EMR)& (AFEC_EMR_CMPMODE_Msk))

◆ AFEC_GetExtModeReg

#define AFEC_GetExtModeReg ( pAFEC)
Value:
((pAFEC)->AFEC_EMR)

◆ AFEC_GetInterruptMaskStatus

#define AFEC_GetInterruptMaskStatus ( pAFEC)
Value:
((pAFEC)->AFEC_IMR)

◆ AFEC_GetLastConvertedData

#define AFEC_GetLastConvertedData ( pAFEC)
Value:
((pAFEC)->AFEC_LCDR)

◆ AFEC_GetModeReg

#define AFEC_GetModeReg ( pAFEC)
Value:
((pAFEC)->AFEC_MR)

◆ AFEC_GetStatus

#define AFEC_GetStatus ( pAFEC)
Value:
((pAFEC)->AFEC_ISR)

◆ AFEC_SetChannelGain

#define AFEC_SetChannelGain ( pAFEC,
dwMode )
Value:
{\
(pAFEC)->AFEC_CGR = dwMode;\
}

◆ AFEC_SetExtModeReg

#define AFEC_SetExtModeReg ( pAFEC,
mode )
Value:
((pAFEC)->AFEC_EMR = mode)

◆ AFEC_SetModeReg

#define AFEC_SetModeReg ( pAFEC,
mode )
Value:
((pAFEC)->AFEC_MR = mode)

◆ AFEC_StartConversion

#define AFEC_StartConversion ( pAFEC)
Value:
((pAFEC)->AFEC_CR = AFEC_CR_START)

Function Documentation

◆ AFEC_GetConvertedData()

uint32_t AFEC_GetConvertedData ( Afec * pAFE,
uint32_t dwChannel )
extern

Return the Channel Converted Data.

Parameters
pAFEPointer to an AFE instance.
dwChannelchannel to get converted value

◆ AFEC_Initialize()

void AFEC_Initialize ( Afec * pAFE,
uint32_t dwID )
extern

Initialize the AFE controller.

Parameters
pAFEPointer to an AFE instance.
dwIDAFE Index

◆ AFEC_SetAnalogChange()

void AFEC_SetAnalogChange ( Afec * pAFE,
uint8_t bEnDis )
extern

Set analog change. IF enabled, it allows different analog settings for each channel, otherwise, DIFF0, GAIN0 and OFF0 are used for all channels.

Parameters
pAFEPointer to an AFE instance.
bEnDisEnable/Disable.

◆ AFEC_SetAnalogControl()

void AFEC_SetAnalogControl ( Afec * pAFE,
uint32_t control )
extern

Set analog offset to be used for channel CSEL.

Parameters
afecBase address of the AFEC.
controlAnalog control value.

◆ AFEC_SetAnalogOffset()

void AFEC_SetAnalogOffset ( Afec * pAFE,
uint32_t dwChannel,
uint32_t aoffset )
extern

Set analog offset to be used for channel CSEL.

Parameters
afecBase address of the AFEC.
dwChannelAFEC channel number.
aoffsetAnalog offset value.

◆ AFEC_SetClock()

uint32_t AFEC_SetClock ( Afec * pAFE,
uint32_t dwClk,
uint32_t dwMck )
extern

Set AFE clock.

Parameters
pAFEPointer to an AFE instance.
dwPresprescale value
dwMckBoard MCK (Hz)
Returns
AFE clock

◆ AFEC_SetCompareChannel()

void AFEC_SetCompareChannel ( Afec * pAFE,
uint32_t dwChannel )
extern

Set compare channel.

Parameters
pAFEPointer to an AFE instance.
dwChannelchannel number to be set,16 for all channels

◆ AFEC_SetCompareMode()

void AFEC_SetCompareMode ( Afec * pAFE,
uint32_t dwMode )
extern

Set compare mode.

Parameters
pAFEPointer to an AFE instance.
dwModecompare mode

◆ AFEC_SetComparisonWindow()

void AFEC_SetComparisonWindow ( Afec * pAFE,
uint32_t dwHi_Lo )
extern

Set comparison window.

Parameters
pAFEPointer to an AFE instance.
dwHi_LoComparison Window

◆ AFEC_SetFastWakeup()

void AFEC_SetFastWakeup ( Afec * pAFE,
uint8_t bEnDis )
extern

Enable/Disable fast wake up.

Parameters
pAFEPointer to an AFE instance.
bEnDisEnable/Disable fast wake up in sleep mode.

◆ AFEC_SetSequence()

void AFEC_SetSequence ( Afec * pAFE,
uint32_t dwSEQ1,
uint32_t dwSEQ2 )
extern

Set channel sequence.

Parameters
pAFEPointer to an AFE instance.
dwSEQ1Sequence 1 ~ 8 channel number.
dwSEQ2Sequence 9 ~ 16 channel number.

◆ AFEC_SetSequenceByList()

void AFEC_SetSequenceByList ( Afec * pAFE,
uint8_t ucChList[],
uint8_t ucNumCh )
extern

Set channel sequence by given channel list.

Parameters
pAFEPointer to an AFE instance.
ucChListChannel list.
ucNumChNumber of channels in list.

◆ AFEC_SetSequenceMode()

void AFEC_SetSequenceMode ( Afec * pAFE,
uint8_t bEnDis )
extern

Enable/Disable sequence mode.

Parameters
pAFEPointer to an AFE instance.
bEnDisEnable/Disable sequence mode.

◆ AFEC_SetSleepMode()

void AFEC_SetSleepMode ( Afec * pAFE,
uint8_t bEnDis )
extern

Enable/Disable sleep mode.

Parameters
pAFEPointer to an AFE instance.
bEnDisEnable/Disable sleep mode.

◆ AFEC_SetStartupTime()

void AFEC_SetStartupTime ( Afec * pAFE,
uint32_t dwUs )
extern

Sets the AFE startup time.

Parameters
pAFEPointer to an AFE instance.
dwUsStartup time in uS.

◆ AFEC_SetTagEnable()

void AFEC_SetTagEnable ( Afec * pAFE,
uint8_t bEnDis )
extern

Set "TAG" mode, show channel number in last data or not.

Parameters
pAFEPointer to an AFE instance.
bEnDisEnable/Disable TAG value.

◆ AFEC_SetTiming()

void AFEC_SetTiming ( Afec * pAFE,
uint32_t dwStartup,
uint32_t dwTracking,
uint32_t dwSettling )
extern

Set AFE timing.

Parameters
pAFEPointer to an AFE instance.
dwStartupstartup value
dwTrackingtracking value
dwSettlingsettling value

◆ AFEC_SetTrackingTime()

void AFEC_SetTrackingTime ( Afec * pAFE,
uint32_t dwNs )
extern

Set AFE tracking time

Parameters
pAFEPointer to an AFE instance.
dwNsTracking time in nS.

◆ AFEC_SetTrigger()

void AFEC_SetTrigger ( Afec * pAFE,
uint32_t dwTrgSel )
extern

Set AFE trigger.

Parameters
pAFEPointer to an AFE instance.
dwTrgSelTrigger selection