Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

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?

UserRevisionLine numberNew 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