Fork of Smoothie to port to mbed non-LPC targets.
Fork of Smoothie by
libs/LPC17xx/LPC17xxLib/inc/lpc17xx_dac.h@2:1df0b61d3b5a, 2014-02-28 (annotated)
- Committer:
- Michael J. Spencer
- Date:
- Fri Feb 28 18:52:52 2014 -0800
- Revision:
- 2:1df0b61d3b5a
Update to latest Smoothie.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Michael J. Spencer |
2:1df0b61d3b5a | 1 | /********************************************************************** |
Michael J. Spencer |
2:1df0b61d3b5a | 2 | * $Id$ lpc17xx_dac.h 2010-05-21 |
Michael J. Spencer |
2:1df0b61d3b5a | 3 | *//** |
Michael J. Spencer |
2:1df0b61d3b5a | 4 | * @file lpc17xx_dac.h |
Michael J. Spencer |
2:1df0b61d3b5a | 5 | * @brief Contains all macro definitions and function prototypes |
Michael J. Spencer |
2:1df0b61d3b5a | 6 | * support for Clock and Power Control firmware library on LPC17xx |
Michael J. Spencer |
2:1df0b61d3b5a | 7 | * @version 2.0 |
Michael J. Spencer |
2:1df0b61d3b5a | 8 | * @date 21. May. 2010 |
Michael J. Spencer |
2:1df0b61d3b5a | 9 | * @author NXP MCU SW Application Team |
Michael J. Spencer |
2:1df0b61d3b5a | 10 | * |
Michael J. Spencer |
2:1df0b61d3b5a | 11 | * Copyright(C) 2010, NXP Semiconductor |
Michael J. Spencer |
2:1df0b61d3b5a | 12 | * All rights reserved. |
Michael J. Spencer |
2:1df0b61d3b5a | 13 | * |
Michael J. Spencer |
2:1df0b61d3b5a | 14 | *********************************************************************** |
Michael J. Spencer |
2:1df0b61d3b5a | 15 | * Software that is described herein is for illustrative purposes only |
Michael J. Spencer |
2:1df0b61d3b5a | 16 | * which provides customers with programming information regarding the |
Michael J. Spencer |
2:1df0b61d3b5a | 17 | * products. This software is supplied "AS IS" without any warranties. |
Michael J. Spencer |
2:1df0b61d3b5a | 18 | * NXP Semiconductors assumes no responsibility or liability for the |
Michael J. Spencer |
2:1df0b61d3b5a | 19 | * use of the software, conveys no license or title under any patent, |
Michael J. Spencer |
2:1df0b61d3b5a | 20 | * copyright, or mask work right to the product. NXP Semiconductors |
Michael J. Spencer |
2:1df0b61d3b5a | 21 | * reserves the right to make changes in the software without |
Michael J. Spencer |
2:1df0b61d3b5a | 22 | * notification. NXP Semiconductors also make no representation or |
Michael J. Spencer |
2:1df0b61d3b5a | 23 | * warranty that such application will be suitable for the specified |
Michael J. Spencer |
2:1df0b61d3b5a | 24 | * use without further testing or modification. |
Michael J. Spencer |
2:1df0b61d3b5a | 25 | **********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 26 | |
Michael J. Spencer |
2:1df0b61d3b5a | 27 | /* Peripheral group ----------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 28 | /** @defgroup DAC DAC (Digital-to-Analog Controller) |
Michael J. Spencer |
2:1df0b61d3b5a | 29 | * @ingroup LPC1700CMSIS_FwLib_Drivers |
Michael J. Spencer |
2:1df0b61d3b5a | 30 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 31 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 32 | |
Michael J. Spencer |
2:1df0b61d3b5a | 33 | #ifndef LPC17XX_DAC_H_ |
Michael J. Spencer |
2:1df0b61d3b5a | 34 | #define LPC17XX_DAC_H_ |
Michael J. Spencer |
2:1df0b61d3b5a | 35 | |
Michael J. Spencer |
2:1df0b61d3b5a | 36 | /* Includes ------------------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 37 | #include "LPC17xx.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 38 | #include "lpc_types.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 39 | |
Michael J. Spencer |
2:1df0b61d3b5a | 40 | |
Michael J. Spencer |
2:1df0b61d3b5a | 41 | #ifdef __cplusplus |
Michael J. Spencer |
2:1df0b61d3b5a | 42 | extern "C" |
Michael J. Spencer |
2:1df0b61d3b5a | 43 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 44 | #endif |
Michael J. Spencer |
2:1df0b61d3b5a | 45 | |
Michael J. Spencer |
2:1df0b61d3b5a | 46 | /* Public Macros -------------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 47 | /** @defgroup DAC_Private_Macros DAC Private Macros |
Michael J. Spencer |
2:1df0b61d3b5a | 48 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 49 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 50 | |
Michael J. Spencer |
2:1df0b61d3b5a | 51 | /** After the selected settling time after this field is written with a |
Michael J. Spencer |
2:1df0b61d3b5a | 52 | new VALUE, the voltage on the AOUT pin (with respect to VSSA) |
Michael J. Spencer |
2:1df0b61d3b5a | 53 | is VALUE/1024 × VREF */ |
Michael J. Spencer |
2:1df0b61d3b5a | 54 | #define DAC_VALUE(n) ((uint32_t)((n&0x3FF)<<6)) |
Michael J. Spencer |
2:1df0b61d3b5a | 55 | /** If this bit = 0: The settling time of the DAC is 1 microsecond max, |
Michael J. Spencer |
2:1df0b61d3b5a | 56 | * and the maximum current is 700 microAmpere |
Michael J. Spencer |
2:1df0b61d3b5a | 57 | * If this bit = 1: The settling time of the DAC is 2.5 microsecond |
Michael J. Spencer |
2:1df0b61d3b5a | 58 | * and the maximum current is 350 microAmpere */ |
Michael J. Spencer |
2:1df0b61d3b5a | 59 | #define DAC_BIAS_EN ((uint32_t)(1<<16)) |
Michael J. Spencer |
2:1df0b61d3b5a | 60 | /** Value to reload interrupt DMA counter */ |
Michael J. Spencer |
2:1df0b61d3b5a | 61 | #define DAC_CCNT_VALUE(n) ((uint32_t)(n&0xffff)) |
Michael J. Spencer |
2:1df0b61d3b5a | 62 | |
Michael J. Spencer |
2:1df0b61d3b5a | 63 | /** DCAR double buffering */ |
Michael J. Spencer |
2:1df0b61d3b5a | 64 | #define DAC_DBLBUF_ENA ((uint32_t)(1<<1)) |
Michael J. Spencer |
2:1df0b61d3b5a | 65 | /** DCAR Time out count enable */ |
Michael J. Spencer |
2:1df0b61d3b5a | 66 | #define DAC_CNT_ENA ((uint32_t)(1<<2)) |
Michael J. Spencer |
2:1df0b61d3b5a | 67 | /** DCAR DMA access */ |
Michael J. Spencer |
2:1df0b61d3b5a | 68 | #define DAC_DMA_ENA ((uint32_t)(1<<3)) |
Michael J. Spencer |
2:1df0b61d3b5a | 69 | /** DCAR DACCTRL mask bit */ |
Michael J. Spencer |
2:1df0b61d3b5a | 70 | #define DAC_DACCTRL_MASK ((uint32_t)(0x0F)) |
Michael J. Spencer |
2:1df0b61d3b5a | 71 | |
Michael J. Spencer |
2:1df0b61d3b5a | 72 | /** Macro to determine if it is valid DAC peripheral */ |
Michael J. Spencer |
2:1df0b61d3b5a | 73 | #define PARAM_DACx(n) (((uint32_t *)n)==((uint32_t *)LPC_DAC)) |
Michael J. Spencer |
2:1df0b61d3b5a | 74 | |
Michael J. Spencer |
2:1df0b61d3b5a | 75 | /** Macro to check DAC current optional parameter */ |
Michael J. Spencer |
2:1df0b61d3b5a | 76 | #define PARAM_DAC_CURRENT_OPT(OPTION) ((OPTION == DAC_MAX_CURRENT_700uA)\ |
Michael J. Spencer |
2:1df0b61d3b5a | 77 | ||(OPTION == DAC_MAX_CURRENT_350uA)) |
Michael J. Spencer |
2:1df0b61d3b5a | 78 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 79 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 80 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 81 | /* Public Types --------------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 82 | /** @defgroup DAC_Public_Types DAC Public Types |
Michael J. Spencer |
2:1df0b61d3b5a | 83 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 84 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 85 | |
Michael J. Spencer |
2:1df0b61d3b5a | 86 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 87 | * @brief Current option in DAC configuration option */ |
Michael J. Spencer |
2:1df0b61d3b5a | 88 | typedef enum |
Michael J. Spencer |
2:1df0b61d3b5a | 89 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 90 | DAC_MAX_CURRENT_700uA = 0, /*!< The settling time of the DAC is 1 us max, |
Michael J. Spencer |
2:1df0b61d3b5a | 91 | and the maximum current is 700 uA */ |
Michael J. Spencer |
2:1df0b61d3b5a | 92 | DAC_MAX_CURRENT_350uA /*!< The settling time of the DAC is 2.5 us |
Michael J. Spencer |
2:1df0b61d3b5a | 93 | and the maximum current is 350 uA */ |
Michael J. Spencer |
2:1df0b61d3b5a | 94 | } DAC_CURRENT_OPT; |
Michael J. Spencer |
2:1df0b61d3b5a | 95 | |
Michael J. Spencer |
2:1df0b61d3b5a | 96 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 97 | * @brief Configuration for DAC converter control register */ |
Michael J. Spencer |
2:1df0b61d3b5a | 98 | typedef struct |
Michael J. Spencer |
2:1df0b61d3b5a | 99 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 100 | |
Michael J. Spencer |
2:1df0b61d3b5a | 101 | uint8_t DBLBUF_ENA; /**< |
Michael J. Spencer |
2:1df0b61d3b5a | 102 | -0: Disable DACR double buffering |
Michael J. Spencer |
2:1df0b61d3b5a | 103 | -1: when bit CNT_ENA, enable DACR double buffering feature |
Michael J. Spencer |
2:1df0b61d3b5a | 104 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 105 | uint8_t CNT_ENA; /*!< |
Michael J. Spencer |
2:1df0b61d3b5a | 106 | -0: Time out counter is disable |
Michael J. Spencer |
2:1df0b61d3b5a | 107 | -1: Time out conter is enable |
Michael J. Spencer |
2:1df0b61d3b5a | 108 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 109 | uint8_t DMA_ENA; /*!< |
Michael J. Spencer |
2:1df0b61d3b5a | 110 | -0: DMA access is disable |
Michael J. Spencer |
2:1df0b61d3b5a | 111 | -1: DMA burst request |
Michael J. Spencer |
2:1df0b61d3b5a | 112 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 113 | uint8_t RESERVED; |
Michael J. Spencer |
2:1df0b61d3b5a | 114 | |
Michael J. Spencer |
2:1df0b61d3b5a | 115 | } DAC_CONVERTER_CFG_Type; |
Michael J. Spencer |
2:1df0b61d3b5a | 116 | |
Michael J. Spencer |
2:1df0b61d3b5a | 117 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 118 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 119 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 120 | |
Michael J. Spencer |
2:1df0b61d3b5a | 121 | /* Public Functions ----------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 122 | /** @defgroup DAC_Public_Functions DAC Public Functions |
Michael J. Spencer |
2:1df0b61d3b5a | 123 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 124 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 125 | |
Michael J. Spencer |
2:1df0b61d3b5a | 126 | void DAC_Init(LPC_DAC_TypeDef *DACx); |
Michael J. Spencer |
2:1df0b61d3b5a | 127 | void DAC_UpdateValue (LPC_DAC_TypeDef *DACx, uint32_t dac_value); |
Michael J. Spencer |
2:1df0b61d3b5a | 128 | void DAC_SetBias (LPC_DAC_TypeDef *DACx,uint32_t bias); |
Michael J. Spencer |
2:1df0b61d3b5a | 129 | void DAC_ConfigDAConverterControl (LPC_DAC_TypeDef *DACx,DAC_CONVERTER_CFG_Type *DAC_ConverterConfigStruct); |
Michael J. Spencer |
2:1df0b61d3b5a | 130 | void DAC_SetDMATimeOut(LPC_DAC_TypeDef *DACx,uint32_t time_out); |
Michael J. Spencer |
2:1df0b61d3b5a | 131 | |
Michael J. Spencer |
2:1df0b61d3b5a | 132 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 133 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 134 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 135 | |
Michael J. Spencer |
2:1df0b61d3b5a | 136 | #ifdef __cplusplus |
Michael J. Spencer |
2:1df0b61d3b5a | 137 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 138 | #endif |
Michael J. Spencer |
2:1df0b61d3b5a | 139 | |
Michael J. Spencer |
2:1df0b61d3b5a | 140 | |
Michael J. Spencer |
2:1df0b61d3b5a | 141 | #endif /* LPC17XX_DAC_H_ */ |
Michael J. Spencer |
2:1df0b61d3b5a | 142 | |
Michael J. Spencer |
2:1df0b61d3b5a | 143 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 144 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 145 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 146 | |
Michael J. Spencer |
2:1df0b61d3b5a | 147 | /* --------------------------------- End Of File ------------------------------ */ |
Michael J. Spencer |
2:1df0b61d3b5a | 148 |