/* --COPYRIGHT--,BSD | |
* Copyright (c) 2014, 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--*/ | |
//***************************************************************************** | |
// | |
// ref_a.h - Driver for the REF_A Module. | |
// | |
//***************************************************************************** | |
#ifndef __MSP430WARE_REF_A_H__ | |
#define __MSP430WARE_REF_A_H__ | |
#include "inc/hw_memmap.h" | |
#ifdef __MSP430_HAS_REF_A__ | |
//***************************************************************************** | |
// | |
// 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 the referenceVoltageSelect | |
// parameter for functions: Ref_A_setReferenceVoltage(). | |
// | |
//***************************************************************************** | |
#define REF_A_VREF1_2V (REFVSEL_0) | |
#define REF_A_VREF2_0V (REFVSEL_1) | |
#define REF_A_VREF2_5V (REFVSEL_2) | |
//***************************************************************************** | |
// | |
// The following are values that can be passed toThe following are values that | |
// can be returned by the Ref_A_isBandgapActive() function and the | |
// Ref_A_isRefGenActive() function. | |
// | |
//***************************************************************************** | |
#define REF_A_ACTIVE true | |
#define REF_A_INACTIVE false | |
//***************************************************************************** | |
// | |
// The following are values that can be passed toThe following are values that | |
// can be returned by the Ref_A_getBandgapMode() function. | |
// | |
//***************************************************************************** | |
#define REF_A_STATICMODE 0x00 | |
#define REF_A_SAMPLEMODE BGMODE | |
//***************************************************************************** | |
// | |
// The following are values that can be passed toThe following are values that | |
// can be returned by the Ref_A_isRefGenBusy() function. | |
// | |
//***************************************************************************** | |
#define REF_A_NOTBUSY 0x00 | |
#define REF_A_BUSY REFGENBUSY | |
//***************************************************************************** | |
// | |
// The following are values that can be passed toThe following are values that | |
// can be returned by the Ref_A_isVariableReferenceVoltageOutputReady() | |
// function and the Ref_A_isBufferedBandgapVoltageReady() function. | |
// | |
//***************************************************************************** | |
#define REF_A_NOTREADY false | |
#define REF_A_READY true | |
//***************************************************************************** | |
// | |
// Prototypes for the APIs. | |
// | |
//***************************************************************************** | |
//***************************************************************************** | |
// | |
//! \brief Sets the reference voltage for the voltage generator. | |
//! | |
//! 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_A module is in control. Please note, if the | |
//! Ref_A_isRefGenBusy() returns Ref_A_BUSY, this function will have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! \param referenceVoltageSelect is the desired voltage to generate for a | |
//! reference voltage. | |
//! Valid values are: | |
//! - \b REF_A_VREF1_2V [Default] | |
//! - \b REF_A_VREF2_0V | |
//! - \b REF_A_VREF2_5V | |
//! \n Modified bits are \b REFVSEL of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_setReferenceVoltage(uint16_t baseAddress, | |
uint8_t referenceVoltageSelect); | |
//***************************************************************************** | |
// | |
//! \brief 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_A module, the state of | |
//! the temperature sensor is dependent on the controls of the ADC12 module. | |
//! Please note, if the Ref_A_isRefGenBusy() returns Ref_A_BUSY, this function | |
//! will have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFTCOFF of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_disableTempSensor(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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 Ref_A_isRefGenBusy() returns Ref_A_BUSY, this function will | |
//! have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFTCOFF of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_enableTempSensor(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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_A 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 Ref_A_isRefGenBusy() returns Ref_A_BUSY, | |
//! this function will have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFOUT of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_enableReferenceVoltageOutput(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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 Ref_A_isRefGenBusy() returns | |
//! Ref_A_BUSY, this function will have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFOUT of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_disableReferenceVoltageOutput(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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_A module, the state of the reference | |
//! voltage is dependent on the controls of the ADC12 module. Please note, if | |
//! the Ref_A_isRefGenBusy() returns Ref_A_BUSY, this function will have no | |
//! effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFON of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_enableReferenceVoltage(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Disables the reference voltage. | |
//! | |
//! This function is used to disable the generated reference voltage. Please | |
//! note, if the Ref_A_isRefGenBusy() returns Ref_A_BUSY, this function will | |
//! have no effect. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFON of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_disableReferenceVoltage(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the bandgap mode of the Ref_A module. | |
//! | |
//! This function is used to return the bandgap mode of the Ref_A 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. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_STATICMODE if the bandgap is operating in static mode | |
//! - \b Ref_A_SAMPLEMODE if the bandgap is operating in sample mode | |
//! \n indicating the bandgap mode of the module | |
// | |
//***************************************************************************** | |
extern uint16_t Ref_A_getBandgapMode(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the active status of the bandgap in the Ref_A module. | |
//! | |
//! This function is used to return the active status of the bandgap in the | |
//! Ref_A module. If the bandgap is in use by a peripheral, then the status | |
//! will be seen as active. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_ACTIVE if active | |
//! - \b Ref_A_INACTIVE if not active | |
//! \n indicating the bandgap active status of the module | |
// | |
//***************************************************************************** | |
extern bool Ref_A_isBandgapActive(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the busy status of the reference generator in the Ref_A | |
//! module. | |
//! | |
//! This function is used to return the busy status of the reference generator | |
//! in the Ref_A module. If the ref generator is in use by a peripheral, then | |
//! the status will be seen as busy. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_NOTBUSY if the reference generator is not being used | |
//! - \b Ref_A_BUSY if the reference generator is being used, | |
//! disallowing changes to be made to the Ref_A module controls | |
//! \n indicating the reference generator busy status of the module | |
// | |
//***************************************************************************** | |
extern uint16_t Ref_A_isRefGenBusy(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the active status of the reference generator in the Ref_A | |
//! module. | |
//! | |
//! This function is used to return the active status of the reference | |
//! generator in the Ref_A module. If the ref generator is on and ready to use, | |
//! then the status will be seen as active. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_ACTIVE if active | |
//! - \b Ref_A_INACTIVE if not active | |
//! \n indicating the reference generator active status of the module | |
// | |
//***************************************************************************** | |
extern bool Ref_A_isRefGenActive(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the busy status of the reference generator in the Ref_A | |
//! module. | |
//! | |
//! This function is used to return the buys status of the buffered bandgap | |
//! voltage in the Ref_A module. If the ref generator is on and ready to use, | |
//! then the status will be seen as active. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_NOTREADY if NOT ready to be used | |
//! - \b Ref_A_READY if ready to be used | |
//! \n indicating the the busy status of the reference generator in the | |
//! module | |
// | |
//***************************************************************************** | |
extern bool Ref_A_isBufferedBandgapVoltageReady(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief Returns the busy status of the variable reference voltage in the | |
//! Ref_A module. | |
//! | |
//! This function is used to return the busy status of the variable reference | |
//! voltage in the Ref_A module. If the ref generator is on and ready to use, | |
//! then the status will be seen as active. | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! \return One of the following: | |
//! - \b Ref_A_NOTREADY if NOT ready to be used | |
//! - \b Ref_A_READY if ready to be used | |
//! \n indicating the the busy status of the variable reference voltage | |
//! in the module | |
// | |
//***************************************************************************** | |
extern bool Ref_A_isVariableReferenceVoltageOutputReady(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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 | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFGENOT of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_setReferenceVoltageOneTimeTrigger(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
//! \brief 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 | |
//! | |
//! \param baseAddress is the base address of the REF_A module. | |
//! | |
//! Modified bits are \b REFBGOT of \b REFCTL0 register. | |
//! | |
//! \return None | |
// | |
//***************************************************************************** | |
extern void Ref_A_setBufferedBandgapVoltageOneTimeTrigger(uint16_t baseAddress); | |
//***************************************************************************** | |
// | |
// Mark the end of the C bindings section for C++ compilers. | |
// | |
//***************************************************************************** | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#endif // __MSP430WARE_REF_A_H__ |