123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- /*
- * Copyright (c) 2014, Freescale Semiconductor, Inc.
- * All rights reserved.
- *
- * THIS SOFTWARE IS PROVIDED BY FREESCALE "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 FREESCALE 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.
- */
- /*
- * WARNING! DO NOT EDIT THIS FILE DIRECTLY!
- *
- * This file was generated automatically and any changes may be lost.
- */
- #ifndef __HW_VREF_REGISTERS_H__
- #define __HW_VREF_REGISTERS_H__
- #include "regs.h"
- /*
- * MK64F12 VREF
- *
- * Voltage Reference
- *
- * Registers defined in this header file:
- * - HW_VREF_TRM - VREF Trim Register
- * - HW_VREF_SC - VREF Status and Control Register
- *
- * - hw_vref_t - Struct containing all module registers.
- */
- //! @name Module base addresses
- //@{
- #ifndef REGS_VREF_BASE
- #define HW_VREF_INSTANCE_COUNT (1U) //!< Number of instances of the VREF module.
- #define REGS_VREF_BASE (0x40074000U) //!< Base address for VREF.
- #endif
- //@}
- //-------------------------------------------------------------------------------------------
- // HW_VREF_TRM - VREF Trim Register
- //-------------------------------------------------------------------------------------------
- #ifndef __LANGUAGE_ASM__
- /*!
- * @brief HW_VREF_TRM - VREF Trim Register (RW)
- *
- * Reset value: 0x00U
- *
- * This register contains bits that contain the trim data for the Voltage
- * Reference.
- */
- typedef union _hw_vref_trm
- {
- uint8_t U;
- struct _hw_vref_trm_bitfields
- {
- uint8_t TRIM : 6; //!< [5:0] Trim bits
- uint8_t CHOPEN : 1; //!< [6] Chop oscillator enable. When set,
- //! internal chopping operation is enabled and the internal analog offset will
- //! be minimized.
- uint8_t RESERVED0 : 1; //!< [7]
- } B;
- } hw_vref_trm_t;
- #endif
- /*!
- * @name Constants and macros for entire VREF_TRM register
- */
- //@{
- #define HW_VREF_TRM_ADDR (REGS_VREF_BASE + 0x0U)
- #ifndef __LANGUAGE_ASM__
- #define HW_VREF_TRM (*(__IO hw_vref_trm_t *) HW_VREF_TRM_ADDR)
- #define HW_VREF_TRM_RD() (HW_VREF_TRM.U)
- #define HW_VREF_TRM_WR(v) (HW_VREF_TRM.U = (v))
- #define HW_VREF_TRM_SET(v) (HW_VREF_TRM_WR(HW_VREF_TRM_RD() | (v)))
- #define HW_VREF_TRM_CLR(v) (HW_VREF_TRM_WR(HW_VREF_TRM_RD() & ~(v)))
- #define HW_VREF_TRM_TOG(v) (HW_VREF_TRM_WR(HW_VREF_TRM_RD() ^ (v)))
- #endif
- //@}
- /*
- * Constants & macros for individual VREF_TRM bitfields
- */
- /*!
- * @name Register VREF_TRM, field TRIM[5:0] (RW)
- *
- * These bits change the resulting VREF by approximately +/- 0.5 mV for each
- * step. Min = minimum and max = maximum voltage reference output. For minimum and
- * maximum voltage reference output values, refer to the Data Sheet for this chip.
- *
- * Values:
- * - 000000 - Min
- * - 111111 - Max
- */
- //@{
- #define BP_VREF_TRM_TRIM (0U) //!< Bit position for VREF_TRM_TRIM.
- #define BM_VREF_TRM_TRIM (0x3FU) //!< Bit mask for VREF_TRM_TRIM.
- #define BS_VREF_TRM_TRIM (6U) //!< Bit field size in bits for VREF_TRM_TRIM.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_TRM_TRIM field.
- #define BR_VREF_TRM_TRIM (HW_VREF_TRM.B.TRIM)
- #endif
- //! @brief Format value for bitfield VREF_TRM_TRIM.
- #define BF_VREF_TRM_TRIM(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_TRM_TRIM), uint8_t) & BM_VREF_TRM_TRIM)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the TRIM field to a new value.
- #define BW_VREF_TRM_TRIM(v) (HW_VREF_TRM_WR((HW_VREF_TRM_RD() & ~BM_VREF_TRM_TRIM) | BF_VREF_TRM_TRIM(v)))
- #endif
- //@}
- /*!
- * @name Register VREF_TRM, field CHOPEN[6] (RW)
- *
- * This bit is set during factory trimming of the VREF voltage. This bit should
- * be written to 1 to achieve the performance stated in the data sheet.
- *
- * Values:
- * - 0 - Chop oscillator is disabled.
- * - 1 - Chop oscillator is enabled.
- */
- //@{
- #define BP_VREF_TRM_CHOPEN (6U) //!< Bit position for VREF_TRM_CHOPEN.
- #define BM_VREF_TRM_CHOPEN (0x40U) //!< Bit mask for VREF_TRM_CHOPEN.
- #define BS_VREF_TRM_CHOPEN (1U) //!< Bit field size in bits for VREF_TRM_CHOPEN.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_TRM_CHOPEN field.
- #define BR_VREF_TRM_CHOPEN (BITBAND_ACCESS8(HW_VREF_TRM_ADDR, BP_VREF_TRM_CHOPEN))
- #endif
- //! @brief Format value for bitfield VREF_TRM_CHOPEN.
- #define BF_VREF_TRM_CHOPEN(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_TRM_CHOPEN), uint8_t) & BM_VREF_TRM_CHOPEN)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the CHOPEN field to a new value.
- #define BW_VREF_TRM_CHOPEN(v) (BITBAND_ACCESS8(HW_VREF_TRM_ADDR, BP_VREF_TRM_CHOPEN) = (v))
- #endif
- //@}
- //-------------------------------------------------------------------------------------------
- // HW_VREF_SC - VREF Status and Control Register
- //-------------------------------------------------------------------------------------------
- #ifndef __LANGUAGE_ASM__
- /*!
- * @brief HW_VREF_SC - VREF Status and Control Register (RW)
- *
- * Reset value: 0x00U
- *
- * This register contains the control bits used to enable the internal voltage
- * reference and to select the buffer mode to be used.
- */
- typedef union _hw_vref_sc
- {
- uint8_t U;
- struct _hw_vref_sc_bitfields
- {
- uint8_t MODE_LV : 2; //!< [1:0] Buffer Mode selection
- uint8_t VREFST : 1; //!< [2] Internal Voltage Reference stable
- uint8_t RESERVED0 : 2; //!< [4:3]
- uint8_t ICOMPEN : 1; //!< [5] Second order curvature compensation
- //! enable
- uint8_t REGEN : 1; //!< [6] Regulator enable
- uint8_t VREFEN : 1; //!< [7] Internal Voltage Reference enable
- } B;
- } hw_vref_sc_t;
- #endif
- /*!
- * @name Constants and macros for entire VREF_SC register
- */
- //@{
- #define HW_VREF_SC_ADDR (REGS_VREF_BASE + 0x1U)
- #ifndef __LANGUAGE_ASM__
- #define HW_VREF_SC (*(__IO hw_vref_sc_t *) HW_VREF_SC_ADDR)
- #define HW_VREF_SC_RD() (HW_VREF_SC.U)
- #define HW_VREF_SC_WR(v) (HW_VREF_SC.U = (v))
- #define HW_VREF_SC_SET(v) (HW_VREF_SC_WR(HW_VREF_SC_RD() | (v)))
- #define HW_VREF_SC_CLR(v) (HW_VREF_SC_WR(HW_VREF_SC_RD() & ~(v)))
- #define HW_VREF_SC_TOG(v) (HW_VREF_SC_WR(HW_VREF_SC_RD() ^ (v)))
- #endif
- //@}
- /*
- * Constants & macros for individual VREF_SC bitfields
- */
- /*!
- * @name Register VREF_SC, field MODE_LV[1:0] (RW)
- *
- * These bits select the buffer modes for the Voltage Reference module.
- *
- * Values:
- * - 00 - Bandgap on only, for stabilization and startup
- * - 01 - High power buffer mode enabled
- * - 10 - Low-power buffer mode enabled
- * - 11 - Reserved
- */
- //@{
- #define BP_VREF_SC_MODE_LV (0U) //!< Bit position for VREF_SC_MODE_LV.
- #define BM_VREF_SC_MODE_LV (0x03U) //!< Bit mask for VREF_SC_MODE_LV.
- #define BS_VREF_SC_MODE_LV (2U) //!< Bit field size in bits for VREF_SC_MODE_LV.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_SC_MODE_LV field.
- #define BR_VREF_SC_MODE_LV (HW_VREF_SC.B.MODE_LV)
- #endif
- //! @brief Format value for bitfield VREF_SC_MODE_LV.
- #define BF_VREF_SC_MODE_LV(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_SC_MODE_LV), uint8_t) & BM_VREF_SC_MODE_LV)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the MODE_LV field to a new value.
- #define BW_VREF_SC_MODE_LV(v) (HW_VREF_SC_WR((HW_VREF_SC_RD() & ~BM_VREF_SC_MODE_LV) | BF_VREF_SC_MODE_LV(v)))
- #endif
- //@}
- /*!
- * @name Register VREF_SC, field VREFST[2] (RO)
- *
- * This bit indicates that the bandgap reference within the Voltage Reference
- * module has completed its startup and stabilization.
- *
- * Values:
- * - 0 - The module is disabled or not stable.
- * - 1 - The module is stable.
- */
- //@{
- #define BP_VREF_SC_VREFST (2U) //!< Bit position for VREF_SC_VREFST.
- #define BM_VREF_SC_VREFST (0x04U) //!< Bit mask for VREF_SC_VREFST.
- #define BS_VREF_SC_VREFST (1U) //!< Bit field size in bits for VREF_SC_VREFST.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_SC_VREFST field.
- #define BR_VREF_SC_VREFST (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_VREFST))
- #endif
- //@}
- /*!
- * @name Register VREF_SC, field ICOMPEN[5] (RW)
- *
- * This bit is set during factory trimming of the VREF voltage. This bit should
- * be written to 1 to achieve the performance stated in the data sheet.
- *
- * Values:
- * - 0 - Disabled
- * - 1 - Enabled
- */
- //@{
- #define BP_VREF_SC_ICOMPEN (5U) //!< Bit position for VREF_SC_ICOMPEN.
- #define BM_VREF_SC_ICOMPEN (0x20U) //!< Bit mask for VREF_SC_ICOMPEN.
- #define BS_VREF_SC_ICOMPEN (1U) //!< Bit field size in bits for VREF_SC_ICOMPEN.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_SC_ICOMPEN field.
- #define BR_VREF_SC_ICOMPEN (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_ICOMPEN))
- #endif
- //! @brief Format value for bitfield VREF_SC_ICOMPEN.
- #define BF_VREF_SC_ICOMPEN(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_SC_ICOMPEN), uint8_t) & BM_VREF_SC_ICOMPEN)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the ICOMPEN field to a new value.
- #define BW_VREF_SC_ICOMPEN(v) (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_ICOMPEN) = (v))
- #endif
- //@}
- /*!
- * @name Register VREF_SC, field REGEN[6] (RW)
- *
- * This bit is used to enable the internal 1.75 V regulator to produce a
- * constant internal voltage supply in order to reduce the sensitivity to external
- * supply noise and variation. If it is desired to keep the regulator enabled in very
- * low power modes, refer to the Chip Configuration details for a description on
- * how this can be achieved. This bit is set during factory trimming of the VREF
- * voltage. This bit should be written to 1 to achieve the performance stated in
- * the data sheet.
- *
- * Values:
- * - 0 - Internal 1.75 V regulator is disabled.
- * - 1 - Internal 1.75 V regulator is enabled.
- */
- //@{
- #define BP_VREF_SC_REGEN (6U) //!< Bit position for VREF_SC_REGEN.
- #define BM_VREF_SC_REGEN (0x40U) //!< Bit mask for VREF_SC_REGEN.
- #define BS_VREF_SC_REGEN (1U) //!< Bit field size in bits for VREF_SC_REGEN.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_SC_REGEN field.
- #define BR_VREF_SC_REGEN (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_REGEN))
- #endif
- //! @brief Format value for bitfield VREF_SC_REGEN.
- #define BF_VREF_SC_REGEN(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_SC_REGEN), uint8_t) & BM_VREF_SC_REGEN)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the REGEN field to a new value.
- #define BW_VREF_SC_REGEN(v) (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_REGEN) = (v))
- #endif
- //@}
- /*!
- * @name Register VREF_SC, field VREFEN[7] (RW)
- *
- * This bit is used to enable the bandgap reference within the Voltage Reference
- * module. After the VREF is enabled, turning off the clock to the VREF module
- * via the corresponding clock gate register will not disable the VREF. VREF must
- * be disabled via this VREFEN bit.
- *
- * Values:
- * - 0 - The module is disabled.
- * - 1 - The module is enabled.
- */
- //@{
- #define BP_VREF_SC_VREFEN (7U) //!< Bit position for VREF_SC_VREFEN.
- #define BM_VREF_SC_VREFEN (0x80U) //!< Bit mask for VREF_SC_VREFEN.
- #define BS_VREF_SC_VREFEN (1U) //!< Bit field size in bits for VREF_SC_VREFEN.
- #ifndef __LANGUAGE_ASM__
- //! @brief Read current value of the VREF_SC_VREFEN field.
- #define BR_VREF_SC_VREFEN (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_VREFEN))
- #endif
- //! @brief Format value for bitfield VREF_SC_VREFEN.
- #define BF_VREF_SC_VREFEN(v) (__REG_VALUE_TYPE((__REG_VALUE_TYPE((v), uint8_t) << BP_VREF_SC_VREFEN), uint8_t) & BM_VREF_SC_VREFEN)
- #ifndef __LANGUAGE_ASM__
- //! @brief Set the VREFEN field to a new value.
- #define BW_VREF_SC_VREFEN(v) (BITBAND_ACCESS8(HW_VREF_SC_ADDR, BP_VREF_SC_VREFEN) = (v))
- #endif
- //@}
- //-------------------------------------------------------------------------------------------
- // hw_vref_t - module struct
- //-------------------------------------------------------------------------------------------
- /*!
- * @brief All VREF module registers.
- */
- #ifndef __LANGUAGE_ASM__
- #pragma pack(1)
- typedef struct _hw_vref
- {
- __IO hw_vref_trm_t TRM; //!< [0x0] VREF Trim Register
- __IO hw_vref_sc_t SC; //!< [0x1] VREF Status and Control Register
- } hw_vref_t;
- #pragma pack()
- //! @brief Macro to access all VREF registers.
- //! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
- //! use the '&' operator, like <code>&HW_VREF</code>.
- #define HW_VREF (*(hw_vref_t *) REGS_VREF_BASE)
- #endif
- #endif // __HW_VREF_REGISTERS_H__
- // v22/130726/0.9
- // EOF
|