MCUXpresso SDK API Reference Manual  Rev 2.12.1
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
VREF: Voltage Reference Driver

Overview

The MCUXpresso SDK provides a peripheral driver for the Crossbar Voltage Reference (VREF) block of MCUXpresso SDK devices.

The Voltage Reference(VREF) supplies an accurate 1.2 V voltage output that can be trimmed in 0.5 mV steps. VREF can be used in applications to provide a reference voltage to external devices and to internal analog peripherals, such as the ADC, DAC, or CMP. The voltage reference has operating modes that provide different levels of supply rejection and power consumption.

VREF functional Operation

To configure the VREF driver, configure vref_config_t structure in one of two ways.

  1. Use the VREF_GetDefaultConfig() function.
  2. Set the parameter in the vref_config_t structure.

To initialize the VREF driver, call the VREF_Init() function and pass a pointer to the vref_config_t structure.

To de-initialize the VREF driver, call the VREF_Deinit() function.

Typical use case and example

This example shows how to generate a reference voltage by using the VREF module.

Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/vref

Data Structures

struct  vref_config_t
 The description structure for the VREF module. More...
 

Enumerations

enum  vref_buffer_mode_t {
  kVREF_ModeBandgapOnly = 0U,
  kVREF_ModeTightRegulationBuffer = 2U
}
 VREF modes. More...
 

Driver version

#define FSL_VREF_DRIVER_VERSION   (MAKE_VERSION(2, 1, 2))
 Version 2.1.2. More...
 

VREF functional operation

void VREF_Init (VREF_Type *base, const vref_config_t *config)
 Enables the clock gate and configures the VREF module according to the configuration structure. More...
 
void VREF_Deinit (VREF_Type *base)
 Stops and disables the clock for the VREF module. More...
 
void VREF_GetDefaultConfig (vref_config_t *config)
 Initializes the VREF configuration structure. More...
 
void VREF_SetTrimVal (VREF_Type *base, uint8_t trimValue)
 Sets a TRIM value for the reference voltage. More...
 
static uint8_t VREF_GetTrimVal (VREF_Type *base)
 Reads the value of the TRIM meaning output voltage. More...
 

Data Structure Documentation

struct vref_config_t

Data Fields

vref_buffer_mode_t bufferMode
 Buffer mode selection.
 

Macro Definition Documentation

#define FSL_VREF_DRIVER_VERSION   (MAKE_VERSION(2, 1, 2))

Enumeration Type Documentation

Enumerator
kVREF_ModeBandgapOnly 

Bandgap on only, for stabilization and startup.

kVREF_ModeTightRegulationBuffer 

Tight regulation buffer enabled.

Function Documentation

void VREF_Init ( VREF_Type *  base,
const vref_config_t config 
)

This function must be called before calling all other VREF driver functions, read/write registers, and configurations with user-defined settings. The example below shows how to set up vref_config_t parameters and how to call the VREF_Init function by passing in these parameters. This is an example.

* vref_config_t vrefConfig;
* vrefConfig.bufferMode = kVREF_ModeHighPowerBuffer;
* vrefConfig.enableExternalVoltRef = false;
* vrefConfig.enableLowRef = false;
* VREF_Init(VREF, &vrefConfig);
*
Parameters
baseVREF peripheral address.
configPointer to the configuration structure.
void VREF_Deinit ( VREF_Type *  base)

This function should be called to shut down the module. This is an example.

* vref_config_t vrefUserConfig;
* VREF_Init(VREF);
* VREF_GetDefaultConfig(&vrefUserConfig);
* ...
* VREF_Deinit(VREF);
*
Parameters
baseVREF peripheral address.
void VREF_GetDefaultConfig ( vref_config_t config)

This function initializes the VREF configuration structure to default values. This is an example.

* vrefConfig->bufferMode = kVREF_ModeHighPowerBuffer;
* vrefConfig->enableExternalVoltRef = false;
* vrefConfig->enableLowRef = false;
*
Parameters
configPointer to the initialization structure.
void VREF_SetTrimVal ( VREF_Type *  base,
uint8_t  trimValue 
)

This function sets a TRIM value for the reference voltage. Note that the TRIM value maximum is 0x3F.

Parameters
baseVREF peripheral address.
trimValueValue of the trim register to set the output reference voltage (maximum 0x3F (6-bit)).
static uint8_t VREF_GetTrimVal ( VREF_Type *  base)
inlinestatic

This function gets the TRIM value from the TRM register.

Parameters
baseVREF peripheral address.
Returns
Six-bit value of trim setting.