Data Structures | Functions | Variables

adc.c File Reference

This file provides all the functionality provided by ADC driver module of Freescale MPC563 power-pc MCU. More...

#include "mpc563.h"
#include "m_common.h"
#include "m_qadc64.h"
#include "hal_types.h"
#include "adc_Cfg.h"
#include "adc.h"
Include dependency graph for adc.c:

Go to the source code of this file.

Data Structures

struct  QADC_CCW_Data
 This structure defines the data for each CCW and the Application call-back function for that conversion. More...
struct  QADC_Drv
 This structure holds all global data of teh ADC module. More...

Functions

INTERRUPT void ADC_MOD_A_Q1_CI_ISR (void)
INTERRUPT void ADC_MOD_A_Q2_CI_ISR (void)
INTERRUPT void ADC_MOD_A_Q1_PI_ISR (void)
INTERRUPT void ADC_MOD_A_Q2_PI_ISR (void)
INTERRUPT void ADC_MOD_B_Q1_CI_ISR (void)
INTERRUPT void ADC_MOD_B_Q2_CI_ISR (void)
INTERRUPT void ADC_MOD_B_Q1_PI_ISR (void)
INTERRUPT void ADC_MOD_B_Q2_PI_ISR (void)
void QADC_CompletionIntCB (QADC_Module_ID ModID)
void QADC_PauseIntCB (QADC_Module_ID ModID)
QADC_DrvOpStatus ADC_Init (QADC_ConvModConf *ModConf)
 This API will initialize a ADC converter module and start its operation.
QADC_DrvOpStatus ADC_Read (QADC_CCW_ApplResultData *ResultData)
 This API will read ADC conversion result value for the request client ID/ (CCW) as per the described result format.
QADC_IO_OpStatus QADC_PortConfig (QADC_Module_ID ModID, QADC_Ports PortID, QADC_PortConfigType Type)
 This API will help in configuraing any port A pins of any ADC converetr module in Input/ Output mode. Port B is always configured in input mode.
QADC_IO_OpStatus QADC_PortSet (QADC_Module_ID ModID, QADC_Ports PortID, QADC_PortVal Value)
 This API will help to set the value of any pin of port A to the defined value.
QADC_IO_OpStatus QADC_PortGet (QADC_Module_ID ModID, QADC_Ports PortID, QADC_PortVal *Value)
 This API will help to get the value of any pin of port A and B.

Variables

static QADC_Drv self [ADC_TOT_MOD]
 This global static variable holds ADC driver related data for each ADC converter module.
struct QADC64_tag *const ModRegAddr [ADC_TOT_MOD]
 This variable holds the address for register array of all the ADC converters.

Detailed Description

This file provides all the functionality provided by ADC driver module of Freescale MPC563 power-pc MCU.

Version:
1.0A - Initial Draft
Date:
25 June 2010
Version:
1.1A - Design changed to support run-time CCW addition and configuration
Date:
16 July 2010

Definition in file adc.c.


Function Documentation

QADC_DrvOpStatus ADC_Init ( QADC_ConvModConf ModConf )

This API will initialize a ADC converter module and start its operation.

Parameters:
ModConf- QADC converter module configuration data
Returns:
Driver operation status
  • ADC_OP_FAIL - Module Initialization failed
  • ADC_OP_INVALID_MOD_ID - Invalid Module ID
  • ADC_OP_SUCCESS - Module Initialized successfully
  • The followwing actions will be taken on each ADC converetr module
    • If the Module ID is valid,
      • It resets the ADC converter module status to uninitialized mode
      • Get the register array address for the ADC converter module
      • Update the Operation mode, Register access level from application
      • Update Queue-1 and Queue-2 interrupt priority
      • Update external MUX selection, presclar clock high and low time, and External Triggering types for Queue-1 and Queue-2
      • Update Queue-1 operational mode and single scan option
      • Update Queue-2 operational mode, single scan option, operation resume type and Queue-2 begin location in the queue
      • Configure the ADC converter module to Initialized mode

Definition at line 110 of file adc.c.

References ADC_DISABLE_STOP_MODE, ADC_DRV_INIT, ADC_DRV_UNINIT, ADC_ENABLE_FREEZE, ADC_MODE_LOCK_DISABLE, ADC_MODE_LOCK_ENABLE, ADC_OP_FAIL, ADC_OP_INVALID_MOD_ID, ADC_OP_SUCCESS, ADC_Q1_COMP_INT_ENABLE, ADC_Q1_PAUSE_INT_ENABLE, ADC_Q2_COMP_INT_ENABLE, ADC_Q2_PAUSE_INT_ENABLE, ADC_TOT_MOD, QADC64_tag::B, QADC_ConvModConf::ExtMux, QADC_ConvModConf::ExtTrigType, QADC_ConvModConf::ModID, QADC_ConvModConf::OpMode, QADC_ConvModConf::Q1_OpMode, QADC_ConvModConf::Q2_OpMode, QADC_ConvModConf::Q2_ResumeType, QADC64_tag::QACR0, QADC64_tag::QACR1, QADC64_tag::QACR2, QADC64_tag::QADC64INT, QADC64_tag::QADC64MCR, QADC_ConvModConf::RegAcc, QADC_ConvModConf::u8PresclClkHighTime, QADC_ConvModConf::u8PresclClkLowTime, QADC_ConvModConf::u8Q1IntPrio, QADC_ConvModConf::u8Q2Begin, and QADC_ConvModConf::u8Q2IntPrio.

INTERRUPT void ADC_MOD_A_Q1_CI_ISR ( void   )
INTERRUPT void ADC_MOD_A_Q1_PI_ISR ( void   )
INTERRUPT void ADC_MOD_A_Q2_CI_ISR ( void   )
INTERRUPT void ADC_MOD_A_Q2_PI_ISR ( void   )
INTERRUPT void ADC_MOD_B_Q1_CI_ISR ( void   )
INTERRUPT void ADC_MOD_B_Q1_PI_ISR ( void   )
INTERRUPT void ADC_MOD_B_Q2_CI_ISR ( void   )
INTERRUPT void ADC_MOD_B_Q2_PI_ISR ( void   )
QADC_DrvOpStatus ADC_Read ( QADC_CCW_ApplResultData ResultData )

This API will read ADC conversion result value for the request client ID/ (CCW) as per the described result format.

Parameters:
ResultData- Structure to hold user request data to read the ADC conversion result
Returns:
Operation status
  • ADC_OP_FAIL - Operation failed due to unknown reason
  • ADC_OP_SUCCESS - Operation success
  • ADC_OP_UNSUPP_RD_FMT - Unsupported result read format
  • ADC_OP_UNSUPP_STATE - Current state of driver does not allow this action. The analog conversion for the drive should be active before calling this API
  • ADC_OP_INVALID_CCW_ID - Invalid CCW ID provided by the user
  • ADC_OP_INVALID_MOD_ID - Invalid ADC converter module ID provided by the user
  • ADC_OP_INVALID_DATA - Invalid user Data
Note:
This API will only process the request, if the ADC conversion is started

Definition at line 197 of file adc.c.

References ADC_DRV_INIT, ADC_LEFT_JUST_SIGN, ADC_LEFT_JUST_UNSIGN, ADC_MOD_CCW_TOT, ADC_OP_FAIL, ADC_OP_INVALID_CCW_ID, ADC_OP_INVALID_DATA, ADC_OP_INVALID_MOD_ID, ADC_OP_SUCCESS, ADC_OP_UNSUPP_RD_FMT, ADC_OP_UNSUPP_STATE, ADC_RIGHT_JUST_UNSIGN, ADC_TOT_MOD, QADC64_tag::LJSRR, QADC64_tag::LJURR, QADC_CCW_ApplResultData::ModID, QADC_CCW_ApplResultData::QueueID, QADC64_tag::R, QADC_CCW_ApplResultData::ReadFormat, QADC64_tag::RJURR, and QADC_CCW_ApplResultData::u16Data.

void QADC_CompletionIntCB ( QADC_Module_ID  ModID )
void QADC_PauseIntCB ( QADC_Module_ID  ModID )
QADC_IO_OpStatus QADC_PortConfig ( QADC_Module_ID  ModID,
QADC_Ports  PortID,
QADC_PortConfigType  Type 
)

This API will help in configuraing any port A pins of any ADC converetr module in Input/ Output mode. Port B is always configured in input mode.

Parameters:
ModID- ADC converter module ID
PortID- Port ID to be configured
Type- Configuration type (Output/Input mode)
Returns:
Operation status
  • QADC_IO_INVALID_CFG_TYPE - Invalid configuration type selected
  • QADC_IO_INVALID_PORT_ID - Invalid port ID selected
  • QADC_IO_INVALID_MOD_ID - Invalid Module ID selected

Definition at line 270 of file adc.c.

References ADC_TOT_MOD, QADC64_tag::B, QADC64_tag::DDRQA, QADC_CONFIG_IN, QADC_CONFIG_OUT, QADC_IO_INVALID_CFG_TYPE, QADC_IO_INVALID_MOD_ID, QADC_IO_INVALID_PORT_ID, QADC_IO_SUCCESS, QADC_PORT_A0, QADC_PORT_A1, QADC_PORT_A2, QADC_PORT_A3, QADC_PORT_A4, QADC_PORT_A5, QADC_PORT_A6, and QADC_PORT_A7.

QADC_IO_OpStatus QADC_PortGet ( QADC_Module_ID  ModID,
QADC_Ports  PortID,
QADC_PortVal Value 
)

This API will help to get the value of any pin of port A and B.

Parameters:
ModID- ADC converter module ID
PortID- Port ID to be configured
Value- Value of the port to be set
Returns:
Operation status
  • QADC_IO_INVALID_CFG_TYPE - Invalid configuration type selected
  • QADC_IO_INVALID_PORT_ID - Invalid port ID selected
  • QADC_IO_INVALID_MOD_ID - Invalid Module ID selected

Definition at line 392 of file adc.c.

References ADC_TOT_MOD, QADC64_tag::B, QADC64_tag::PORTQA, QADC64_tag::PORTQB, QADC_IO_INVALID_MOD_ID, QADC_IO_INVALID_PORT_ID, QADC_IO_SUCCESS, QADC_PORT_A0, QADC_PORT_A1, QADC_PORT_A2, QADC_PORT_A3, QADC_PORT_A4, QADC_PORT_A5, QADC_PORT_A6, QADC_PORT_A7, QADC_PORT_B0, QADC_PORT_B1, QADC_PORT_B2, QADC_PORT_B3, QADC_PORT_B4, QADC_PORT_B5, QADC_PORT_B6, and QADC_PORT_B7.

QADC_IO_OpStatus QADC_PortSet ( QADC_Module_ID  ModID,
QADC_Ports  PortID,
QADC_PortVal  Value 
)

This API will help to set the value of any pin of port A to the defined value.

Parameters:
ModID- ADC converter module ID
PortID- Port ID to be configured
Value- Value of the port to be set
Returns:
Operation status
  • QADC_IO_INVALID_CFG_TYPE - Invalid configuration type selected
  • QADC_IO_INVALID_PORT_ID - Invalid port ID selected
  • QADC_IO_INVALID_MOD_ID - Invalid Module ID selected

Definition at line 334 of file adc.c.

References ADC_TOT_MOD, QADC64_tag::B, QADC64_tag::PORTQA, QADC_IO_INVALID_MOD_ID, QADC_IO_INVALID_PORT_ID, QADC_IO_SUCCESS, QADC_PORT_A0, QADC_PORT_A1, QADC_PORT_A2, QADC_PORT_A3, QADC_PORT_A4, QADC_PORT_A5, QADC_PORT_A6, and QADC_PORT_A7.


Variable Documentation

struct QADC64_tag* const ModRegAddr[ADC_TOT_MOD]
Initial value:

This variable holds the address for register array of all the ADC converters.

Definition at line 66 of file adc.c.

self [static]

This global static variable holds ADC driver related data for each ADC converter module.

Definition at line 62 of file adc.c.