mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
514:7668256dbe61
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 514:7668256dbe61 1 /*******************************************************************************
mbed_official 514:7668256dbe61 2 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
mbed_official 514:7668256dbe61 3 *
mbed_official 514:7668256dbe61 4 * Permission is hereby granted, free of charge, to any person obtaining a
mbed_official 514:7668256dbe61 5 * copy of this software and associated documentation files (the "Software"),
mbed_official 514:7668256dbe61 6 * to deal in the Software without restriction, including without limitation
mbed_official 514:7668256dbe61 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
mbed_official 514:7668256dbe61 8 * and/or sell copies of the Software, and to permit persons to whom the
mbed_official 514:7668256dbe61 9 * Software is furnished to do so, subject to the following conditions:
mbed_official 514:7668256dbe61 10 *
mbed_official 514:7668256dbe61 11 * The above copyright notice and this permission notice shall be included
mbed_official 514:7668256dbe61 12 * in all copies or substantial portions of the Software.
mbed_official 514:7668256dbe61 13 *
mbed_official 514:7668256dbe61 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
mbed_official 514:7668256dbe61 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
mbed_official 514:7668256dbe61 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
mbed_official 514:7668256dbe61 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
mbed_official 514:7668256dbe61 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
mbed_official 514:7668256dbe61 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
mbed_official 514:7668256dbe61 20 * OTHER DEALINGS IN THE SOFTWARE.
mbed_official 514:7668256dbe61 21 *
mbed_official 514:7668256dbe61 22 * Except as contained in this notice, the name of Maxim Integrated
mbed_official 514:7668256dbe61 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
mbed_official 514:7668256dbe61 24 * Products, Inc. Branding Policy.
mbed_official 514:7668256dbe61 25 *
mbed_official 514:7668256dbe61 26 * The mere transfer of this software does not imply any licenses
mbed_official 514:7668256dbe61 27 * of trade secrets, proprietary technology, copyrights, patents,
mbed_official 514:7668256dbe61 28 * trademarks, maskwork rights, or any other form of intellectual
mbed_official 514:7668256dbe61 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
mbed_official 514:7668256dbe61 30 * ownership rights.
mbed_official 514:7668256dbe61 31 *******************************************************************************
mbed_official 514:7668256dbe61 32 */
mbed_official 514:7668256dbe61 33
mbed_official 514:7668256dbe61 34 #ifndef _MXC_DAC_REGS_H
mbed_official 514:7668256dbe61 35 #define _MXC_DAC_REGS_H
mbed_official 514:7668256dbe61 36
mbed_official 514:7668256dbe61 37 #ifdef __cplusplus
mbed_official 514:7668256dbe61 38 extern "C" {
mbed_official 514:7668256dbe61 39 #endif
mbed_official 514:7668256dbe61 40
mbed_official 514:7668256dbe61 41 #include <stdint.h>
mbed_official 514:7668256dbe61 42
mbed_official 514:7668256dbe61 43 /**
mbed_official 514:7668256dbe61 44 * @file dac_regs.h
mbed_official 514:7668256dbe61 45 * @addtogroup dac DAC
mbed_official 514:7668256dbe61 46 * @{
mbed_official 514:7668256dbe61 47 */
mbed_official 514:7668256dbe61 48
mbed_official 514:7668256dbe61 49 /**
mbed_official 514:7668256dbe61 50 * @brief Defines the DAC Operational Modes.
mbed_official 514:7668256dbe61 51 */
mbed_official 514:7668256dbe61 52 typedef enum {
mbed_official 514:7668256dbe61 53 /** DAC OpMode FIFO */
mbed_official 514:7668256dbe61 54 MXC_E_DAC_OP_MODE_FIFO = 0,
mbed_official 514:7668256dbe61 55 /** DAC OpMode Sample Count */
mbed_official 514:7668256dbe61 56 MXC_E_DAC_OP_MODE_DACSMPLCNT,
mbed_official 514:7668256dbe61 57 /** DAC OpMode DAC_REG Control */
mbed_official 514:7668256dbe61 58 MXC_E_DAC_OP_MODE_DAC_REG,
mbed_official 514:7668256dbe61 59 /** DAC OpMode Continuous */
mbed_official 514:7668256dbe61 60 MXC_E_DAC_OP_MODE_CONTINUOUS
mbed_official 514:7668256dbe61 61 } mxc_dac_op_mode_t;
mbed_official 514:7668256dbe61 62
mbed_official 514:7668256dbe61 63 /**
mbed_official 514:7668256dbe61 64 * @brief Defines the DAC Interpolation Options.
mbed_official 514:7668256dbe61 65 */
mbed_official 514:7668256dbe61 66 typedef enum {
mbed_official 514:7668256dbe61 67 /** DAC Interpolation is Disabled */
mbed_official 514:7668256dbe61 68 MXC_E_DAC_INTERP_MODE_DISABLED = 0,
mbed_official 514:7668256dbe61 69 /** DAC Interpolation 2:1 */
mbed_official 514:7668256dbe61 70 MXC_E_DAC_INTERP_MODE_2_TO_1,
mbed_official 514:7668256dbe61 71 /** DAC Interpolation 4:1 */
mbed_official 514:7668256dbe61 72 MXC_E_DAC_INTERP_MODE_4_TO_1,
mbed_official 514:7668256dbe61 73 /** DAC Interpolation 8:1 */
mbed_official 514:7668256dbe61 74 MXC_E_DAC_INTERP_MODE_8_TO_1
mbed_official 514:7668256dbe61 75 } mxc_dac_interp_mode_t;
mbed_official 514:7668256dbe61 76
mbed_official 514:7668256dbe61 77 /**
mbed_official 514:7668256dbe61 78 * @brief Defines the DAC Start Modes.
mbed_official 514:7668256dbe61 79 */
mbed_official 514:7668256dbe61 80 typedef enum {
mbed_official 514:7668256dbe61 81 /** Start on FIFO Not Empty */
mbed_official 514:7668256dbe61 82 MXC_E_DAC_START_MODE_FIFO_NOT_EMPTY = 0,
mbed_official 514:7668256dbe61 83 /** Start on ADC generated Start Strobe */
mbed_official 514:7668256dbe61 84 MXC_E_DAC_START_MODE_ADC_STROBE,
mbed_official 514:7668256dbe61 85 /** Start on DAC generated Start Strobe */
mbed_official 514:7668256dbe61 86 MXC_E_DAC_START_MODE_DAC_STROBE
mbed_official 514:7668256dbe61 87 } mxc_dac_start_mode_t;
mbed_official 514:7668256dbe61 88
mbed_official 514:7668256dbe61 89 /* Offset Register Description
mbed_official 514:7668256dbe61 90 ====== ================================================== */
mbed_official 514:7668256dbe61 91 typedef struct {
mbed_official 514:7668256dbe61 92 __IO uint32_t ctrl0; /* 0x0000 DAC Control Register 0 */
mbed_official 514:7668256dbe61 93 __IO uint32_t rate; /* 0x0004 DAC Output Rate Control */
mbed_official 514:7668256dbe61 94 __IO uint32_t ctrl1_int; /* 0x0008 DAC Control Register 1, Interrupt Flags and Enable */
mbed_official 514:7668256dbe61 95 __IO uint32_t reg; /* 0x000C DAC Data Register */
mbed_official 514:7668256dbe61 96 __IO uint32_t trm; /* 0x0010 DAC Trim Register */
mbed_official 514:7668256dbe61 97 } mxc_dac_regs_t;
mbed_official 514:7668256dbe61 98
mbed_official 514:7668256dbe61 99 /* Offset Register Description
mbed_official 514:7668256dbe61 100 ====== ================================================== */
mbed_official 514:7668256dbe61 101 typedef struct {
mbed_official 514:7668256dbe61 102 union {
mbed_official 514:7668256dbe61 103 __IO uint8_t output_8; /* 0x0000 Write to push values to DAC output FIFO */
mbed_official 514:7668256dbe61 104 __IO uint16_t output_16; /* 0x0000 Write to push values to DAC output FIFO */
mbed_official 514:7668256dbe61 105 };
mbed_official 514:7668256dbe61 106 } mxc_dac_fifo_t;
mbed_official 514:7668256dbe61 107
mbed_official 514:7668256dbe61 108 /*
mbed_official 514:7668256dbe61 109 Register offsets for module DAC12.
mbed_official 514:7668256dbe61 110 */
mbed_official 514:7668256dbe61 111 #define MXC_R_DAC_OFFS_CTRL0 ((uint32_t)0x00000000UL)
mbed_official 514:7668256dbe61 112 #define MXC_R_DAC_OFFS_RATE ((uint32_t)0x00000004UL)
mbed_official 514:7668256dbe61 113 #define MXC_R_DAC_OFFS_CTRL1_INT ((uint32_t)0x00000008UL)
mbed_official 514:7668256dbe61 114 #define MXC_R_DAC_FIFO_OFFS_OUTPUT ((uint32_t)0x00000000UL)
mbed_official 514:7668256dbe61 115
mbed_official 514:7668256dbe61 116 /*
mbed_official 514:7668256dbe61 117 Field positions and masks for module DAC.
mbed_official 514:7668256dbe61 118 */
mbed_official 514:7668256dbe61 119 #define MXC_F_DAC_CTRL0_FIFO_AE_CNT_POS 0
mbed_official 514:7668256dbe61 120 #define MXC_F_DAC_CTRL0_FIFO_AE_CNT ((uint32_t)(0x0000000FUL << MXC_F_DAC_CTRL0_FIFO_AE_CNT_POS))
mbed_official 514:7668256dbe61 121 #define MXC_F_DAC_CTRL0_FIFO_ALMOST_FULL_POS 5
mbed_official 514:7668256dbe61 122 #define MXC_F_DAC_CTRL0_FIFO_ALMOST_FULL ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_FIFO_ALMOST_FULL_POS))
mbed_official 514:7668256dbe61 123 #define MXC_F_DAC_CTRL0_FIFO_EMPTY_POS 6
mbed_official 514:7668256dbe61 124 #define MXC_F_DAC_CTRL0_FIFO_EMPTY ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_FIFO_EMPTY_POS))
mbed_official 514:7668256dbe61 125 #define MXC_F_DAC_CTRL0_FIFO_ALMOST_EMPTY_POS 7
mbed_official 514:7668256dbe61 126 #define MXC_F_DAC_CTRL0_FIFO_ALMOST_EMPTY ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_FIFO_ALMOST_EMPTY_POS))
mbed_official 514:7668256dbe61 127 #define MXC_F_DAC_CTRL0_INTERP_MODE_POS 8
mbed_official 514:7668256dbe61 128 #define MXC_F_DAC_CTRL0_INTERP_MODE ((uint32_t)(0x00000007UL << MXC_F_DAC_CTRL0_INTERP_MODE_POS))
mbed_official 514:7668256dbe61 129 #define MXC_F_DAC_CTRL0_FIFO_AF_CNT_POS 12
mbed_official 514:7668256dbe61 130 #define MXC_F_DAC_CTRL0_FIFO_AF_CNT ((uint32_t)(0x0000000FUL << MXC_F_DAC_CTRL0_FIFO_AF_CNT_POS))
mbed_official 514:7668256dbe61 131 #define MXC_F_DAC_CTRL0_START_MODE_POS 16
mbed_official 514:7668256dbe61 132 #define MXC_F_DAC_CTRL0_START_MODE ((uint32_t)(0x00000003UL << MXC_F_DAC_CTRL0_START_MODE_POS))
mbed_official 514:7668256dbe61 133 #define MXC_F_DAC_CTRL0_CPU_START_POS 20
mbed_official 514:7668256dbe61 134 #define MXC_F_DAC_CTRL0_CPU_START ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_CPU_START_POS))
mbed_official 514:7668256dbe61 135 #define MXC_F_DAC_CTRL0_OP_MODE_POS 24
mbed_official 514:7668256dbe61 136 #define MXC_F_DAC_CTRL0_OP_MODE ((uint32_t)(0x00000003UL << MXC_F_DAC_CTRL0_OP_MODE_POS))
mbed_official 514:7668256dbe61 137 #define MXC_F_DAC_CTRL0_POWER_MODE_1_0_POS 26
mbed_official 514:7668256dbe61 138 #define MXC_F_DAC_CTRL0_POWER_MODE_1_0 ((uint32_t)(0x00000003UL << MXC_F_DAC_CTRL0_POWER_MODE_1_0_POS))
mbed_official 514:7668256dbe61 139 #define MXC_F_DAC_CTRL0_POWER_ON_POS 28
mbed_official 514:7668256dbe61 140 #define MXC_F_DAC_CTRL0_POWER_ON ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_POWER_ON_POS))
mbed_official 514:7668256dbe61 141 #define MXC_F_DAC_CTRL0_CLOCK_GATE_EN_POS 29
mbed_official 514:7668256dbe61 142 #define MXC_F_DAC_CTRL0_CLOCK_GATE_EN ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_CLOCK_GATE_EN_POS))
mbed_official 514:7668256dbe61 143 #define MXC_F_DAC_CTRL0_POWER_MODE_2_POS 30
mbed_official 514:7668256dbe61 144 #define MXC_F_DAC_CTRL0_POWER_MODE_2 ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_POWER_MODE_2_POS))
mbed_official 514:7668256dbe61 145 #define MXC_F_DAC_CTRL0_RESET_POS 31
mbed_official 514:7668256dbe61 146 #define MXC_F_DAC_CTRL0_RESET ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL0_RESET_POS))
mbed_official 514:7668256dbe61 147
mbed_official 514:7668256dbe61 148 #define MXC_F_DAC_RATE_RATE_CNT_POS 0
mbed_official 514:7668256dbe61 149 #define MXC_F_DAC_RATE_RATE_CNT ((uint32_t)(0x0000FFFFUL << MXC_F_DAC_RATE_RATE_CNT_POS))
mbed_official 514:7668256dbe61 150 #define MXC_F_DAC_RATE_SAMPLE_CNT_POS 16
mbed_official 514:7668256dbe61 151 #define MXC_F_DAC_RATE_SAMPLE_CNT ((uint32_t)(0x0000FFFFUL << MXC_F_DAC_RATE_SAMPLE_CNT_POS))
mbed_official 514:7668256dbe61 152
mbed_official 514:7668256dbe61 153 #define MXC_F_DAC_CTRL1_INT_OUT_DONE_IF_POS 0
mbed_official 514:7668256dbe61 154 #define MXC_F_DAC_CTRL1_INT_OUT_DONE_IF ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_OUT_DONE_IF_POS))
mbed_official 514:7668256dbe61 155 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW_IF_POS 1
mbed_official 514:7668256dbe61 156 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW_IF ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_UNDERFLOW_IF_POS))
mbed_official 514:7668256dbe61 157 #define MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IF_POS 2
mbed_official 514:7668256dbe61 158 #define MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IF ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IF_POS))
mbed_official 514:7668256dbe61 159 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW_POS 3
mbed_official 514:7668256dbe61 160 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_UNDERFLOW_POS))
mbed_official 514:7668256dbe61 161 #define MXC_F_DAC_CTRL1_INT_OUT_DONE_IE_POS 16
mbed_official 514:7668256dbe61 162 #define MXC_F_DAC_CTRL1_INT_OUT_DONE_IE ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_OUT_DONE_IE_POS))
mbed_official 514:7668256dbe61 163 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW_IE_POS 17
mbed_official 514:7668256dbe61 164 #define MXC_F_DAC_CTRL1_INT_UNDERFLOW_IE ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_UNDERFLOW_IE_POS))
mbed_official 514:7668256dbe61 165 #define MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IE_POS 18
mbed_official 514:7668256dbe61 166 #define MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IE ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_ALMOST_EMPTY_IE_POS))
mbed_official 514:7668256dbe61 167 #define MXC_F_DAC_CTRL1_INT_AHB_CG_DISABLE_POS 28
mbed_official 514:7668256dbe61 168 #define MXC_F_DAC_CTRL1_INT_AHB_CG_DISABLE ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_AHB_CG_DISABLE_POS))
mbed_official 514:7668256dbe61 169 #define MXC_F_DAC_CTRL1_INT_APB_CG_DISABLE_POS 29
mbed_official 514:7668256dbe61 170 #define MXC_F_DAC_CTRL1_INT_APB_CG_DISABLE ((uint32_t)(0x00000001UL << MXC_F_DAC_CTRL1_INT_APB_CG_DISABLE_POS))
mbed_official 514:7668256dbe61 171
mbed_official 514:7668256dbe61 172 #ifdef __cplusplus
mbed_official 514:7668256dbe61 173 }
mbed_official 514:7668256dbe61 174 #endif
mbed_official 514:7668256dbe61 175
mbed_official 514:7668256dbe61 176 /**
mbed_official 514:7668256dbe61 177 * @}
mbed_official 514:7668256dbe61 178 */
mbed_official 514:7668256dbe61 179
mbed_official 514:7668256dbe61 180 #endif /* _DAC12_REGS_H */