Fork of the official mbed C/C SDK provides the software platform and libraries to build your applications for RenBED.

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
Kojto
Date:
Wed Jan 13 09:48:29 2016 +0000
Revision:
112:6f327212ef96
Release 112 of the mbed library

Changes:
- new platforms - STM32 B96B F446, MOTE_L152RC
- nrf51 - fix serial init bug (character sent)
- stm all devices - fix RTC clocking in the init
- stm f0 - SystemInit clock fix, for SetVector()
- RawSerial - fix for microlib (vsnprintf with size 0)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 112:6f327212ef96 1 /**
Kojto 112:6f327212ef96 2 ******************************************************************************
Kojto 112:6f327212ef96 3 * @file stm32l1xx_ll_fsmc.h
Kojto 112:6f327212ef96 4 * @author MCD Application Team
Kojto 112:6f327212ef96 5 * @version V1.0.0
Kojto 112:6f327212ef96 6 * @date 5-September-2014
Kojto 112:6f327212ef96 7 * @brief Header file of FSMC HAL module.
Kojto 112:6f327212ef96 8 ******************************************************************************
Kojto 112:6f327212ef96 9 * @attention
Kojto 112:6f327212ef96 10 *
Kojto 112:6f327212ef96 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Kojto 112:6f327212ef96 12 *
Kojto 112:6f327212ef96 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 112:6f327212ef96 14 * are permitted provided that the following conditions are met:
Kojto 112:6f327212ef96 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 112:6f327212ef96 16 * this list of conditions and the following disclaimer.
Kojto 112:6f327212ef96 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 112:6f327212ef96 18 * this list of conditions and the following disclaimer in the documentation
Kojto 112:6f327212ef96 19 * and/or other materials provided with the distribution.
Kojto 112:6f327212ef96 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 112:6f327212ef96 21 * may be used to endorse or promote products derived from this software
Kojto 112:6f327212ef96 22 * without specific prior written permission.
Kojto 112:6f327212ef96 23 *
Kojto 112:6f327212ef96 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 112:6f327212ef96 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 112:6f327212ef96 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 112:6f327212ef96 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 112:6f327212ef96 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 112:6f327212ef96 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 112:6f327212ef96 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 112:6f327212ef96 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 112:6f327212ef96 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 112:6f327212ef96 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 112:6f327212ef96 34 *
Kojto 112:6f327212ef96 35 ******************************************************************************
Kojto 112:6f327212ef96 36 */
Kojto 112:6f327212ef96 37
Kojto 112:6f327212ef96 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 112:6f327212ef96 39 #ifndef __STM32L1xx_LL_FSMC_H
Kojto 112:6f327212ef96 40 #define __STM32L1xx_LL_FSMC_H
Kojto 112:6f327212ef96 41
Kojto 112:6f327212ef96 42 #ifdef __cplusplus
Kojto 112:6f327212ef96 43 extern "C" {
Kojto 112:6f327212ef96 44 #endif
Kojto 112:6f327212ef96 45
Kojto 112:6f327212ef96 46 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
Kojto 112:6f327212ef96 47
Kojto 112:6f327212ef96 48 /* Includes ------------------------------------------------------------------*/
Kojto 112:6f327212ef96 49 #include "stm32l1xx_hal_def.h"
Kojto 112:6f327212ef96 50
Kojto 112:6f327212ef96 51 /** @addtogroup STM32L1xx_HAL_Driver
Kojto 112:6f327212ef96 52 * @{
Kojto 112:6f327212ef96 53 */
Kojto 112:6f327212ef96 54
Kojto 112:6f327212ef96 55 /** @addtogroup FSMC_LL
Kojto 112:6f327212ef96 56 * @{
Kojto 112:6f327212ef96 57 */
Kojto 112:6f327212ef96 58
Kojto 112:6f327212ef96 59 /* Exported typedef ----------------------------------------------------------*/
Kojto 112:6f327212ef96 60
Kojto 112:6f327212ef96 61 /** @defgroup FSMC_NORSRAM_Exported_typedef FSMC NOR/SRAM Exported typedef
Kojto 112:6f327212ef96 62 * @{
Kojto 112:6f327212ef96 63 */
Kojto 112:6f327212ef96 64
Kojto 112:6f327212ef96 65 #define FSMC_NORSRAM_TYPEDEF FSMC_Bank1_TypeDef
Kojto 112:6f327212ef96 66 #define FSMC_NORSRAM_EXTENDED_TYPEDEF FSMC_Bank1E_TypeDef
Kojto 112:6f327212ef96 67
Kojto 112:6f327212ef96 68 #define FSMC_NORSRAM_DEVICE FSMC_Bank1
Kojto 112:6f327212ef96 69 #define FSMC_NORSRAM_EXTENDED_DEVICE FSMC_Bank1E
Kojto 112:6f327212ef96 70
Kojto 112:6f327212ef96 71 /**
Kojto 112:6f327212ef96 72 * @brief FSMC_NORSRAM Configuration Structure definition
Kojto 112:6f327212ef96 73 */
Kojto 112:6f327212ef96 74 typedef struct
Kojto 112:6f327212ef96 75 {
Kojto 112:6f327212ef96 76 uint32_t NSBank; /*!< Specifies the NORSRAM memory device that will be used.
Kojto 112:6f327212ef96 77 This parameter can be a value of @ref FSMC_NORSRAM_Bank */
Kojto 112:6f327212ef96 78
Kojto 112:6f327212ef96 79 uint32_t DataAddressMux; /*!< Specifies whether the address and data values are
Kojto 112:6f327212ef96 80 multiplexed on the data bus or not.
Kojto 112:6f327212ef96 81 This parameter can be a value of @ref FSMC_Data_Address_Bus_Multiplexing */
Kojto 112:6f327212ef96 82
Kojto 112:6f327212ef96 83 uint32_t MemoryType; /*!< Specifies the type of external memory attached to
Kojto 112:6f327212ef96 84 the corresponding memory device.
Kojto 112:6f327212ef96 85 This parameter can be a value of @ref FSMC_Memory_Type */
Kojto 112:6f327212ef96 86
Kojto 112:6f327212ef96 87 uint32_t MemoryDataWidth; /*!< Specifies the external memory device width.
Kojto 112:6f327212ef96 88 This parameter can be a value of @ref FSMC_NORSRAM_Data_Width */
Kojto 112:6f327212ef96 89
Kojto 112:6f327212ef96 90 uint32_t BurstAccessMode; /*!< Enables or disables the burst access mode for Flash memory,
Kojto 112:6f327212ef96 91 valid only with synchronous burst Flash memories.
Kojto 112:6f327212ef96 92 This parameter can be a value of @ref FSMC_Burst_Access_Mode */
Kojto 112:6f327212ef96 93
Kojto 112:6f327212ef96 94 uint32_t WaitSignalPolarity; /*!< Specifies the wait signal polarity, valid only when accessing
Kojto 112:6f327212ef96 95 the Flash memory in burst mode.
Kojto 112:6f327212ef96 96 This parameter can be a value of @ref FSMC_Wait_Signal_Polarity */
Kojto 112:6f327212ef96 97
Kojto 112:6f327212ef96 98 uint32_t WrapMode; /*!< Enables or disables the Wrapped burst access mode for Flash
Kojto 112:6f327212ef96 99 memory, valid only when accessing Flash memories in burst mode.
Kojto 112:6f327212ef96 100 This parameter can be a value of @ref FSMC_Wrap_Mode */
Kojto 112:6f327212ef96 101
Kojto 112:6f327212ef96 102 uint32_t WaitSignalActive; /*!< Specifies if the wait signal is asserted by the memory one
Kojto 112:6f327212ef96 103 clock cycle before the wait state or during the wait state,
Kojto 112:6f327212ef96 104 valid only when accessing memories in burst mode.
Kojto 112:6f327212ef96 105 This parameter can be a value of @ref FSMC_Wait_Timing */
Kojto 112:6f327212ef96 106
Kojto 112:6f327212ef96 107 uint32_t WriteOperation; /*!< Enables or disables the write operation in the selected device by the FSMC.
Kojto 112:6f327212ef96 108 This parameter can be a value of @ref FSMC_Write_Operation */
Kojto 112:6f327212ef96 109
Kojto 112:6f327212ef96 110 uint32_t WaitSignal; /*!< Enables or disables the wait state insertion via wait
Kojto 112:6f327212ef96 111 signal, valid for Flash memory access in burst mode.
Kojto 112:6f327212ef96 112 This parameter can be a value of @ref FSMC_Wait_Signal */
Kojto 112:6f327212ef96 113
Kojto 112:6f327212ef96 114 uint32_t ExtendedMode; /*!< Enables or disables the extended mode.
Kojto 112:6f327212ef96 115 This parameter can be a value of @ref FSMC_Extended_Mode */
Kojto 112:6f327212ef96 116
Kojto 112:6f327212ef96 117 uint32_t AsynchronousWait; /*!< Enables or disables wait signal during asynchronous transfers,
Kojto 112:6f327212ef96 118 valid only with asynchronous Flash memories.
Kojto 112:6f327212ef96 119 This parameter can be a value of @ref FSMC_AsynchronousWait */
Kojto 112:6f327212ef96 120
Kojto 112:6f327212ef96 121 uint32_t WriteBurst; /*!< Enables or disables the write burst operation.
Kojto 112:6f327212ef96 122 This parameter can be a value of @ref FSMC_Write_Burst */
Kojto 112:6f327212ef96 123
Kojto 112:6f327212ef96 124 }FSMC_NORSRAM_InitTypeDef;
Kojto 112:6f327212ef96 125
Kojto 112:6f327212ef96 126
Kojto 112:6f327212ef96 127 /**
Kojto 112:6f327212ef96 128 * @brief FSMC_NORSRAM Timing parameters structure definition
Kojto 112:6f327212ef96 129 */
Kojto 112:6f327212ef96 130 typedef struct
Kojto 112:6f327212ef96 131 {
Kojto 112:6f327212ef96 132 uint32_t AddressSetupTime; /*!< Defines the number of HCLK cycles to configure
Kojto 112:6f327212ef96 133 the duration of the address setup time.
Kojto 112:6f327212ef96 134 This parameter can be a value between Min_Data = 0 and Max_Data = 15.
Kojto 112:6f327212ef96 135 @note This parameter is not used with synchronous NOR Flash memories. */
Kojto 112:6f327212ef96 136
Kojto 112:6f327212ef96 137 uint32_t AddressHoldTime; /*!< Defines the number of HCLK cycles to configure
Kojto 112:6f327212ef96 138 the duration of the address hold time.
Kojto 112:6f327212ef96 139 This parameter can be a value between Min_Data = 1 and Max_Data = 15.
Kojto 112:6f327212ef96 140 @note This parameter is not used with synchronous NOR Flash memories. */
Kojto 112:6f327212ef96 141
Kojto 112:6f327212ef96 142 uint32_t DataSetupTime; /*!< Defines the number of HCLK cycles to configure
Kojto 112:6f327212ef96 143 the duration of the data setup time.
Kojto 112:6f327212ef96 144 This parameter can be a value between Min_Data = 1 and Max_Data = 255.
Kojto 112:6f327212ef96 145 @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
Kojto 112:6f327212ef96 146 NOR Flash memories. */
Kojto 112:6f327212ef96 147
Kojto 112:6f327212ef96 148 uint32_t BusTurnAroundDuration; /*!< Defines the number of HCLK cycles to configure
Kojto 112:6f327212ef96 149 the duration of the bus turnaround.
Kojto 112:6f327212ef96 150 This parameter can be a value between Min_Data = 0 and Max_Data = 15.
Kojto 112:6f327212ef96 151 @note This parameter is only used for multiplexed NOR Flash memories. */
Kojto 112:6f327212ef96 152
Kojto 112:6f327212ef96 153 uint32_t CLKDivision; /*!< Defines the period of CLK clock output signal, expressed in number of
Kojto 112:6f327212ef96 154 HCLK cycles. This parameter can be a value between Min_Data = 2 and Max_Data = 16.
Kojto 112:6f327212ef96 155 @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
Kojto 112:6f327212ef96 156 accesses. */
Kojto 112:6f327212ef96 157
Kojto 112:6f327212ef96 158 uint32_t DataLatency; /*!< Defines the number of memory clock cycles to issue
Kojto 112:6f327212ef96 159 to the memory before getting the first data.
Kojto 112:6f327212ef96 160 The parameter value depends on the memory type as shown below:
Kojto 112:6f327212ef96 161 - It must be set to 0 in case of a CRAM
Kojto 112:6f327212ef96 162 - It is don't care in asynchronous NOR, SRAM or ROM accesses
Kojto 112:6f327212ef96 163 - It may assume a value between Min_Data = 2 and Max_Data = 17 in NOR Flash memories
Kojto 112:6f327212ef96 164 with synchronous burst mode enable */
Kojto 112:6f327212ef96 165
Kojto 112:6f327212ef96 166 uint32_t AccessMode; /*!< Specifies the asynchronous access mode.
Kojto 112:6f327212ef96 167 This parameter can be a value of @ref FSMC_Access_Mode */
Kojto 112:6f327212ef96 168
Kojto 112:6f327212ef96 169 }FSMC_NORSRAM_TimingTypeDef;
Kojto 112:6f327212ef96 170
Kojto 112:6f327212ef96 171 /**
Kojto 112:6f327212ef96 172 * @}
Kojto 112:6f327212ef96 173 */
Kojto 112:6f327212ef96 174
Kojto 112:6f327212ef96 175 /* Exported constants --------------------------------------------------------*/
Kojto 112:6f327212ef96 176
Kojto 112:6f327212ef96 177 /** @defgroup FSMC_NORSRAM_Exported_constants FSMC NOR/SRAM Exported constants
Kojto 112:6f327212ef96 178 * @{
Kojto 112:6f327212ef96 179 */
Kojto 112:6f327212ef96 180
Kojto 112:6f327212ef96 181 /** @defgroup FSMC_NORSRAM_Bank FSMC NOR/SRAM Bank
Kojto 112:6f327212ef96 182 * @{
Kojto 112:6f327212ef96 183 */
Kojto 112:6f327212ef96 184 #define FSMC_BANK1_NORSRAM1 ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 185 #define FSMC_BANK1_NORSRAM2 ((uint32_t)0x00000002)
Kojto 112:6f327212ef96 186 #define FSMC_BANK1_NORSRAM3 ((uint32_t)0x00000004)
Kojto 112:6f327212ef96 187 #define FSMC_BANK1_NORSRAM4 ((uint32_t)0x00000006)
Kojto 112:6f327212ef96 188
Kojto 112:6f327212ef96 189 /* To keep compatibility with previous families */
Kojto 112:6f327212ef96 190 #define FSMC_NORSRAM_BANK1 FSMC_BANK1_NORSRAM1
Kojto 112:6f327212ef96 191 #define FSMC_NORSRAM_BANK2 FSMC_BANK1_NORSRAM2
Kojto 112:6f327212ef96 192 #define FSMC_NORSRAM_BANK3 FSMC_BANK1_NORSRAM3
Kojto 112:6f327212ef96 193 #define FSMC_NORSRAM_BANK4 FSMC_BANK1_NORSRAM4
Kojto 112:6f327212ef96 194
Kojto 112:6f327212ef96 195 #define IS_FSMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FSMC_BANK1_NORSRAM1) || \
Kojto 112:6f327212ef96 196 ((__BANK__) == FSMC_BANK1_NORSRAM2) || \
Kojto 112:6f327212ef96 197 ((__BANK__) == FSMC_BANK1_NORSRAM3) || \
Kojto 112:6f327212ef96 198 ((__BANK__) == FSMC_BANK1_NORSRAM4))
Kojto 112:6f327212ef96 199 /**
Kojto 112:6f327212ef96 200 * @}
Kojto 112:6f327212ef96 201 */
Kojto 112:6f327212ef96 202
Kojto 112:6f327212ef96 203 /** @defgroup FSMC_Data_Address_Bus_Multiplexing FSMC Data Address Bus Multiplexing
Kojto 112:6f327212ef96 204 * @{
Kojto 112:6f327212ef96 205 */
Kojto 112:6f327212ef96 206
Kojto 112:6f327212ef96 207 #define FSMC_DATA_ADDRESS_MUX_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 208 #define FSMC_DATA_ADDRESS_MUX_ENABLE ((uint32_t)FSMC_BCRx_MUXEN)
Kojto 112:6f327212ef96 209
Kojto 112:6f327212ef96 210 #define IS_FSMC_MUX(__MUX__) (((__MUX__) == FSMC_DATA_ADDRESS_MUX_DISABLE) || \
Kojto 112:6f327212ef96 211 ((__MUX__) == FSMC_DATA_ADDRESS_MUX_ENABLE))
Kojto 112:6f327212ef96 212 /**
Kojto 112:6f327212ef96 213 * @}
Kojto 112:6f327212ef96 214 */
Kojto 112:6f327212ef96 215
Kojto 112:6f327212ef96 216 /** @defgroup FSMC_Memory_Type FSMC Memory Type
Kojto 112:6f327212ef96 217 * @{
Kojto 112:6f327212ef96 218 */
Kojto 112:6f327212ef96 219
Kojto 112:6f327212ef96 220 #define FSMC_MEMORY_TYPE_SRAM ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 221 #define FSMC_MEMORY_TYPE_PSRAM ((uint32_t)FSMC_BCRx_MTYP_0)
Kojto 112:6f327212ef96 222 #define FSMC_MEMORY_TYPE_NOR ((uint32_t)FSMC_BCRx_MTYP_1)
Kojto 112:6f327212ef96 223
Kojto 112:6f327212ef96 224
Kojto 112:6f327212ef96 225 #define IS_FSMC_MEMORY(__MEMORY__) (((__MEMORY__) == FSMC_MEMORY_TYPE_SRAM) || \
Kojto 112:6f327212ef96 226 ((__MEMORY__) == FSMC_MEMORY_TYPE_PSRAM)|| \
Kojto 112:6f327212ef96 227 ((__MEMORY__) == FSMC_MEMORY_TYPE_NOR))
Kojto 112:6f327212ef96 228 /**
Kojto 112:6f327212ef96 229 * @}
Kojto 112:6f327212ef96 230 */
Kojto 112:6f327212ef96 231
Kojto 112:6f327212ef96 232 /** @defgroup FSMC_NORSRAM_Data_Width FSMC NOR/SRAM Data Width
Kojto 112:6f327212ef96 233 * @{
Kojto 112:6f327212ef96 234 */
Kojto 112:6f327212ef96 235
Kojto 112:6f327212ef96 236 #define FSMC_NORSRAM_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 237 #define FSMC_NORSRAM_MEM_BUS_WIDTH_16 ((uint32_t)FSMC_BCRx_MWID_0)
Kojto 112:6f327212ef96 238 #define FSMC_NORSRAM_MEM_BUS_WIDTH_32 ((uint32_t)FSMC_BCRx_MWID_1)
Kojto 112:6f327212ef96 239
Kojto 112:6f327212ef96 240 #define IS_FSMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_8) || \
Kojto 112:6f327212ef96 241 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_16) || \
Kojto 112:6f327212ef96 242 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_32))
Kojto 112:6f327212ef96 243 /**
Kojto 112:6f327212ef96 244 * @}
Kojto 112:6f327212ef96 245 */
Kojto 112:6f327212ef96 246
Kojto 112:6f327212ef96 247 /** @defgroup FSMC_NORSRAM_Flash_Access FSMC NOR/SRAM Flash Access
Kojto 112:6f327212ef96 248 * @{
Kojto 112:6f327212ef96 249 */
Kojto 112:6f327212ef96 250
Kojto 112:6f327212ef96 251 #define FSMC_NORSRAM_FLASH_ACCESS_ENABLE ((uint32_t)FSMC_BCRx_FACCEN)
Kojto 112:6f327212ef96 252 #define FSMC_NORSRAM_FLASH_ACCESS_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 253 /**
Kojto 112:6f327212ef96 254 * @}
Kojto 112:6f327212ef96 255 */
Kojto 112:6f327212ef96 256
Kojto 112:6f327212ef96 257 /** @defgroup FSMC_Burst_Access_Mode FSMC Burst Access Mode
Kojto 112:6f327212ef96 258 * @{
Kojto 112:6f327212ef96 259 */
Kojto 112:6f327212ef96 260
Kojto 112:6f327212ef96 261 #define FSMC_BURST_ACCESS_MODE_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 262 #define FSMC_BURST_ACCESS_MODE_ENABLE ((uint32_t)FSMC_BCRx_BURSTEN)
Kojto 112:6f327212ef96 263
Kojto 112:6f327212ef96 264 #define IS_FSMC_BURSTMODE(__STATE__) (((__STATE__) == FSMC_BURST_ACCESS_MODE_DISABLE) || \
Kojto 112:6f327212ef96 265 ((__STATE__) == FSMC_BURST_ACCESS_MODE_ENABLE))
Kojto 112:6f327212ef96 266 /**
Kojto 112:6f327212ef96 267 * @}
Kojto 112:6f327212ef96 268 */
Kojto 112:6f327212ef96 269
Kojto 112:6f327212ef96 270
Kojto 112:6f327212ef96 271 /** @defgroup FSMC_Wait_Signal_Polarity FSMC Wait Signal Polarity
Kojto 112:6f327212ef96 272 * @{
Kojto 112:6f327212ef96 273 */
Kojto 112:6f327212ef96 274
Kojto 112:6f327212ef96 275 #define FSMC_WAIT_SIGNAL_POLARITY_LOW ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 276 #define FSMC_WAIT_SIGNAL_POLARITY_HIGH ((uint32_t)FSMC_BCRx_WAITPOL)
Kojto 112:6f327212ef96 277
Kojto 112:6f327212ef96 278 #define IS_FSMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_LOW) || \
Kojto 112:6f327212ef96 279 ((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_HIGH))
Kojto 112:6f327212ef96 280 /**
Kojto 112:6f327212ef96 281 * @}
Kojto 112:6f327212ef96 282 */
Kojto 112:6f327212ef96 283
Kojto 112:6f327212ef96 284 /** @defgroup FSMC_Wrap_Mode FSMC Wrap Mode
Kojto 112:6f327212ef96 285 * @{
Kojto 112:6f327212ef96 286 */
Kojto 112:6f327212ef96 287
Kojto 112:6f327212ef96 288 #define FSMC_WRAP_MODE_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 289 #define FSMC_WRAP_MODE_ENABLE ((uint32_t)FSMC_BCRx_WRAPMOD)
Kojto 112:6f327212ef96 290
Kojto 112:6f327212ef96 291 #define IS_FSMC_WRAP_MODE(__MODE__) (((__MODE__) == FSMC_WRAP_MODE_DISABLE) || \
Kojto 112:6f327212ef96 292 ((__MODE__) == FSMC_WRAP_MODE_ENABLE))
Kojto 112:6f327212ef96 293 /**
Kojto 112:6f327212ef96 294 * @}
Kojto 112:6f327212ef96 295 */
Kojto 112:6f327212ef96 296
Kojto 112:6f327212ef96 297 /** @defgroup FSMC_Wait_Timing FSMC Wait Timing
Kojto 112:6f327212ef96 298 * @{
Kojto 112:6f327212ef96 299 */
Kojto 112:6f327212ef96 300
Kojto 112:6f327212ef96 301 #define FSMC_WAIT_TIMING_BEFORE_WS ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 302 #define FSMC_WAIT_TIMING_DURING_WS ((uint32_t)FSMC_BCRx_WAITCFG)
Kojto 112:6f327212ef96 303
Kojto 112:6f327212ef96 304 #define IS_FSMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FSMC_WAIT_TIMING_BEFORE_WS) || \
Kojto 112:6f327212ef96 305 ((__ACTIVE__) == FSMC_WAIT_TIMING_DURING_WS))
Kojto 112:6f327212ef96 306 /**
Kojto 112:6f327212ef96 307 * @}
Kojto 112:6f327212ef96 308 */
Kojto 112:6f327212ef96 309
Kojto 112:6f327212ef96 310 /** @defgroup FSMC_Write_Operation FSMC Write Operation
Kojto 112:6f327212ef96 311 * @{
Kojto 112:6f327212ef96 312 */
Kojto 112:6f327212ef96 313
Kojto 112:6f327212ef96 314 #define FSMC_WRITE_OPERATION_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 315 #define FSMC_WRITE_OPERATION_ENABLE ((uint32_t)FSMC_BCRx_WREN)
Kojto 112:6f327212ef96 316
Kojto 112:6f327212ef96 317 #define IS_FSMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FSMC_WRITE_OPERATION_DISABLE) || \
Kojto 112:6f327212ef96 318 ((__OPERATION__) == FSMC_WRITE_OPERATION_ENABLE))
Kojto 112:6f327212ef96 319 /**
Kojto 112:6f327212ef96 320 * @}
Kojto 112:6f327212ef96 321 */
Kojto 112:6f327212ef96 322
Kojto 112:6f327212ef96 323 /** @defgroup FSMC_Wait_Signal FSMC Wait Signal
Kojto 112:6f327212ef96 324 * @{
Kojto 112:6f327212ef96 325 */
Kojto 112:6f327212ef96 326
Kojto 112:6f327212ef96 327 #define FSMC_WAIT_SIGNAL_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 328 #define FSMC_WAIT_SIGNAL_ENABLE ((uint32_t)FSMC_BCRx_WAITEN)
Kojto 112:6f327212ef96 329
Kojto 112:6f327212ef96 330 #define IS_FSMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FSMC_WAIT_SIGNAL_DISABLE) || \
Kojto 112:6f327212ef96 331 ((__SIGNAL__) == FSMC_WAIT_SIGNAL_ENABLE))
Kojto 112:6f327212ef96 332
Kojto 112:6f327212ef96 333 /**
Kojto 112:6f327212ef96 334 * @}
Kojto 112:6f327212ef96 335 */
Kojto 112:6f327212ef96 336
Kojto 112:6f327212ef96 337 /** @defgroup FSMC_Extended_Mode FSMC Extended Mode
Kojto 112:6f327212ef96 338 * @{
Kojto 112:6f327212ef96 339 */
Kojto 112:6f327212ef96 340
Kojto 112:6f327212ef96 341 #define FSMC_EXTENDED_MODE_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 342 #define FSMC_EXTENDED_MODE_ENABLE ((uint32_t)FSMC_BCRx_EXTMOD)
Kojto 112:6f327212ef96 343
Kojto 112:6f327212ef96 344 #define IS_FSMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FSMC_EXTENDED_MODE_DISABLE) || \
Kojto 112:6f327212ef96 345 ((__MODE__) == FSMC_EXTENDED_MODE_ENABLE))
Kojto 112:6f327212ef96 346 /**
Kojto 112:6f327212ef96 347 * @}
Kojto 112:6f327212ef96 348 */
Kojto 112:6f327212ef96 349
Kojto 112:6f327212ef96 350 /** @defgroup FSMC_AsynchronousWait FSMC Asynchronous Wait
Kojto 112:6f327212ef96 351 * @{
Kojto 112:6f327212ef96 352 */
Kojto 112:6f327212ef96 353
Kojto 112:6f327212ef96 354 #define FSMC_ASYNCHRONOUS_WAIT_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 355 #define FSMC_ASYNCHRONOUS_WAIT_ENABLE ((uint32_t)FSMC_BCRx_ASYNCWAIT)
Kojto 112:6f327212ef96 356
Kojto 112:6f327212ef96 357 #define IS_FSMC_ASYNWAIT(__STATE__) (((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_DISABLE) || \
Kojto 112:6f327212ef96 358 ((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_ENABLE))
Kojto 112:6f327212ef96 359
Kojto 112:6f327212ef96 360 /**
Kojto 112:6f327212ef96 361 * @}
Kojto 112:6f327212ef96 362 */
Kojto 112:6f327212ef96 363
Kojto 112:6f327212ef96 364 /** @defgroup FSMC_Write_Burst FSMC Write Burst
Kojto 112:6f327212ef96 365 * @{
Kojto 112:6f327212ef96 366 */
Kojto 112:6f327212ef96 367
Kojto 112:6f327212ef96 368 #define FSMC_WRITE_BURST_DISABLE ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 369 #define FSMC_WRITE_BURST_ENABLE ((uint32_t)FSMC_BCRx_CBURSTRW)
Kojto 112:6f327212ef96 370
Kojto 112:6f327212ef96 371 #define IS_FSMC_WRITE_BURST(__BURST__) (((__BURST__) == FSMC_WRITE_BURST_DISABLE) || \
Kojto 112:6f327212ef96 372 ((__BURST__) == FSMC_WRITE_BURST_ENABLE))
Kojto 112:6f327212ef96 373 /**
Kojto 112:6f327212ef96 374 * @}
Kojto 112:6f327212ef96 375 */
Kojto 112:6f327212ef96 376
Kojto 112:6f327212ef96 377 /** @defgroup FSMC_Address_Setup_Time FSMC Address Setup Time
Kojto 112:6f327212ef96 378 * @{
Kojto 112:6f327212ef96 379 */
Kojto 112:6f327212ef96 380
Kojto 112:6f327212ef96 381 #define IS_FSMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15)
Kojto 112:6f327212ef96 382 /**
Kojto 112:6f327212ef96 383 * @}
Kojto 112:6f327212ef96 384 */
Kojto 112:6f327212ef96 385
Kojto 112:6f327212ef96 386 /** @defgroup FSMC_Address_Hold_Time FSMC Address Hold Time
Kojto 112:6f327212ef96 387 * @{
Kojto 112:6f327212ef96 388 */
Kojto 112:6f327212ef96 389
Kojto 112:6f327212ef96 390 #define IS_FSMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 15))
Kojto 112:6f327212ef96 391 /**
Kojto 112:6f327212ef96 392 * @}
Kojto 112:6f327212ef96 393 */
Kojto 112:6f327212ef96 394
Kojto 112:6f327212ef96 395 /** @defgroup FSMC_Data_Setup_Time FSMC Data Setup Time
Kojto 112:6f327212ef96 396 * @{
Kojto 112:6f327212ef96 397 */
Kojto 112:6f327212ef96 398
Kojto 112:6f327212ef96 399 #define IS_FSMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 255))
Kojto 112:6f327212ef96 400 /**
Kojto 112:6f327212ef96 401 * @}
Kojto 112:6f327212ef96 402 */
Kojto 112:6f327212ef96 403
Kojto 112:6f327212ef96 404 /** @defgroup FSMC_Bus_Turn_around_Duration FSMC Bus Turn around Duration
Kojto 112:6f327212ef96 405 * @{
Kojto 112:6f327212ef96 406 */
Kojto 112:6f327212ef96 407
Kojto 112:6f327212ef96 408 #define IS_FSMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15)
Kojto 112:6f327212ef96 409 /**
Kojto 112:6f327212ef96 410 * @}
Kojto 112:6f327212ef96 411 */
Kojto 112:6f327212ef96 412
Kojto 112:6f327212ef96 413 /** @defgroup FSMC_CLK_Division FSMC CLK Division
Kojto 112:6f327212ef96 414 * @{
Kojto 112:6f327212ef96 415 */
Kojto 112:6f327212ef96 416
Kojto 112:6f327212ef96 417 #define FSMC_CLK_DIV2 ((uint32_t)0x00000002)
Kojto 112:6f327212ef96 418 #define FSMC_CLK_DIV3 ((uint32_t)0x00000003)
Kojto 112:6f327212ef96 419 #define FSMC_CLK_DIV4 ((uint32_t)0x00000004)
Kojto 112:6f327212ef96 420 #define FSMC_CLK_DIV5 ((uint32_t)0x00000005)
Kojto 112:6f327212ef96 421 #define FSMC_CLK_DIV6 ((uint32_t)0x00000006)
Kojto 112:6f327212ef96 422 #define FSMC_CLK_DIV7 ((uint32_t)0x00000007)
Kojto 112:6f327212ef96 423 #define FSMC_CLK_DIV8 ((uint32_t)0x00000008)
Kojto 112:6f327212ef96 424 #define FSMC_CLK_DIV9 ((uint32_t)0x00000009)
Kojto 112:6f327212ef96 425 #define FSMC_CLK_DIV10 ((uint32_t)0x0000000A)
Kojto 112:6f327212ef96 426 #define FSMC_CLK_DIV11 ((uint32_t)0x0000000B)
Kojto 112:6f327212ef96 427 #define FSMC_CLK_DIV12 ((uint32_t)0x0000000C)
Kojto 112:6f327212ef96 428 #define FSMC_CLK_DIV13 ((uint32_t)0x0000000D)
Kojto 112:6f327212ef96 429 #define FSMC_CLK_DIV14 ((uint32_t)0x0000000E)
Kojto 112:6f327212ef96 430 #define FSMC_CLK_DIV15 ((uint32_t)0x0000000F)
Kojto 112:6f327212ef96 431 #define FSMC_CLK_DIV16 ((uint32_t)0x00000010)
Kojto 112:6f327212ef96 432 #define IS_FSMC_CLK_DIV(__DIV__) (((__DIV__) > 1) && ((__DIV__) <= 16))
Kojto 112:6f327212ef96 433 /**
Kojto 112:6f327212ef96 434 * @}
Kojto 112:6f327212ef96 435 */
Kojto 112:6f327212ef96 436
Kojto 112:6f327212ef96 437 /** @defgroup FSMC_Data_Latency FSMC Data Latency
Kojto 112:6f327212ef96 438 * @{
Kojto 112:6f327212ef96 439 */
Kojto 112:6f327212ef96 440
Kojto 112:6f327212ef96 441 #define IS_FSMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1) && ((__LATENCY__) <= 17))
Kojto 112:6f327212ef96 442 /**
Kojto 112:6f327212ef96 443 * @}
Kojto 112:6f327212ef96 444 */
Kojto 112:6f327212ef96 445
Kojto 112:6f327212ef96 446 /** @defgroup FSMC_Access_Mode FSMC Access Mode
Kojto 112:6f327212ef96 447 * @{
Kojto 112:6f327212ef96 448 */
Kojto 112:6f327212ef96 449
Kojto 112:6f327212ef96 450 #define FSMC_ACCESS_MODE_A ((uint32_t)0x00000000)
Kojto 112:6f327212ef96 451 #define FSMC_ACCESS_MODE_B ((uint32_t)FSMC_BTRx_ACCMOD_0)
Kojto 112:6f327212ef96 452 #define FSMC_ACCESS_MODE_C ((uint32_t)FSMC_BTRx_ACCMOD_1)
Kojto 112:6f327212ef96 453 #define FSMC_ACCESS_MODE_D ((uint32_t)(FSMC_BTRx_ACCMOD_0 | FSMC_BTRx_ACCMOD_1))
Kojto 112:6f327212ef96 454
Kojto 112:6f327212ef96 455 #define IS_FSMC_ACCESS_MODE(__MODE__) (((__MODE__) == FSMC_ACCESS_MODE_A) || \
Kojto 112:6f327212ef96 456 ((__MODE__) == FSMC_ACCESS_MODE_B) || \
Kojto 112:6f327212ef96 457 ((__MODE__) == FSMC_ACCESS_MODE_C) || \
Kojto 112:6f327212ef96 458 ((__MODE__) == FSMC_ACCESS_MODE_D))
Kojto 112:6f327212ef96 459 /**
Kojto 112:6f327212ef96 460 * @}
Kojto 112:6f327212ef96 461 */
Kojto 112:6f327212ef96 462
Kojto 112:6f327212ef96 463 /** @defgroup FSMC_NORSRAM_Device_Instance FSMC NOR/SRAM Device Instance
Kojto 112:6f327212ef96 464 * @{
Kojto 112:6f327212ef96 465 */
Kojto 112:6f327212ef96 466
Kojto 112:6f327212ef96 467 #define IS_FSMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_DEVICE)
Kojto 112:6f327212ef96 468
Kojto 112:6f327212ef96 469 /**
Kojto 112:6f327212ef96 470 * @}
Kojto 112:6f327212ef96 471 */
Kojto 112:6f327212ef96 472
Kojto 112:6f327212ef96 473 /** @defgroup FSMC_NORSRAM_EXTENDED_Device_Instance FSMC NOR/SRAM EXTENDED Device Instance
Kojto 112:6f327212ef96 474 * @{
Kojto 112:6f327212ef96 475 */
Kojto 112:6f327212ef96 476
Kojto 112:6f327212ef96 477 #define IS_FSMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_EXTENDED_DEVICE)
Kojto 112:6f327212ef96 478
Kojto 112:6f327212ef96 479 /**
Kojto 112:6f327212ef96 480 * @}
Kojto 112:6f327212ef96 481 */
Kojto 112:6f327212ef96 482
Kojto 112:6f327212ef96 483 /**
Kojto 112:6f327212ef96 484 * @}
Kojto 112:6f327212ef96 485 */
Kojto 112:6f327212ef96 486
Kojto 112:6f327212ef96 487 /* Exported macro ------------------------------------------------------------*/
Kojto 112:6f327212ef96 488
Kojto 112:6f327212ef96 489 /** @defgroup FSMC_NOR_Macros FSMC NOR/SRAM Exported Macros
Kojto 112:6f327212ef96 490 * @brief macros to handle NOR device enable/disable and read/write operations
Kojto 112:6f327212ef96 491 * @{
Kojto 112:6f327212ef96 492 */
Kojto 112:6f327212ef96 493
Kojto 112:6f327212ef96 494 /**
Kojto 112:6f327212ef96 495 * @brief Enable the NORSRAM device access.
Kojto 112:6f327212ef96 496 * @param __INSTANCE__: FSMC_NORSRAM Instance
Kojto 112:6f327212ef96 497 * @param __BANK__: FSMC_NORSRAM Bank
Kojto 112:6f327212ef96 498 * @retval none
Kojto 112:6f327212ef96 499 */
Kojto 112:6f327212ef96 500 #define __FSMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] |= FSMC_BCRx_MBKEN)
Kojto 112:6f327212ef96 501
Kojto 112:6f327212ef96 502 /**
Kojto 112:6f327212ef96 503 * @brief Disable the NORSRAM device access.
Kojto 112:6f327212ef96 504 * @param __INSTANCE__: FSMC_NORSRAM Instance
Kojto 112:6f327212ef96 505 * @param __BANK__: FSMC_NORSRAM Bank
Kojto 112:6f327212ef96 506 * @retval none
Kojto 112:6f327212ef96 507 */
Kojto 112:6f327212ef96 508 #define __FSMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] &= ~FSMC_BCRx_MBKEN)
Kojto 112:6f327212ef96 509
Kojto 112:6f327212ef96 510 /**
Kojto 112:6f327212ef96 511 * @}
Kojto 112:6f327212ef96 512 */
Kojto 112:6f327212ef96 513
Kojto 112:6f327212ef96 514 /* Exported functions --------------------------------------------------------*/
Kojto 112:6f327212ef96 515
Kojto 112:6f327212ef96 516 /** @addtogroup FSMC_Exported_Functions
Kojto 112:6f327212ef96 517 * @{
Kojto 112:6f327212ef96 518 */
Kojto 112:6f327212ef96 519
Kojto 112:6f327212ef96 520 /** @addtogroup HAL_FSMC_NORSRAM_Group1
Kojto 112:6f327212ef96 521 * @{
Kojto 112:6f327212ef96 522 */
Kojto 112:6f327212ef96 523
Kojto 112:6f327212ef96 524 /* FSMC_NORSRAM Controller functions ******************************************/
Kojto 112:6f327212ef96 525 /* Initialization/de-initialization functions */
Kojto 112:6f327212ef96 526 HAL_StatusTypeDef FSMC_NORSRAM_Init(FSMC_NORSRAM_TYPEDEF *Device, FSMC_NORSRAM_InitTypeDef *Init);
Kojto 112:6f327212ef96 527 HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TYPEDEF *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
Kojto 112:6f327212ef96 528 HAL_StatusTypeDef FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TYPEDEF *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode);
Kojto 112:6f327212ef96 529 HAL_StatusTypeDef FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TYPEDEF *Device, FSMC_NORSRAM_EXTENDED_TYPEDEF *ExDevice, uint32_t Bank);
Kojto 112:6f327212ef96 530
Kojto 112:6f327212ef96 531 /**
Kojto 112:6f327212ef96 532 * @}
Kojto 112:6f327212ef96 533 */
Kojto 112:6f327212ef96 534
Kojto 112:6f327212ef96 535 /** @addtogroup HAL_FSMC_NORSRAM_Group2
Kojto 112:6f327212ef96 536 * @{
Kojto 112:6f327212ef96 537 */
Kojto 112:6f327212ef96 538
Kojto 112:6f327212ef96 539 /* FSMC_NORSRAM Control functions */
Kojto 112:6f327212ef96 540 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Enable(FSMC_NORSRAM_TYPEDEF *Device, uint32_t Bank);
Kojto 112:6f327212ef96 541 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Disable(FSMC_NORSRAM_TYPEDEF *Device, uint32_t Bank);
Kojto 112:6f327212ef96 542
Kojto 112:6f327212ef96 543 /**
Kojto 112:6f327212ef96 544 * @}
Kojto 112:6f327212ef96 545 */
Kojto 112:6f327212ef96 546
Kojto 112:6f327212ef96 547 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
Kojto 112:6f327212ef96 548
Kojto 112:6f327212ef96 549 /**
Kojto 112:6f327212ef96 550 * @}
Kojto 112:6f327212ef96 551 */
Kojto 112:6f327212ef96 552
Kojto 112:6f327212ef96 553 /**
Kojto 112:6f327212ef96 554 * @}
Kojto 112:6f327212ef96 555 */
Kojto 112:6f327212ef96 556
Kojto 112:6f327212ef96 557 /**
Kojto 112:6f327212ef96 558 * @}
Kojto 112:6f327212ef96 559 */
Kojto 112:6f327212ef96 560
Kojto 112:6f327212ef96 561 #ifdef __cplusplus
Kojto 112:6f327212ef96 562 }
Kojto 112:6f327212ef96 563 #endif
Kojto 112:6f327212ef96 564
Kojto 112:6f327212ef96 565 #endif /* __STM32L1xx_LL_FSMC_H */
Kojto 112:6f327212ef96 566
Kojto 112:6f327212ef96 567 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/