347 lines
15 KiB
C
347 lines
15 KiB
C
/*
|
|
* -------------------------------------------
|
|
* MSP432 DriverLib - v3_40_00_10
|
|
* -------------------------------------------
|
|
*
|
|
* --COPYRIGHT--,BSD,BSD
|
|
* Copyright (c) 2016, Texas Instruments Incorporated
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* * Neither the name of Texas Instruments Incorporated nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
* --/COPYRIGHT--*/
|
|
#ifndef __REF_B_H__
|
|
#define __REF_B_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \addtogroup ref_api
|
|
//! @{
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#include <msp.h>
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// If building with a C++ compiler, make all of the definitions in this header
|
|
// have a C binding.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//The following are values that can be passed to Ref_setReferenceVoltage()
|
|
//in the referenceVoltageSelect parameter.
|
|
//
|
|
//*****************************************************************************
|
|
#define REF_A_VREF1_2V REF_A_CTL0_VSEL_0
|
|
#define REF_A_VREF1_45V REF_A_CTL0_VSEL_1
|
|
#define REF_A_VREF2_5V REF_A_CTL0_VSEL_3
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//The following are values that are returned by Ref_getBandgapMode().
|
|
//
|
|
//*****************************************************************************
|
|
#define REF_A_STATICMODE 0x0
|
|
#define REF_A_SAMPLEMODE REF_A_CTL0_BGMODE
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Sets the reference voltage for the voltage generator.
|
|
//!
|
|
//! \param referenceVoltageSelect is the desired voltage to generate for a
|
|
//! reference voltage.
|
|
//! Valid values are:
|
|
//! - \b REF_A_VREF1_2V [Default]
|
|
//! - \b REF_A_VREF1_45V
|
|
//! - \b REF_A_VREF2_5V
|
|
//! Modified bits are \b REFVSEL of \b REFCTL0 register.
|
|
//!
|
|
//! This function sets the reference voltage generated by the voltage generator
|
|
//! to be used by other peripherals. This reference voltage will only be valid
|
|
//! while the REF module is in control.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns \b REF_BUSY,
|
|
//! this function will have no effect.
|
|
//!
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_setReferenceVoltage(uint_fast8_t referenceVoltageSelect);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Disables the internal temperature sensor to save power consumption.
|
|
//!
|
|
//! This function is used to turn off the internal temperature sensor to save
|
|
//! on power consumption. The temperature sensor is enabled by default. Please
|
|
//! note, that giving ADC12 module control over the REF module, the state of the
|
|
//! temperature sensor is dependent on the controls of the ADC12 module.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! \b REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFTCOFF of \b REFCTL0 register.
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_disableTempSensor(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Enables the internal temperature sensor.
|
|
//!
|
|
//! This function is used to turn on the internal temperature sensor to use by
|
|
//! other peripherals. The temperature sensor is enabled by default.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! \b REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFTCOFF of \b REFCTL0 register.
|
|
//!
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_enableTempSensor(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Outputs the reference voltage to an output pin.
|
|
//!
|
|
//! This function is used to output the reference voltage being generated to an
|
|
//! output pin. Please note, the output pin is device specific. Please note,
|
|
//! that giving ADC12 module control over the REF module, the state of the
|
|
//! reference voltage as an output to a pin is dependent on the controls of the
|
|
//! ADC12 module.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! \b REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFOUT of \b REFCTL0 register.
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_enableReferenceVoltageOutput(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Disables the reference voltage as an output to a pin.
|
|
//!
|
|
//! This function is used to disables the reference voltage being generated to
|
|
//! be given to an output pin.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! \b REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFOUT of \b REFCTL0 register.
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_disableReferenceVoltageOutput(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Enables the reference voltage to be used by peripherals.
|
|
//!
|
|
//! This function is used to enable the generated reference voltage to be used
|
|
//! other peripherals or by an output pin, if enabled. Please note, that giving
|
|
//! ADC12 module control over the REF module, the state of the reference voltage
|
|
//! is dependent on the controls of the ADC12 module.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFON of \b REFCTL0 register.
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_enableReferenceVoltage(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Disables the reference voltage.
|
|
//!
|
|
//! This function is used to disable the generated reference voltage.
|
|
//! Please note, if the \link REF_A_isRefGenBusy() \endlink returns
|
|
//! \b REF_A_BUSY, this function will have no effect.
|
|
//!
|
|
//! Modified bits are \b REFON of \b REFCTL0 register.
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_disableReferenceVoltage(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the bandgap mode of the REF module.
|
|
//!
|
|
//! This function is used to return the bandgap mode of the REF module,
|
|
//! requested by the peripherals using the bandgap. If a peripheral requests
|
|
//! static mode, then the bandgap mode will be static for all modules, whereas
|
|
//! if all of the peripherals using the bandgap request sample mode, then that
|
|
//! will be the mode returned. Sample mode allows the bandgap to be active only
|
|
//! when necessary to save on power consumption, static mode requires the
|
|
//! bandgap to be active until no peripherals are using it anymore.
|
|
//!
|
|
//! \return The bandgap mode of the REF module:
|
|
//! - \b REF_A_STATICMODE if the bandgap is operating in static mode
|
|
//! - \b REF_A_SAMPLEMODE if the bandgap is operating in sample mode
|
|
//
|
|
//*****************************************************************************
|
|
extern uint_fast8_t REF_A_getBandgapMode(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the active status of the bandgap in the REF module.
|
|
//!
|
|
//! This function is used to return the active status of the bandgap in the REF
|
|
//! module. If the bandgap is in use by a peripheral, then the status will be
|
|
//! seen as active.
|
|
//!
|
|
//! \return true if the bandgap is being used, false otherwise
|
|
//
|
|
//*****************************************************************************
|
|
extern bool REF_A_isBandgapActive(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the busy status of the reference generator in the REF module.
|
|
//!
|
|
//! This function is used to return the busy status of the reference generator
|
|
//! in the REF module. If the ref. generator is in use by a peripheral, then the
|
|
//! status will be seen as busy.
|
|
//!
|
|
//! \return true if the reference generator is being used, false otherwise.
|
|
//*****************************************************************************
|
|
extern bool REF_A_isRefGenBusy(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the active status of the reference generator in the REF module.
|
|
//!
|
|
//! This function is used to return the active status of the reference generator
|
|
//! in the REF module. If the ref. generator is on and ready to use, then the
|
|
//! status will be seen as active.
|
|
//!
|
|
//! \return true if the reference generator is active, false otherwise.
|
|
//
|
|
//*****************************************************************************
|
|
extern bool REF_A_isRefGenActive(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the busy status of the reference generator in the REF module.
|
|
//!
|
|
//! This function is used to return the buys status of the buffered bandgap
|
|
//! voltage in the REF module. If the ref. generator is on and ready to use,
|
|
//! then the status will be seen as active.
|
|
//!
|
|
//! \return true if the buffered bandgap voltage is ready to be used, false
|
|
//! otherwise
|
|
//
|
|
//*****************************************************************************
|
|
extern bool REF_A_getBufferedBandgapVoltageStatus(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Returns the busy status of the variable reference voltage in the REF module.
|
|
//!
|
|
//! This function is used to return the buys status of the variable reference
|
|
//! voltage in the REF module. If the ref. generator is on and ready to use,
|
|
//! then the status will be seen as active.
|
|
//!
|
|
//! \return true if the variable bandgap voltage is ready to be used, false
|
|
//! otherwise
|
|
//
|
|
//*****************************************************************************
|
|
extern bool REF_A_getVariableReferenceVoltageStatus(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Enables the one-time trigger of the reference voltage.
|
|
//!
|
|
//! Triggers the one-time generation of the variable reference voltage. Once
|
|
//! the reference voltage request is set, this bit is cleared by hardware
|
|
//!
|
|
//! Modified bits are \b REFGENOT of \b REFCTL0 register.
|
|
//!
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_setReferenceVoltageOneTimeTrigger(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Enables the one-time trigger of the buffered bandgap voltage.
|
|
//!
|
|
//! Triggers the one-time generation of the buffered bandgap voltage. Once
|
|
//! the buffered bandgap voltage request is set, this bit is cleared by hardware
|
|
//!
|
|
//! Modified bits are \b RefGOT of \b REFCTL0 register.
|
|
//!
|
|
//! \return none
|
|
//
|
|
//*****************************************************************************
|
|
extern void REF_A_setBufferedBandgapVoltageOneTimeTrigger(void);
|
|
|
|
/* Defines for future devices that might have multiple instances */
|
|
#define REF_A_setReferenceVoltageMultipleInstance(a,b) REF_A_setReferenceVoltage(b)
|
|
#define REF_A_disableTempSensorMultipleInstance(a) REF_A_disableTempSensor()
|
|
#define REF_A_enableTempSensorMultipleInstance(a) REF_A_enableTempSensor()
|
|
#define REF_A_enableReferenceVoltageOutputMultipleInstance(a) REF_A_enableReferenceVoltageOutput()
|
|
#define REF_A_disableReferenceVoltageOutputMultipleInstance(a) REF_A_disableReferenceVoltageOutput()
|
|
#define REF_A_enableReferenceVoltageMultipleInstance(a) REF_A_enableReferenceVoltage()
|
|
#define REF_A_disableReferenceVoltageMultipleInstance(a) REF_A_disableReferenceVoltage()
|
|
#define REF_A_getBandgapModeMultipleInstance(a) REF_A_getBandgapMode()
|
|
#define REF_A_isBandgapActiveMultipleInstance(a) REF_A_isBandgapActive()
|
|
#define REF_A_isRefGenBusyMultipleInstance(a) REF_A_isRefGenBusy()
|
|
#define REF_A_isRefGenActiveMultipleInstance(a) REF_A_isRefGenActive()
|
|
#define REF_A_getBufferedBandgapVoltageStatusMultipleInstance(a) REF_A_getBufferedBandgapVoltageStatus()
|
|
#define REF_A_getVariableReferenceVoltageStatusMultipleInstance(a) REF_A_getVariableReferenceVoltageStatus()
|
|
#define REF_A_setReferenceVoltageOneTimeTriggerMultipleInstance(a) REF_A_setReferenceVoltageOneTimeTrigger()
|
|
#define REF_A_setBufferedBandgapVoltageOneTimeTriggerMultipleInstance(a) REF_A_setBufferedBandgapVoltageOneTimeTrigger()
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Mark the end of the C bindings section for C++ compilers.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Close the Doxygen group.
|
|
//! @}
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#endif // __REF_A_H__
|