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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_DISCO_L475VG_IOT01A/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_fmc.h@161:aa5281ff4a02
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 145:64910690c574 1 /**
AnnaBridge 145:64910690c574 2 ******************************************************************************
AnnaBridge 145:64910690c574 3 * @file stm32l4xx_ll_fmc.h
AnnaBridge 145:64910690c574 4 * @author MCD Application Team
AnnaBridge 145:64910690c574 5 * @brief Header file of FMC HAL module.
AnnaBridge 145:64910690c574 6 ******************************************************************************
AnnaBridge 145:64910690c574 7 * @attention
AnnaBridge 145:64910690c574 8 *
AnnaBridge 145:64910690c574 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 145:64910690c574 10 *
AnnaBridge 145:64910690c574 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 145:64910690c574 12 * are permitted provided that the following conditions are met:
AnnaBridge 145:64910690c574 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 145:64910690c574 14 * this list of conditions and the following disclaimer.
AnnaBridge 145:64910690c574 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 145:64910690c574 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 145:64910690c574 17 * and/or other materials provided with the distribution.
AnnaBridge 145:64910690c574 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 145:64910690c574 19 * may be used to endorse or promote products derived from this software
AnnaBridge 145:64910690c574 20 * without specific prior written permission.
AnnaBridge 145:64910690c574 21 *
AnnaBridge 145:64910690c574 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 145:64910690c574 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 145:64910690c574 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 145:64910690c574 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 145:64910690c574 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 145:64910690c574 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 145:64910690c574 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 145:64910690c574 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 145:64910690c574 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 145:64910690c574 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 145:64910690c574 32 *
AnnaBridge 145:64910690c574 33 ******************************************************************************
AnnaBridge 145:64910690c574 34 */
AnnaBridge 145:64910690c574 35
AnnaBridge 145:64910690c574 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 145:64910690c574 37 #ifndef __STM32L4xx_LL_FMC_H
AnnaBridge 145:64910690c574 38 #define __STM32L4xx_LL_FMC_H
AnnaBridge 145:64910690c574 39
AnnaBridge 145:64910690c574 40 #ifdef __cplusplus
AnnaBridge 145:64910690c574 41 extern "C" {
AnnaBridge 145:64910690c574 42 #endif
AnnaBridge 145:64910690c574 43
AnnaBridge 145:64910690c574 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 145:64910690c574 45 #include "stm32l4xx_hal_def.h"
AnnaBridge 145:64910690c574 46
AnnaBridge 145:64910690c574 47 /** @addtogroup STM32L4xx_HAL_Driver
AnnaBridge 145:64910690c574 48 * @{
AnnaBridge 145:64910690c574 49 */
AnnaBridge 145:64910690c574 50
AnnaBridge 145:64910690c574 51 #if defined(FMC_BANK1)
AnnaBridge 145:64910690c574 52
AnnaBridge 145:64910690c574 53 /** @addtogroup FMC_LL
AnnaBridge 145:64910690c574 54 * @{
AnnaBridge 145:64910690c574 55 */
AnnaBridge 145:64910690c574 56
AnnaBridge 145:64910690c574 57 /** @addtogroup FMC_LL_Private_Macros
AnnaBridge 145:64910690c574 58 * @{
AnnaBridge 145:64910690c574 59 */
AnnaBridge 145:64910690c574 60
AnnaBridge 145:64910690c574 61 #define IS_FMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FMC_NORSRAM_BANK1) || \
AnnaBridge 145:64910690c574 62 ((__BANK__) == FMC_NORSRAM_BANK2) || \
AnnaBridge 145:64910690c574 63 ((__BANK__) == FMC_NORSRAM_BANK3) || \
AnnaBridge 145:64910690c574 64 ((__BANK__) == FMC_NORSRAM_BANK4))
AnnaBridge 145:64910690c574 65
AnnaBridge 145:64910690c574 66 #define IS_FMC_MUX(__MUX__) (((__MUX__) == FMC_DATA_ADDRESS_MUX_DISABLE) || \
AnnaBridge 145:64910690c574 67 ((__MUX__) == FMC_DATA_ADDRESS_MUX_ENABLE))
AnnaBridge 145:64910690c574 68
AnnaBridge 145:64910690c574 69 #define IS_FMC_MEMORY(__MEMORY__) (((__MEMORY__) == FMC_MEMORY_TYPE_SRAM) || \
AnnaBridge 145:64910690c574 70 ((__MEMORY__) == FMC_MEMORY_TYPE_PSRAM)|| \
AnnaBridge 145:64910690c574 71 ((__MEMORY__) == FMC_MEMORY_TYPE_NOR))
AnnaBridge 145:64910690c574 72
AnnaBridge 145:64910690c574 73 #define IS_FMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_8) || \
AnnaBridge 145:64910690c574 74 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_16) || \
AnnaBridge 145:64910690c574 75 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_32))
AnnaBridge 145:64910690c574 76
AnnaBridge 145:64910690c574 77 #define IS_FMC_WRITE_BURST(__BURST__) (((__BURST__) == FMC_WRITE_BURST_DISABLE) || \
AnnaBridge 145:64910690c574 78 ((__BURST__) == FMC_WRITE_BURST_ENABLE))
AnnaBridge 145:64910690c574 79
AnnaBridge 145:64910690c574 80 #define IS_FMC_PAGESIZE(__SIZE__) (((__SIZE__) == FMC_PAGE_SIZE_NONE) || \
AnnaBridge 145:64910690c574 81 ((__SIZE__) == FMC_PAGE_SIZE_128) || \
AnnaBridge 145:64910690c574 82 ((__SIZE__) == FMC_PAGE_SIZE_256) || \
AnnaBridge 145:64910690c574 83 ((__SIZE__) == FMC_PAGE_SIZE_512) || \
AnnaBridge 145:64910690c574 84 ((__SIZE__) == FMC_PAGE_SIZE_1024))
AnnaBridge 145:64910690c574 85
AnnaBridge 145:64910690c574 86 #define IS_FMC_CONTINOUS_CLOCK(__CCLOCK__) (((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
AnnaBridge 145:64910690c574 87 ((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
AnnaBridge 145:64910690c574 88
AnnaBridge 145:64910690c574 89 #if defined(FMC_BCR1_WFDIS)
AnnaBridge 145:64910690c574 90 #define IS_FMC_WRITE_FIFO(__FIFO__) (((__FIFO__) == FMC_WRITE_FIFO_DISABLE) || \
AnnaBridge 145:64910690c574 91 ((__FIFO__) == FMC_WRITE_FIFO_ENABLE))
AnnaBridge 161:aa5281ff4a02 92 #endif /* FMC_BCR1_WFDIS */
AnnaBridge 145:64910690c574 93
AnnaBridge 161:aa5281ff4a02 94 #if defined(FMC_BCRx_NBLSET)
AnnaBridge 161:aa5281ff4a02 95 #define IS_FMC_NBLSETUP_TIME(__TIME__) ((__TIME__) <= 3)
AnnaBridge 161:aa5281ff4a02 96 #endif /* FMC_BCRx_NBLSET */
AnnaBridge 161:aa5281ff4a02 97
AnnaBridge 145:64910690c574 98 #define IS_FMC_ACCESS_MODE(__MODE__) (((__MODE__) == FMC_ACCESS_MODE_A) || \
AnnaBridge 145:64910690c574 99 ((__MODE__) == FMC_ACCESS_MODE_B) || \
AnnaBridge 145:64910690c574 100 ((__MODE__) == FMC_ACCESS_MODE_C) || \
AnnaBridge 145:64910690c574 101 ((__MODE__) == FMC_ACCESS_MODE_D))
AnnaBridge 145:64910690c574 102
AnnaBridge 145:64910690c574 103 #define IS_FMC_NAND_BANK(__BANK__) ((__BANK__) == FMC_NAND_BANK3)
AnnaBridge 145:64910690c574 104
AnnaBridge 145:64910690c574 105 #define IS_FMC_WAIT_FEATURE(__FEATURE__) (((__FEATURE__) == FMC_NAND_WAIT_FEATURE_DISABLE) || \
AnnaBridge 145:64910690c574 106 ((__FEATURE__) == FMC_NAND_WAIT_FEATURE_ENABLE))
AnnaBridge 145:64910690c574 107
AnnaBridge 145:64910690c574 108 #define IS_FMC_NAND_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NAND_MEM_BUS_WIDTH_8) || \
AnnaBridge 145:64910690c574 109 ((__WIDTH__) == FMC_NAND_MEM_BUS_WIDTH_16))
AnnaBridge 145:64910690c574 110
AnnaBridge 145:64910690c574 111 #define IS_FMC_ECC_STATE(__STATE__) (((__STATE__) == FMC_NAND_ECC_DISABLE) || \
AnnaBridge 145:64910690c574 112 ((__STATE__) == FMC_NAND_ECC_ENABLE))
AnnaBridge 145:64910690c574 113
AnnaBridge 145:64910690c574 114 #define IS_FMC_ECCPAGE_SIZE(__SIZE__) (((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_256BYTE) || \
AnnaBridge 145:64910690c574 115 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_512BYTE) || \
AnnaBridge 145:64910690c574 116 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
AnnaBridge 145:64910690c574 117 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
AnnaBridge 145:64910690c574 118 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
AnnaBridge 145:64910690c574 119 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_8192BYTE))
AnnaBridge 145:64910690c574 120
AnnaBridge 145:64910690c574 121 /** @defgroup FMC_TCLR_Setup_Time FMC_TCLR_Setup_Time
AnnaBridge 145:64910690c574 122 * @{
AnnaBridge 145:64910690c574 123 */
AnnaBridge 145:64910690c574 124 #define IS_FMC_TCLR_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 125 /**
AnnaBridge 145:64910690c574 126 * @}
AnnaBridge 145:64910690c574 127 */
AnnaBridge 145:64910690c574 128
AnnaBridge 145:64910690c574 129 /** @defgroup FMC_TAR_Setup_Time FMC_TAR_Setup_Time
AnnaBridge 145:64910690c574 130 * @{
AnnaBridge 145:64910690c574 131 */
AnnaBridge 145:64910690c574 132 #define IS_FMC_TAR_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 133 /**
AnnaBridge 145:64910690c574 134 * @}
AnnaBridge 145:64910690c574 135 */
AnnaBridge 145:64910690c574 136
AnnaBridge 145:64910690c574 137 /** @defgroup FMC_Setup_Time FMC_Setup_Time
AnnaBridge 145:64910690c574 138 * @{
AnnaBridge 145:64910690c574 139 */
AnnaBridge 145:64910690c574 140 #define IS_FMC_SETUP_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 141 /**
AnnaBridge 145:64910690c574 142 * @}
AnnaBridge 145:64910690c574 143 */
AnnaBridge 145:64910690c574 144
AnnaBridge 145:64910690c574 145 /** @defgroup FMC_Wait_Setup_Time FMC_Wait_Setup_Time
AnnaBridge 145:64910690c574 146 * @{
AnnaBridge 145:64910690c574 147 */
AnnaBridge 145:64910690c574 148 #define IS_FMC_WAIT_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 149 /**
AnnaBridge 145:64910690c574 150 * @}
AnnaBridge 145:64910690c574 151 */
AnnaBridge 145:64910690c574 152
AnnaBridge 145:64910690c574 153 /** @defgroup FMC_Hold_Setup_Time FMC_Hold_Setup_Time
AnnaBridge 145:64910690c574 154 * @{
AnnaBridge 145:64910690c574 155 */
AnnaBridge 145:64910690c574 156 #define IS_FMC_HOLD_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 157 /**
AnnaBridge 145:64910690c574 158 * @}
AnnaBridge 145:64910690c574 159 */
AnnaBridge 145:64910690c574 160
AnnaBridge 145:64910690c574 161 /** @defgroup FMC_HiZ_Setup_Time FMC_HiZ_Setup_Time
AnnaBridge 145:64910690c574 162 * @{
AnnaBridge 145:64910690c574 163 */
AnnaBridge 145:64910690c574 164 #define IS_FMC_HIZ_TIME(__TIME__) ((__TIME__) <= 255)
AnnaBridge 145:64910690c574 165 /**
AnnaBridge 145:64910690c574 166 * @}
AnnaBridge 145:64910690c574 167 */
AnnaBridge 145:64910690c574 168
AnnaBridge 145:64910690c574 169 /** @defgroup FMC_NORSRAM_Device_Instance FMC NOR/SRAM Device Instance
AnnaBridge 145:64910690c574 170 * @{
AnnaBridge 145:64910690c574 171 */
AnnaBridge 145:64910690c574 172
AnnaBridge 145:64910690c574 173 #define IS_FMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_DEVICE)
AnnaBridge 145:64910690c574 174
AnnaBridge 145:64910690c574 175 /**
AnnaBridge 145:64910690c574 176 * @}
AnnaBridge 145:64910690c574 177 */
AnnaBridge 145:64910690c574 178
AnnaBridge 145:64910690c574 179 /** @defgroup FMC_NORSRAM_EXTENDED_Device_Instance FMC NOR/SRAM EXTENDED Device Instance
AnnaBridge 145:64910690c574 180 * @{
AnnaBridge 145:64910690c574 181 */
AnnaBridge 145:64910690c574 182
AnnaBridge 145:64910690c574 183 #define IS_FMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_EXTENDED_DEVICE)
AnnaBridge 145:64910690c574 184
AnnaBridge 145:64910690c574 185 /**
AnnaBridge 145:64910690c574 186 * @}
AnnaBridge 145:64910690c574 187 */
AnnaBridge 145:64910690c574 188
AnnaBridge 145:64910690c574 189 /** @defgroup FMC_NAND_Device_Instance FMC NAND Device Instance
AnnaBridge 145:64910690c574 190 * @{
AnnaBridge 145:64910690c574 191 */
AnnaBridge 145:64910690c574 192 #define IS_FMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NAND_DEVICE)
AnnaBridge 145:64910690c574 193 /**
AnnaBridge 145:64910690c574 194 * @}
AnnaBridge 145:64910690c574 195 */
AnnaBridge 145:64910690c574 196
AnnaBridge 145:64910690c574 197 #define IS_FMC_BURSTMODE(__STATE__) (((__STATE__) == FMC_BURST_ACCESS_MODE_DISABLE) || \
AnnaBridge 145:64910690c574 198 ((__STATE__) == FMC_BURST_ACCESS_MODE_ENABLE))
AnnaBridge 145:64910690c574 199
AnnaBridge 145:64910690c574 200 #define IS_FMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_LOW) || \
AnnaBridge 145:64910690c574 201 ((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_HIGH))
AnnaBridge 145:64910690c574 202
AnnaBridge 145:64910690c574 203 #define IS_FMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FMC_WAIT_TIMING_BEFORE_WS) || \
AnnaBridge 145:64910690c574 204 ((__ACTIVE__) == FMC_WAIT_TIMING_DURING_WS))
AnnaBridge 145:64910690c574 205
AnnaBridge 145:64910690c574 206 #define IS_FMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FMC_WRITE_OPERATION_DISABLE) || \
AnnaBridge 145:64910690c574 207 ((__OPERATION__) == FMC_WRITE_OPERATION_ENABLE))
AnnaBridge 145:64910690c574 208
AnnaBridge 145:64910690c574 209 #define IS_FMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FMC_WAIT_SIGNAL_DISABLE) || \
AnnaBridge 145:64910690c574 210 ((__SIGNAL__) == FMC_WAIT_SIGNAL_ENABLE))
AnnaBridge 145:64910690c574 211
AnnaBridge 145:64910690c574 212 #define IS_FMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FMC_EXTENDED_MODE_DISABLE) || \
AnnaBridge 145:64910690c574 213 ((__MODE__) == FMC_EXTENDED_MODE_ENABLE))
AnnaBridge 145:64910690c574 214
AnnaBridge 145:64910690c574 215 #define IS_FMC_ASYNWAIT(__STATE__) (((__STATE__) == FMC_ASYNCHRONOUS_WAIT_DISABLE) || \
AnnaBridge 145:64910690c574 216 ((__STATE__) == FMC_ASYNCHRONOUS_WAIT_ENABLE))
AnnaBridge 145:64910690c574 217
AnnaBridge 145:64910690c574 218 #define IS_FMC_CLK_DIV(__DIV__) (((__DIV__) > 1) && ((__DIV__) <= 16))
AnnaBridge 145:64910690c574 219
AnnaBridge 145:64910690c574 220 /** @defgroup FMC_Data_Latency FMC Data Latency
AnnaBridge 145:64910690c574 221 * @{
AnnaBridge 145:64910690c574 222 */
AnnaBridge 145:64910690c574 223 #define IS_FMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1) && ((__LATENCY__) <= 17))
AnnaBridge 145:64910690c574 224 /**
AnnaBridge 145:64910690c574 225 * @}
AnnaBridge 145:64910690c574 226 */
AnnaBridge 145:64910690c574 227
AnnaBridge 145:64910690c574 228 /** @defgroup FMC_Address_Setup_Time FMC Address Setup Time
AnnaBridge 145:64910690c574 229 * @{
AnnaBridge 145:64910690c574 230 */
AnnaBridge 145:64910690c574 231 #define IS_FMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15)
AnnaBridge 145:64910690c574 232 /**
AnnaBridge 145:64910690c574 233 * @}
AnnaBridge 145:64910690c574 234 */
AnnaBridge 145:64910690c574 235
AnnaBridge 145:64910690c574 236 /** @defgroup FMC_Address_Hold_Time FMC Address Hold Time
AnnaBridge 145:64910690c574 237 * @{
AnnaBridge 145:64910690c574 238 */
AnnaBridge 145:64910690c574 239 #define IS_FMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 15))
AnnaBridge 145:64910690c574 240 /**
AnnaBridge 145:64910690c574 241 * @}
AnnaBridge 145:64910690c574 242 */
AnnaBridge 145:64910690c574 243
AnnaBridge 145:64910690c574 244 /** @defgroup FMC_Data_Setup_Time FMC Data Setup Time
AnnaBridge 145:64910690c574 245 * @{
AnnaBridge 145:64910690c574 246 */
AnnaBridge 145:64910690c574 247 #define IS_FMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 255))
AnnaBridge 145:64910690c574 248 /**
AnnaBridge 145:64910690c574 249 * @}
AnnaBridge 145:64910690c574 250 */
AnnaBridge 145:64910690c574 251
AnnaBridge 161:aa5281ff4a02 252 #if defined(FMC_BTRx_DATAHLD)
AnnaBridge 161:aa5281ff4a02 253 /** @defgroup FMC_Data_Hold_Time
AnnaBridge 161:aa5281ff4a02 254 * @{
AnnaBridge 161:aa5281ff4a02 255 */
AnnaBridge 161:aa5281ff4a02 256 #define IS_FMC_DATAHOLD_TIME(__TIME__) ((__TIME__) <= 3)
AnnaBridge 161:aa5281ff4a02 257 /**
AnnaBridge 161:aa5281ff4a02 258 * @}
AnnaBridge 161:aa5281ff4a02 259 */
AnnaBridge 161:aa5281ff4a02 260 #endif /* FMC_BTRx_DATAHLD */
AnnaBridge 161:aa5281ff4a02 261
AnnaBridge 145:64910690c574 262 /** @defgroup FMC_Bus_Turn_around_Duration FMC Bus Turn around Duration
AnnaBridge 145:64910690c574 263 * @{
AnnaBridge 145:64910690c574 264 */
AnnaBridge 145:64910690c574 265 #define IS_FMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15)
AnnaBridge 145:64910690c574 266 /**
AnnaBridge 145:64910690c574 267 * @}
AnnaBridge 145:64910690c574 268 */
AnnaBridge 145:64910690c574 269
AnnaBridge 145:64910690c574 270 /**
AnnaBridge 145:64910690c574 271 * @}
AnnaBridge 145:64910690c574 272 */
AnnaBridge 145:64910690c574 273
AnnaBridge 145:64910690c574 274 /* Exported typedef ----------------------------------------------------------*/
AnnaBridge 145:64910690c574 275
AnnaBridge 145:64910690c574 276 /** @defgroup FMC_NORSRAM_Exported_typedef FMC Low Layer Exported Types
AnnaBridge 145:64910690c574 277 * @{
AnnaBridge 145:64910690c574 278 */
AnnaBridge 145:64910690c574 279
AnnaBridge 145:64910690c574 280 #define FMC_NORSRAM_TypeDef FMC_Bank1_TypeDef
AnnaBridge 145:64910690c574 281 #define FMC_NORSRAM_EXTENDED_TypeDef FMC_Bank1E_TypeDef
AnnaBridge 145:64910690c574 282 #define FMC_NAND_TypeDef FMC_Bank3_TypeDef
AnnaBridge 145:64910690c574 283
AnnaBridge 145:64910690c574 284 #define FMC_NORSRAM_DEVICE FMC_Bank1_R
AnnaBridge 145:64910690c574 285 #define FMC_NORSRAM_EXTENDED_DEVICE FMC_Bank1E_R
AnnaBridge 145:64910690c574 286 #define FMC_NAND_DEVICE FMC_Bank3_R
AnnaBridge 145:64910690c574 287
AnnaBridge 145:64910690c574 288 /**
AnnaBridge 145:64910690c574 289 * @brief FMC_NORSRAM Configuration Structure definition
AnnaBridge 145:64910690c574 290 */
AnnaBridge 145:64910690c574 291 typedef struct
AnnaBridge 145:64910690c574 292 {
AnnaBridge 145:64910690c574 293 uint32_t NSBank; /*!< Specifies the NORSRAM memory device that will be used.
AnnaBridge 145:64910690c574 294 This parameter can be a value of @ref FMC_NORSRAM_Bank */
AnnaBridge 145:64910690c574 295
AnnaBridge 145:64910690c574 296 uint32_t DataAddressMux; /*!< Specifies whether the address and data values are
AnnaBridge 145:64910690c574 297 multiplexed on the data bus or not.
AnnaBridge 145:64910690c574 298 This parameter can be a value of @ref FMC_Data_Address_Bus_Multiplexing */
AnnaBridge 145:64910690c574 299
AnnaBridge 145:64910690c574 300 uint32_t MemoryType; /*!< Specifies the type of external memory attached to
AnnaBridge 145:64910690c574 301 the corresponding memory device.
AnnaBridge 145:64910690c574 302 This parameter can be a value of @ref FMC_Memory_Type */
AnnaBridge 145:64910690c574 303
AnnaBridge 145:64910690c574 304 uint32_t MemoryDataWidth; /*!< Specifies the external memory device width.
AnnaBridge 145:64910690c574 305 This parameter can be a value of @ref FMC_NORSRAM_Data_Width */
AnnaBridge 145:64910690c574 306
AnnaBridge 145:64910690c574 307 uint32_t BurstAccessMode; /*!< Enables or disables the burst access mode for Flash memory,
AnnaBridge 145:64910690c574 308 valid only with synchronous burst Flash memories.
AnnaBridge 145:64910690c574 309 This parameter can be a value of @ref FMC_Burst_Access_Mode */
AnnaBridge 145:64910690c574 310
AnnaBridge 145:64910690c574 311 uint32_t WaitSignalPolarity; /*!< Specifies the wait signal polarity, valid only when accessing
AnnaBridge 145:64910690c574 312 the Flash memory in burst mode.
AnnaBridge 145:64910690c574 313 This parameter can be a value of @ref FMC_Wait_Signal_Polarity */
AnnaBridge 145:64910690c574 314
AnnaBridge 145:64910690c574 315 uint32_t WaitSignalActive; /*!< Specifies if the wait signal is asserted by the memory one
AnnaBridge 145:64910690c574 316 clock cycle before the wait state or during the wait state,
AnnaBridge 145:64910690c574 317 valid only when accessing memories in burst mode.
AnnaBridge 145:64910690c574 318 This parameter can be a value of @ref FMC_Wait_Timing */
AnnaBridge 145:64910690c574 319
AnnaBridge 145:64910690c574 320 uint32_t WriteOperation; /*!< Enables or disables the write operation in the selected device by the FMC.
AnnaBridge 145:64910690c574 321 This parameter can be a value of @ref FMC_Write_Operation */
AnnaBridge 145:64910690c574 322
AnnaBridge 145:64910690c574 323 uint32_t WaitSignal; /*!< Enables or disables the wait state insertion via wait
AnnaBridge 145:64910690c574 324 signal, valid for Flash memory access in burst mode.
AnnaBridge 145:64910690c574 325 This parameter can be a value of @ref FMC_Wait_Signal */
AnnaBridge 145:64910690c574 326
AnnaBridge 145:64910690c574 327 uint32_t ExtendedMode; /*!< Enables or disables the extended mode.
AnnaBridge 145:64910690c574 328 This parameter can be a value of @ref FMC_Extended_Mode */
AnnaBridge 145:64910690c574 329
AnnaBridge 145:64910690c574 330 uint32_t AsynchronousWait; /*!< Enables or disables wait signal during asynchronous transfers,
AnnaBridge 145:64910690c574 331 valid only with asynchronous Flash memories.
AnnaBridge 145:64910690c574 332 This parameter can be a value of @ref FMC_AsynchronousWait */
AnnaBridge 145:64910690c574 333
AnnaBridge 145:64910690c574 334 uint32_t WriteBurst; /*!< Enables or disables the write burst operation.
AnnaBridge 145:64910690c574 335 This parameter can be a value of @ref FMC_Write_Burst */
AnnaBridge 145:64910690c574 336
AnnaBridge 145:64910690c574 337 uint32_t ContinuousClock; /*!< Enables or disables the FMC clock output to external memory devices.
AnnaBridge 145:64910690c574 338 This parameter is only enabled through the FMC_BCR1 register, and don't care
AnnaBridge 145:64910690c574 339 through FMC_BCR2..4 registers.
AnnaBridge 145:64910690c574 340 This parameter can be a value of @ref FMC_Continous_Clock */
AnnaBridge 145:64910690c574 341
AnnaBridge 145:64910690c574 342 uint32_t WriteFifo; /*!< Enables or disables the write FIFO used by the FMC controller.
AnnaBridge 145:64910690c574 343 This parameter is only enabled through the FMC_BCR1 register, and don't care
AnnaBridge 145:64910690c574 344 through FMC_BCR2..4 registers.
AnnaBridge 145:64910690c574 345 This parameter can be a value of @ref FMC_Write_FIFO.
AnnaBridge 145:64910690c574 346 @note This Parameter is not available for STM32L47x/L48x devices. */
AnnaBridge 145:64910690c574 347
AnnaBridge 161:aa5281ff4a02 348 #if defined(FMC_BCRx_NBLSET)
AnnaBridge 161:aa5281ff4a02 349 uint32_t NBLSetupTime; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 161:aa5281ff4a02 350 the duration of the byte lane (NBL) setup time from NBLx low to Chip select NEx low.
AnnaBridge 161:aa5281ff4a02 351 This parameter can be a value between Min_Data = 0 and Max_Data = 3.
AnnaBridge 161:aa5281ff4a02 352 @note This parameter is used for SRAMs, ROMs and NOR Flash memories. */
AnnaBridge 161:aa5281ff4a02 353 #endif /* FMC_BCRx_NBLSET */
AnnaBridge 161:aa5281ff4a02 354
AnnaBridge 145:64910690c574 355 uint32_t PageSize; /*!< Specifies the memory page size.
AnnaBridge 145:64910690c574 356 This parameter can be a value of @ref FMC_Page_Size */
AnnaBridge 145:64910690c574 357 }FMC_NORSRAM_InitTypeDef;
AnnaBridge 145:64910690c574 358
AnnaBridge 145:64910690c574 359 /**
AnnaBridge 145:64910690c574 360 * @brief FMC_NORSRAM Timing parameters structure definition
AnnaBridge 145:64910690c574 361 */
AnnaBridge 145:64910690c574 362 typedef struct
AnnaBridge 145:64910690c574 363 {
AnnaBridge 145:64910690c574 364 uint32_t AddressSetupTime; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 145:64910690c574 365 the duration of the address setup time.
AnnaBridge 145:64910690c574 366 This parameter can be a value between Min_Data = 0 and Max_Data = 15.
AnnaBridge 145:64910690c574 367 @note This parameter is not used with synchronous NOR Flash memories. */
AnnaBridge 145:64910690c574 368
AnnaBridge 145:64910690c574 369 uint32_t AddressHoldTime; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 145:64910690c574 370 the duration of the address hold time.
AnnaBridge 145:64910690c574 371 This parameter can be a value between Min_Data = 1 and Max_Data = 15.
AnnaBridge 145:64910690c574 372 @note This parameter is not used with synchronous NOR Flash memories. */
AnnaBridge 145:64910690c574 373
AnnaBridge 145:64910690c574 374 uint32_t DataSetupTime; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 145:64910690c574 375 the duration of the data setup time.
AnnaBridge 145:64910690c574 376 This parameter can be a value between Min_Data = 1 and Max_Data = 255.
AnnaBridge 145:64910690c574 377 @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
AnnaBridge 145:64910690c574 378 NOR Flash memories. */
AnnaBridge 145:64910690c574 379
AnnaBridge 161:aa5281ff4a02 380 #if defined(FMC_BTRx_DATAHLD)
AnnaBridge 161:aa5281ff4a02 381 uint32_t DataHoldTime; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 161:aa5281ff4a02 382 the duration of the data hold time.
AnnaBridge 161:aa5281ff4a02 383 This parameter can be a value between Min_Data = 0 and Max_Data = 3.
AnnaBridge 161:aa5281ff4a02 384 @note This parameter value corresponds to x HCLK cycles for read and
AnnaBridge 161:aa5281ff4a02 385 x+1 HCLK cycles for write.
AnnaBridge 161:aa5281ff4a02 386 @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
AnnaBridge 161:aa5281ff4a02 387 NOR Flash memories. */
AnnaBridge 161:aa5281ff4a02 388 #endif /* FMC_BTRx_DATAHLD */
AnnaBridge 161:aa5281ff4a02 389
AnnaBridge 145:64910690c574 390 uint32_t BusTurnAroundDuration; /*!< Defines the number of HCLK cycles to configure
AnnaBridge 145:64910690c574 391 the duration of the bus turnaround.
AnnaBridge 145:64910690c574 392 This parameter can be a value between Min_Data = 0 and Max_Data = 15.
AnnaBridge 145:64910690c574 393 @note This parameter is only used for multiplexed NOR Flash memories. */
AnnaBridge 145:64910690c574 394
AnnaBridge 145:64910690c574 395 uint32_t CLKDivision; /*!< Defines the period of CLK clock output signal, expressed in number of
AnnaBridge 145:64910690c574 396 HCLK cycles. This parameter can be a value between Min_Data = 2 and Max_Data = 16.
AnnaBridge 145:64910690c574 397 @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
AnnaBridge 145:64910690c574 398 accesses. */
AnnaBridge 145:64910690c574 399
AnnaBridge 145:64910690c574 400 uint32_t DataLatency; /*!< Defines the number of memory clock cycles to issue
AnnaBridge 145:64910690c574 401 to the memory before getting the first data.
AnnaBridge 145:64910690c574 402 The parameter value depends on the memory type as shown below:
AnnaBridge 145:64910690c574 403 - It must be set to 0 in case of a CRAM
AnnaBridge 145:64910690c574 404 - It is don't care in asynchronous NOR, SRAM or ROM accesses
AnnaBridge 145:64910690c574 405 - It may assume a value between Min_Data = 2 and Max_Data = 17 in NOR Flash memories
AnnaBridge 145:64910690c574 406 with synchronous burst mode enable */
AnnaBridge 145:64910690c574 407
AnnaBridge 145:64910690c574 408 uint32_t AccessMode; /*!< Specifies the asynchronous access mode.
AnnaBridge 145:64910690c574 409 This parameter can be a value of @ref FMC_Access_Mode */
AnnaBridge 145:64910690c574 410
AnnaBridge 145:64910690c574 411 }FMC_NORSRAM_TimingTypeDef;
AnnaBridge 145:64910690c574 412
AnnaBridge 145:64910690c574 413 /**
AnnaBridge 145:64910690c574 414 * @brief FMC_NAND Configuration Structure definition
AnnaBridge 145:64910690c574 415 */
AnnaBridge 145:64910690c574 416 typedef struct
AnnaBridge 145:64910690c574 417 {
AnnaBridge 145:64910690c574 418 uint32_t NandBank; /*!< Specifies the NAND memory device that will be used.
AnnaBridge 145:64910690c574 419 This parameter can be a value of @ref FMC_NAND_Bank */
AnnaBridge 145:64910690c574 420
AnnaBridge 145:64910690c574 421 uint32_t Waitfeature; /*!< Enables or disables the Wait feature for the NAND Memory device.
AnnaBridge 145:64910690c574 422 This parameter can be any value of @ref FMC_Wait_feature */
AnnaBridge 145:64910690c574 423
AnnaBridge 145:64910690c574 424 uint32_t MemoryDataWidth; /*!< Specifies the external memory device width.
AnnaBridge 145:64910690c574 425 This parameter can be any value of @ref FMC_NAND_Data_Width */
AnnaBridge 145:64910690c574 426
AnnaBridge 145:64910690c574 427 uint32_t EccComputation; /*!< Enables or disables the ECC computation.
AnnaBridge 145:64910690c574 428 This parameter can be any value of @ref FMC_ECC */
AnnaBridge 145:64910690c574 429
AnnaBridge 145:64910690c574 430 uint32_t ECCPageSize; /*!< Defines the page size for the extended ECC.
AnnaBridge 145:64910690c574 431 This parameter can be any value of @ref FMC_ECC_Page_Size */
AnnaBridge 145:64910690c574 432
AnnaBridge 145:64910690c574 433 uint32_t TCLRSetupTime; /*!< Defines the number of HCLK cycles to configure the
AnnaBridge 145:64910690c574 434 delay between CLE low and RE low.
AnnaBridge 145:64910690c574 435 This parameter can be a value between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 436
AnnaBridge 145:64910690c574 437 uint32_t TARSetupTime; /*!< Defines the number of HCLK cycles to configure the
AnnaBridge 145:64910690c574 438 delay between ALE low and RE low.
AnnaBridge 145:64910690c574 439 This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 440
AnnaBridge 145:64910690c574 441 }FMC_NAND_InitTypeDef;
AnnaBridge 145:64910690c574 442
AnnaBridge 145:64910690c574 443 /**
AnnaBridge 145:64910690c574 444 * @brief FMC_NAND Timing parameters structure definition
AnnaBridge 145:64910690c574 445 */
AnnaBridge 145:64910690c574 446 typedef struct
AnnaBridge 145:64910690c574 447 {
AnnaBridge 145:64910690c574 448 uint32_t SetupTime; /*!< Defines the number of HCLK cycles to setup address before
AnnaBridge 145:64910690c574 449 the command assertion for NAND-Flash read or write access
AnnaBridge 145:64910690c574 450 to common/Attribute or I/O memory space (depending on
AnnaBridge 145:64910690c574 451 the memory space timing to be configured).
AnnaBridge 145:64910690c574 452 This parameter can be a value between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 453
AnnaBridge 145:64910690c574 454 uint32_t WaitSetupTime; /*!< Defines the minimum number of HCLK cycles to assert the
AnnaBridge 145:64910690c574 455 command for NAND-Flash read or write access to
AnnaBridge 145:64910690c574 456 common/Attribute or I/O memory space (depending on the
AnnaBridge 145:64910690c574 457 memory space timing to be configured).
AnnaBridge 145:64910690c574 458 This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 459
AnnaBridge 145:64910690c574 460 uint32_t HoldSetupTime; /*!< Defines the number of HCLK clock cycles to hold address
AnnaBridge 145:64910690c574 461 (and data for write access) after the command de-assertion
AnnaBridge 145:64910690c574 462 for NAND-Flash read or write access to common/Attribute
AnnaBridge 145:64910690c574 463 or I/O memory space (depending on the memory space timing
AnnaBridge 145:64910690c574 464 to be configured).
AnnaBridge 145:64910690c574 465 This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 466
AnnaBridge 145:64910690c574 467 uint32_t HiZSetupTime; /*!< Defines the number of HCLK clock cycles during which the
AnnaBridge 145:64910690c574 468 data bus is kept in HiZ after the start of a NAND-Flash
AnnaBridge 145:64910690c574 469 write access to common/Attribute or I/O memory space (depending
AnnaBridge 145:64910690c574 470 on the memory space timing to be configured).
AnnaBridge 145:64910690c574 471 This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
AnnaBridge 145:64910690c574 472
AnnaBridge 145:64910690c574 473 }FMC_NAND_PCC_TimingTypeDef;
AnnaBridge 145:64910690c574 474
AnnaBridge 145:64910690c574 475 /**
AnnaBridge 145:64910690c574 476 * @}
AnnaBridge 145:64910690c574 477 */
AnnaBridge 145:64910690c574 478
AnnaBridge 145:64910690c574 479 /* Exported constants --------------------------------------------------------*/
AnnaBridge 145:64910690c574 480
AnnaBridge 145:64910690c574 481 /** @defgroup FMC_Exported_Constants FMC Low Layer Exported Constants
AnnaBridge 145:64910690c574 482 * @{
AnnaBridge 145:64910690c574 483 */
AnnaBridge 145:64910690c574 484
AnnaBridge 145:64910690c574 485 /** @defgroup FMC_NORSRAM_Exported_constants FMC NOR/SRAM Exported constants
AnnaBridge 145:64910690c574 486 * @{
AnnaBridge 145:64910690c574 487 */
AnnaBridge 145:64910690c574 488
AnnaBridge 145:64910690c574 489 /** @defgroup FMC_NORSRAM_Bank FMC NOR/SRAM Bank
AnnaBridge 145:64910690c574 490 * @{
AnnaBridge 145:64910690c574 491 */
AnnaBridge 145:64910690c574 492 #define FMC_NORSRAM_BANK1 ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 493 #define FMC_NORSRAM_BANK2 ((uint32_t)0x00000002)
AnnaBridge 145:64910690c574 494 #define FMC_NORSRAM_BANK3 ((uint32_t)0x00000004)
AnnaBridge 145:64910690c574 495 #define FMC_NORSRAM_BANK4 ((uint32_t)0x00000006)
AnnaBridge 145:64910690c574 496
AnnaBridge 145:64910690c574 497 /**
AnnaBridge 145:64910690c574 498 * @}
AnnaBridge 145:64910690c574 499 */
AnnaBridge 145:64910690c574 500
AnnaBridge 145:64910690c574 501 /** @defgroup FMC_Data_Address_Bus_Multiplexing FMC Data Address Bus Multiplexing
AnnaBridge 145:64910690c574 502 * @{
AnnaBridge 145:64910690c574 503 */
AnnaBridge 145:64910690c574 504
AnnaBridge 145:64910690c574 505 #define FMC_DATA_ADDRESS_MUX_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 506 #define FMC_DATA_ADDRESS_MUX_ENABLE ((uint32_t)FMC_BCRx_MUXEN)
AnnaBridge 145:64910690c574 507
AnnaBridge 145:64910690c574 508 /**
AnnaBridge 145:64910690c574 509 * @}
AnnaBridge 145:64910690c574 510 */
AnnaBridge 145:64910690c574 511
AnnaBridge 145:64910690c574 512 /** @defgroup FMC_Memory_Type FMC Memory Type
AnnaBridge 145:64910690c574 513 * @{
AnnaBridge 145:64910690c574 514 */
AnnaBridge 145:64910690c574 515
AnnaBridge 145:64910690c574 516 #define FMC_MEMORY_TYPE_SRAM ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 517 #define FMC_MEMORY_TYPE_PSRAM ((uint32_t)FMC_BCRx_MTYP_0)
AnnaBridge 145:64910690c574 518 #define FMC_MEMORY_TYPE_NOR ((uint32_t)FMC_BCRx_MTYP_1)
AnnaBridge 145:64910690c574 519
AnnaBridge 145:64910690c574 520 /**
AnnaBridge 145:64910690c574 521 * @}
AnnaBridge 145:64910690c574 522 */
AnnaBridge 145:64910690c574 523
AnnaBridge 145:64910690c574 524 /** @defgroup FMC_NORSRAM_Data_Width FMC NOR/SRAM Data Width
AnnaBridge 145:64910690c574 525 * @{
AnnaBridge 145:64910690c574 526 */
AnnaBridge 145:64910690c574 527
AnnaBridge 145:64910690c574 528 #define FMC_NORSRAM_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 529 #define FMC_NORSRAM_MEM_BUS_WIDTH_16 ((uint32_t)FMC_BCRx_MWID_0)
AnnaBridge 145:64910690c574 530 #define FMC_NORSRAM_MEM_BUS_WIDTH_32 ((uint32_t)FMC_BCRx_MWID_1)
AnnaBridge 145:64910690c574 531
AnnaBridge 145:64910690c574 532 /**
AnnaBridge 145:64910690c574 533 * @}
AnnaBridge 145:64910690c574 534 */
AnnaBridge 145:64910690c574 535
AnnaBridge 145:64910690c574 536 /** @defgroup FMC_NORSRAM_Flash_Access FMC NOR/SRAM Flash Access
AnnaBridge 145:64910690c574 537 * @{
AnnaBridge 145:64910690c574 538 */
AnnaBridge 145:64910690c574 539
AnnaBridge 145:64910690c574 540 #define FMC_NORSRAM_FLASH_ACCESS_ENABLE ((uint32_t)FMC_BCRx_FACCEN)
AnnaBridge 145:64910690c574 541 #define FMC_NORSRAM_FLASH_ACCESS_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 542 /**
AnnaBridge 145:64910690c574 543 * @}
AnnaBridge 145:64910690c574 544 */
AnnaBridge 145:64910690c574 545
AnnaBridge 145:64910690c574 546 /** @defgroup FMC_Burst_Access_Mode FMC Burst Access Mode
AnnaBridge 145:64910690c574 547 * @{
AnnaBridge 145:64910690c574 548 */
AnnaBridge 145:64910690c574 549
AnnaBridge 145:64910690c574 550 #define FMC_BURST_ACCESS_MODE_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 551 #define FMC_BURST_ACCESS_MODE_ENABLE ((uint32_t)FMC_BCRx_BURSTEN)
AnnaBridge 145:64910690c574 552
AnnaBridge 145:64910690c574 553 /**
AnnaBridge 145:64910690c574 554 * @}
AnnaBridge 145:64910690c574 555 */
AnnaBridge 145:64910690c574 556
AnnaBridge 145:64910690c574 557
AnnaBridge 145:64910690c574 558 /** @defgroup FMC_Wait_Signal_Polarity FMC Wait Signal Polarity
AnnaBridge 145:64910690c574 559 * @{
AnnaBridge 145:64910690c574 560 */
AnnaBridge 145:64910690c574 561
AnnaBridge 145:64910690c574 562 #define FMC_WAIT_SIGNAL_POLARITY_LOW ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 563 #define FMC_WAIT_SIGNAL_POLARITY_HIGH ((uint32_t)FMC_BCRx_WAITPOL)
AnnaBridge 145:64910690c574 564
AnnaBridge 145:64910690c574 565 /**
AnnaBridge 145:64910690c574 566 * @}
AnnaBridge 145:64910690c574 567 */
AnnaBridge 145:64910690c574 568
AnnaBridge 145:64910690c574 569 /**
AnnaBridge 145:64910690c574 570 * @}
AnnaBridge 145:64910690c574 571 */
AnnaBridge 145:64910690c574 572
AnnaBridge 145:64910690c574 573 /** @defgroup FMC_Wait_Timing FMC Wait Timing
AnnaBridge 145:64910690c574 574 * @{
AnnaBridge 145:64910690c574 575 */
AnnaBridge 145:64910690c574 576
AnnaBridge 145:64910690c574 577 #define FMC_WAIT_TIMING_BEFORE_WS ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 578 #define FMC_WAIT_TIMING_DURING_WS ((uint32_t)FMC_BCRx_WAITCFG)
AnnaBridge 145:64910690c574 579
AnnaBridge 145:64910690c574 580 /**
AnnaBridge 145:64910690c574 581 * @}
AnnaBridge 145:64910690c574 582 */
AnnaBridge 145:64910690c574 583
AnnaBridge 145:64910690c574 584 /** @defgroup FMC_Write_Operation FMC Write Operation
AnnaBridge 145:64910690c574 585 * @{
AnnaBridge 145:64910690c574 586 */
AnnaBridge 145:64910690c574 587
AnnaBridge 145:64910690c574 588 #define FMC_WRITE_OPERATION_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 589 #define FMC_WRITE_OPERATION_ENABLE ((uint32_t)FMC_BCRx_WREN)
AnnaBridge 145:64910690c574 590
AnnaBridge 145:64910690c574 591 /**
AnnaBridge 145:64910690c574 592 * @}
AnnaBridge 145:64910690c574 593 */
AnnaBridge 145:64910690c574 594
AnnaBridge 145:64910690c574 595 /** @defgroup FMC_Wait_Signal FMC Wait Signal
AnnaBridge 145:64910690c574 596 * @{
AnnaBridge 145:64910690c574 597 */
AnnaBridge 145:64910690c574 598
AnnaBridge 145:64910690c574 599 #define FMC_WAIT_SIGNAL_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 600 #define FMC_WAIT_SIGNAL_ENABLE ((uint32_t)FMC_BCRx_WAITEN)
AnnaBridge 145:64910690c574 601
AnnaBridge 145:64910690c574 602 /**
AnnaBridge 145:64910690c574 603 * @}
AnnaBridge 145:64910690c574 604 */
AnnaBridge 145:64910690c574 605
AnnaBridge 145:64910690c574 606 /** @defgroup FMC_Extended_Mode FMC Extended Mode
AnnaBridge 145:64910690c574 607 * @{
AnnaBridge 145:64910690c574 608 */
AnnaBridge 145:64910690c574 609
AnnaBridge 145:64910690c574 610 #define FMC_EXTENDED_MODE_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 611 #define FMC_EXTENDED_MODE_ENABLE ((uint32_t)FMC_BCRx_EXTMOD)
AnnaBridge 145:64910690c574 612
AnnaBridge 145:64910690c574 613 /**
AnnaBridge 145:64910690c574 614 * @}
AnnaBridge 145:64910690c574 615 */
AnnaBridge 145:64910690c574 616
AnnaBridge 145:64910690c574 617 /** @defgroup FMC_AsynchronousWait FMC Asynchronous Wait
AnnaBridge 145:64910690c574 618 * @{
AnnaBridge 145:64910690c574 619 */
AnnaBridge 145:64910690c574 620
AnnaBridge 145:64910690c574 621 #define FMC_ASYNCHRONOUS_WAIT_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 622 #define FMC_ASYNCHRONOUS_WAIT_ENABLE ((uint32_t)FMC_BCRx_ASYNCWAIT)
AnnaBridge 145:64910690c574 623
AnnaBridge 145:64910690c574 624 /**
AnnaBridge 145:64910690c574 625 * @}
AnnaBridge 145:64910690c574 626 */
AnnaBridge 145:64910690c574 627
AnnaBridge 145:64910690c574 628 /** @defgroup FMC_Page_Size FMC Page Size
AnnaBridge 145:64910690c574 629 * @{
AnnaBridge 145:64910690c574 630 */
AnnaBridge 145:64910690c574 631 #define FMC_PAGE_SIZE_NONE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 632 #define FMC_PAGE_SIZE_128 ((uint32_t)FMC_BCRx_CPSIZE_0)
AnnaBridge 145:64910690c574 633 #define FMC_PAGE_SIZE_256 ((uint32_t)FMC_BCRx_CPSIZE_1)
AnnaBridge 145:64910690c574 634 #define FMC_PAGE_SIZE_512 ((uint32_t)(FMC_BCRx_CPSIZE_0 | FMC_BCRx_CPSIZE_1))
AnnaBridge 145:64910690c574 635 #define FMC_PAGE_SIZE_1024 ((uint32_t)FMC_BCRx_CPSIZE_2)
AnnaBridge 145:64910690c574 636 /**
AnnaBridge 145:64910690c574 637 * @}
AnnaBridge 145:64910690c574 638 */
AnnaBridge 145:64910690c574 639
AnnaBridge 145:64910690c574 640 /** @defgroup FMC_Write_Burst FMC Write Burst
AnnaBridge 145:64910690c574 641 * @{
AnnaBridge 145:64910690c574 642 */
AnnaBridge 145:64910690c574 643
AnnaBridge 145:64910690c574 644 #define FMC_WRITE_BURST_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 645 #define FMC_WRITE_BURST_ENABLE ((uint32_t)FMC_BCRx_CBURSTRW)
AnnaBridge 145:64910690c574 646
AnnaBridge 145:64910690c574 647 /**
AnnaBridge 145:64910690c574 648 * @}
AnnaBridge 145:64910690c574 649 */
AnnaBridge 145:64910690c574 650
AnnaBridge 145:64910690c574 651 /** @defgroup FMC_Continous_Clock FMC Continous Clock
AnnaBridge 145:64910690c574 652 * @{
AnnaBridge 145:64910690c574 653 */
AnnaBridge 145:64910690c574 654 #define FMC_CONTINUOUS_CLOCK_SYNC_ONLY ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 655 #define FMC_CONTINUOUS_CLOCK_SYNC_ASYNC ((uint32_t)FMC_BCR1_CCLKEN)
AnnaBridge 145:64910690c574 656 /**
AnnaBridge 145:64910690c574 657 * @}
AnnaBridge 145:64910690c574 658 */
AnnaBridge 145:64910690c574 659
AnnaBridge 145:64910690c574 660 #if defined(FMC_BCR1_WFDIS)
AnnaBridge 145:64910690c574 661 /** @defgroup FMC_Write_FIFO FMC Write FIFO
AnnaBridge 145:64910690c574 662 * @{
AnnaBridge 145:64910690c574 663 */
AnnaBridge 145:64910690c574 664 #define FMC_WRITE_FIFO_DISABLE ((uint32_t)FMC_BCR1_WFDIS)
AnnaBridge 145:64910690c574 665 #define FMC_WRITE_FIFO_ENABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 666 /**
AnnaBridge 145:64910690c574 667 * @}
AnnaBridge 145:64910690c574 668 */
AnnaBridge 145:64910690c574 669
AnnaBridge 145:64910690c574 670 #endif /* FMC_BCR1_WFDIS */
AnnaBridge 145:64910690c574 671 /** @defgroup FMC_Access_Mode FMC Access Mode
AnnaBridge 145:64910690c574 672 * @{
AnnaBridge 145:64910690c574 673 */
AnnaBridge 145:64910690c574 674
AnnaBridge 145:64910690c574 675 #define FMC_ACCESS_MODE_A ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 676 #define FMC_ACCESS_MODE_B ((uint32_t)FMC_BTRx_ACCMOD_0)
AnnaBridge 145:64910690c574 677 #define FMC_ACCESS_MODE_C ((uint32_t)FMC_BTRx_ACCMOD_1)
AnnaBridge 145:64910690c574 678 #define FMC_ACCESS_MODE_D ((uint32_t)(FMC_BTRx_ACCMOD_0 | FMC_BTRx_ACCMOD_1))
AnnaBridge 145:64910690c574 679
AnnaBridge 145:64910690c574 680 /**
AnnaBridge 145:64910690c574 681 * @}
AnnaBridge 145:64910690c574 682 */
AnnaBridge 145:64910690c574 683
AnnaBridge 145:64910690c574 684 /**
AnnaBridge 145:64910690c574 685 * @}
AnnaBridge 145:64910690c574 686 */
AnnaBridge 145:64910690c574 687
AnnaBridge 145:64910690c574 688 /** @defgroup FMC_NAND_Controller FMC NAND and PCCARD Controller
AnnaBridge 145:64910690c574 689 * @{
AnnaBridge 145:64910690c574 690 */
AnnaBridge 145:64910690c574 691
AnnaBridge 145:64910690c574 692 /** @defgroup FMC_NAND_Bank FMC NAND Bank
AnnaBridge 145:64910690c574 693 * @{
AnnaBridge 145:64910690c574 694 */
AnnaBridge 145:64910690c574 695 #define FMC_NAND_BANK3 ((uint32_t)0x00000100)
AnnaBridge 145:64910690c574 696
AnnaBridge 145:64910690c574 697 /**
AnnaBridge 145:64910690c574 698 * @}
AnnaBridge 145:64910690c574 699 */
AnnaBridge 145:64910690c574 700
AnnaBridge 145:64910690c574 701 /** @defgroup FMC_Wait_feature FMC Wait feature
AnnaBridge 145:64910690c574 702 * @{
AnnaBridge 145:64910690c574 703 */
AnnaBridge 145:64910690c574 704 #define FMC_NAND_WAIT_FEATURE_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 705 #define FMC_NAND_WAIT_FEATURE_ENABLE ((uint32_t)FMC_PCR_PWAITEN)
AnnaBridge 145:64910690c574 706
AnnaBridge 145:64910690c574 707 /**
AnnaBridge 145:64910690c574 708 * @}
AnnaBridge 145:64910690c574 709 */
AnnaBridge 145:64910690c574 710
AnnaBridge 145:64910690c574 711 /** @defgroup FMC_PCR_Memory_Type FMC PCR Memory Type
AnnaBridge 145:64910690c574 712 * @{
AnnaBridge 145:64910690c574 713 */
AnnaBridge 145:64910690c574 714 #define FMC_PCR_MEMORY_TYPE_NAND ((uint32_t)FMC_PCR_PTYP)
AnnaBridge 145:64910690c574 715 /**
AnnaBridge 145:64910690c574 716 * @}
AnnaBridge 145:64910690c574 717 */
AnnaBridge 145:64910690c574 718
AnnaBridge 145:64910690c574 719 /** @defgroup FMC_NAND_Data_Width FMC NAND Data Width
AnnaBridge 145:64910690c574 720 * @{
AnnaBridge 145:64910690c574 721 */
AnnaBridge 145:64910690c574 722 #define FMC_NAND_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 723 #define FMC_NAND_MEM_BUS_WIDTH_16 ((uint32_t)FMC_PCR_PWID_0)
AnnaBridge 145:64910690c574 724
AnnaBridge 145:64910690c574 725 /**
AnnaBridge 145:64910690c574 726 * @}
AnnaBridge 145:64910690c574 727 */
AnnaBridge 145:64910690c574 728
AnnaBridge 145:64910690c574 729 /** @defgroup FMC_ECC FMC NAND ECC
AnnaBridge 145:64910690c574 730 * @{
AnnaBridge 145:64910690c574 731 */
AnnaBridge 145:64910690c574 732 #define FMC_NAND_ECC_DISABLE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 733 #define FMC_NAND_ECC_ENABLE ((uint32_t)FMC_PCR_ECCEN)
AnnaBridge 145:64910690c574 734
AnnaBridge 145:64910690c574 735 /**
AnnaBridge 145:64910690c574 736 * @}
AnnaBridge 145:64910690c574 737 */
AnnaBridge 145:64910690c574 738
AnnaBridge 145:64910690c574 739 /** @defgroup FMC_ECC_Page_Size FMC ECC Page Size
AnnaBridge 145:64910690c574 740 * @{
AnnaBridge 145:64910690c574 741 */
AnnaBridge 145:64910690c574 742 #define FMC_NAND_ECC_PAGE_SIZE_256BYTE ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 743 #define FMC_NAND_ECC_PAGE_SIZE_512BYTE ((uint32_t)FMC_PCR_ECCPS_0)
AnnaBridge 145:64910690c574 744 #define FMC_NAND_ECC_PAGE_SIZE_1024BYTE ((uint32_t)FMC_PCR_ECCPS_1)
AnnaBridge 145:64910690c574 745 #define FMC_NAND_ECC_PAGE_SIZE_2048BYTE ((uint32_t)FMC_PCR_ECCPS_0|FMC_PCR_ECCPS_1)
AnnaBridge 145:64910690c574 746 #define FMC_NAND_ECC_PAGE_SIZE_4096BYTE ((uint32_t)FMC_PCR_ECCPS_2)
AnnaBridge 145:64910690c574 747 #define FMC_NAND_ECC_PAGE_SIZE_8192BYTE ((uint32_t)FMC_PCR_ECCPS_0|FMC_PCR_ECCPS_2)
AnnaBridge 145:64910690c574 748
AnnaBridge 145:64910690c574 749 /**
AnnaBridge 145:64910690c574 750 * @}
AnnaBridge 145:64910690c574 751 */
AnnaBridge 145:64910690c574 752
AnnaBridge 145:64910690c574 753 /** @defgroup FMC_Interrupt_definition FMC Interrupt definition
AnnaBridge 145:64910690c574 754 * @brief FMC Interrupt definition
AnnaBridge 145:64910690c574 755 * @{
AnnaBridge 145:64910690c574 756 */
AnnaBridge 161:aa5281ff4a02 757 #define FMC_IT_RISING_EDGE ((uint32_t)FMC_SR_IREN)
AnnaBridge 161:aa5281ff4a02 758 #define FMC_IT_LEVEL ((uint32_t)FMC_SR_ILEN)
AnnaBridge 161:aa5281ff4a02 759 #define FMC_IT_FALLING_EDGE ((uint32_t)FMC_SR_IFEN)
AnnaBridge 145:64910690c574 760
AnnaBridge 145:64910690c574 761 /**
AnnaBridge 145:64910690c574 762 * @}
AnnaBridge 145:64910690c574 763 */
AnnaBridge 145:64910690c574 764
AnnaBridge 145:64910690c574 765 /** @defgroup FMC_Flag_definition FMC Flag definition
AnnaBridge 145:64910690c574 766 * @brief FMC Flag definition
AnnaBridge 145:64910690c574 767 * @{
AnnaBridge 145:64910690c574 768 */
AnnaBridge 145:64910690c574 769 #define FMC_FLAG_RISING_EDGE ((uint32_t)FMC_SR_IRS)
AnnaBridge 145:64910690c574 770 #define FMC_FLAG_LEVEL ((uint32_t)FMC_SR_ILS)
AnnaBridge 145:64910690c574 771 #define FMC_FLAG_FALLING_EDGE ((uint32_t)FMC_SR_IFS)
AnnaBridge 145:64910690c574 772 #define FMC_FLAG_FEMPT ((uint32_t)FMC_SR_FEMPT)
AnnaBridge 145:64910690c574 773
AnnaBridge 145:64910690c574 774 /**
AnnaBridge 145:64910690c574 775 * @}
AnnaBridge 145:64910690c574 776 */
AnnaBridge 145:64910690c574 777
AnnaBridge 145:64910690c574 778 /**
AnnaBridge 145:64910690c574 779 * @}
AnnaBridge 145:64910690c574 780 */
AnnaBridge 145:64910690c574 781
AnnaBridge 145:64910690c574 782 /**
AnnaBridge 145:64910690c574 783 * @}
AnnaBridge 145:64910690c574 784 */
AnnaBridge 145:64910690c574 785
AnnaBridge 145:64910690c574 786 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 145:64910690c574 787
AnnaBridge 145:64910690c574 788 /** @defgroup FMC_Exported_Macros FMC Low Layer Exported Macros
AnnaBridge 145:64910690c574 789 * @{
AnnaBridge 145:64910690c574 790 */
AnnaBridge 145:64910690c574 791
AnnaBridge 145:64910690c574 792 /** @defgroup FMC_NOR_Macros FMC NOR/SRAM Exported Macros
AnnaBridge 145:64910690c574 793 * @brief macros to handle NOR device enable/disable and read/write operations
AnnaBridge 145:64910690c574 794 * @{
AnnaBridge 145:64910690c574 795 */
AnnaBridge 145:64910690c574 796
AnnaBridge 145:64910690c574 797 /**
AnnaBridge 145:64910690c574 798 * @brief Enable the NORSRAM device access.
AnnaBridge 145:64910690c574 799 * @param __INSTANCE__ FMC_NORSRAM Instance
AnnaBridge 145:64910690c574 800 * @param __BANK__ FMC_NORSRAM Bank
AnnaBridge 145:64910690c574 801 * @retval none
AnnaBridge 145:64910690c574 802 */
AnnaBridge 145:64910690c574 803 #define __FMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__) SET_BIT((__INSTANCE__)->BTCR[(__BANK__)], FMC_BCRx_MBKEN)
AnnaBridge 145:64910690c574 804
AnnaBridge 145:64910690c574 805 /**
AnnaBridge 145:64910690c574 806 * @brief Disable the NORSRAM device access.
AnnaBridge 145:64910690c574 807 * @param __INSTANCE__ FMC_NORSRAM Instance
AnnaBridge 145:64910690c574 808 * @param __BANK__ FMC_NORSRAM Bank
AnnaBridge 145:64910690c574 809 * @retval none
AnnaBridge 145:64910690c574 810 */
AnnaBridge 145:64910690c574 811 #define __FMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->BTCR[(__BANK__)], FMC_BCRx_MBKEN)
AnnaBridge 145:64910690c574 812
AnnaBridge 145:64910690c574 813 /**
AnnaBridge 145:64910690c574 814 * @}
AnnaBridge 145:64910690c574 815 */
AnnaBridge 145:64910690c574 816
AnnaBridge 145:64910690c574 817 /** @defgroup FMC_NAND_Macros FMC NAND Macros
AnnaBridge 145:64910690c574 818 * @brief macros to handle NAND device enable/disable
AnnaBridge 145:64910690c574 819 * @{
AnnaBridge 145:64910690c574 820 */
AnnaBridge 145:64910690c574 821
AnnaBridge 145:64910690c574 822 /**
AnnaBridge 145:64910690c574 823 * @brief Enable the NAND device access.
AnnaBridge 145:64910690c574 824 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 825 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 826 * @retval None
AnnaBridge 145:64910690c574 827 */
AnnaBridge 145:64910690c574 828 #define __FMC_NAND_ENABLE(__INSTANCE__, __BANK__) SET_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
AnnaBridge 145:64910690c574 829
AnnaBridge 145:64910690c574 830 /**
AnnaBridge 145:64910690c574 831 * @brief Disable the NAND device access.
AnnaBridge 145:64910690c574 832 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 833 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 834 * @retval None
AnnaBridge 145:64910690c574 835 */
AnnaBridge 145:64910690c574 836 #define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
AnnaBridge 145:64910690c574 837
AnnaBridge 145:64910690c574 838 /**
AnnaBridge 145:64910690c574 839 * @}
AnnaBridge 145:64910690c574 840 */
AnnaBridge 145:64910690c574 841
AnnaBridge 145:64910690c574 842 /** @defgroup FMC_Interrupt FMC Interrupt
AnnaBridge 145:64910690c574 843 * @brief macros to handle FMC interrupts
AnnaBridge 145:64910690c574 844 * @{
AnnaBridge 145:64910690c574 845 */
AnnaBridge 145:64910690c574 846
AnnaBridge 145:64910690c574 847 /**
AnnaBridge 145:64910690c574 848 * @brief Enable the NAND device interrupt.
AnnaBridge 145:64910690c574 849 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 850 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 851 * @param __INTERRUPT__ FMC_NAND interrupt
AnnaBridge 145:64910690c574 852 * This parameter can be any combination of the following values:
AnnaBridge 145:64910690c574 853 * @arg FMC_IT_RISING_EDGE Interrupt rising edge.
AnnaBridge 145:64910690c574 854 * @arg FMC_IT_LEVEL Interrupt level.
AnnaBridge 145:64910690c574 855 * @arg FMC_IT_FALLING_EDGE Interrupt falling edge.
AnnaBridge 145:64910690c574 856 * @retval None
AnnaBridge 145:64910690c574 857 */
AnnaBridge 145:64910690c574 858 #define __FMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) SET_BIT((__INSTANCE__)->SR, (__INTERRUPT__))
AnnaBridge 145:64910690c574 859
AnnaBridge 145:64910690c574 860 /**
AnnaBridge 145:64910690c574 861 * @brief Disable the NAND device interrupt.
AnnaBridge 145:64910690c574 862 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 863 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 864 * @param __INTERRUPT__ FMC_NAND interrupt
AnnaBridge 145:64910690c574 865 * This parameter can be any combination of the following values:
AnnaBridge 145:64910690c574 866 * @arg FMC_IT_RISING_EDGE Interrupt rising edge.
AnnaBridge 145:64910690c574 867 * @arg FMC_IT_LEVEL Interrupt level.
AnnaBridge 145:64910690c574 868 * @arg FMC_IT_FALLING_EDGE Interrupt falling edge.
AnnaBridge 145:64910690c574 869 * @retval None
AnnaBridge 145:64910690c574 870 */
AnnaBridge 145:64910690c574 871 #define __FMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) CLEAR_BIT((__INSTANCE__)->SR, (__INTERRUPT__))
AnnaBridge 145:64910690c574 872
AnnaBridge 145:64910690c574 873 /**
AnnaBridge 145:64910690c574 874 * @brief Get flag status of the NAND device.
AnnaBridge 145:64910690c574 875 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 876 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 877 * @param __FLAG__ FMC_NAND flag
AnnaBridge 145:64910690c574 878 * This parameter can be any combination of the following values:
AnnaBridge 145:64910690c574 879 * @arg FMC_FLAG_RISING_EDGE Interrupt rising edge flag.
AnnaBridge 145:64910690c574 880 * @arg FMC_FLAG_LEVEL Interrupt level edge flag.
AnnaBridge 145:64910690c574 881 * @arg FMC_FLAG_FALLING_EDGE Interrupt falling edge flag.
AnnaBridge 145:64910690c574 882 * @arg FMC_FLAG_FEMPT FIFO empty flag.
AnnaBridge 145:64910690c574 883 * @retval The state of FLAG (SET or RESET).
AnnaBridge 145:64910690c574 884 */
AnnaBridge 145:64910690c574 885 #define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__INSTANCE__)->SR &(__FLAG__)) == (__FLAG__))
AnnaBridge 145:64910690c574 886
AnnaBridge 145:64910690c574 887 /**
AnnaBridge 145:64910690c574 888 * @brief Clear flag status of the NAND device.
AnnaBridge 145:64910690c574 889 * @param __INSTANCE__ FMC_NAND Instance
AnnaBridge 145:64910690c574 890 * @param __BANK__ FMC_NAND Bank
AnnaBridge 145:64910690c574 891 * @param __FLAG__ FMC_NAND flag
AnnaBridge 145:64910690c574 892 * This parameter can be any combination of the following values:
AnnaBridge 145:64910690c574 893 * @arg FMC_FLAG_RISING_EDGE Interrupt rising edge flag.
AnnaBridge 145:64910690c574 894 * @arg FMC_FLAG_LEVEL Interrupt level edge flag.
AnnaBridge 145:64910690c574 895 * @arg FMC_FLAG_FALLING_EDGE Interrupt falling edge flag.
AnnaBridge 145:64910690c574 896 * @arg FMC_FLAG_FEMPT FIFO empty flag.
AnnaBridge 145:64910690c574 897 * @retval None
AnnaBridge 145:64910690c574 898 */
AnnaBridge 145:64910690c574 899 #define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__) CLEAR_BIT((__INSTANCE__)->SR, (__FLAG__))
AnnaBridge 145:64910690c574 900
AnnaBridge 145:64910690c574 901 /**
AnnaBridge 145:64910690c574 902 * @}
AnnaBridge 145:64910690c574 903 */
AnnaBridge 145:64910690c574 904
AnnaBridge 145:64910690c574 905
AnnaBridge 145:64910690c574 906 /**
AnnaBridge 145:64910690c574 907 * @}
AnnaBridge 145:64910690c574 908 */
AnnaBridge 145:64910690c574 909
AnnaBridge 145:64910690c574 910 /* Exported functions --------------------------------------------------------*/
AnnaBridge 145:64910690c574 911
AnnaBridge 145:64910690c574 912 /** @addtogroup FMC_LL_Exported_Functions
AnnaBridge 145:64910690c574 913 * @{
AnnaBridge 145:64910690c574 914 */
AnnaBridge 145:64910690c574 915
AnnaBridge 145:64910690c574 916 /** @addtogroup FMC_NORSRAM
AnnaBridge 145:64910690c574 917 * @{
AnnaBridge 145:64910690c574 918 */
AnnaBridge 145:64910690c574 919
AnnaBridge 145:64910690c574 920 /** @addtogroup FMC_NORSRAM_Group1
AnnaBridge 145:64910690c574 921 * @{
AnnaBridge 145:64910690c574 922 */
AnnaBridge 145:64910690c574 923
AnnaBridge 145:64910690c574 924 /* FMC_NORSRAM Controller functions ******************************************/
AnnaBridge 145:64910690c574 925 /* Initialization/de-initialization functions */
AnnaBridge 145:64910690c574 926 HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef *Init);
AnnaBridge 145:64910690c574 927 HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
AnnaBridge 145:64910690c574 928 HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode);
AnnaBridge 145:64910690c574 929 HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
AnnaBridge 145:64910690c574 930
AnnaBridge 145:64910690c574 931 /**
AnnaBridge 145:64910690c574 932 * @}
AnnaBridge 145:64910690c574 933 */
AnnaBridge 145:64910690c574 934
AnnaBridge 145:64910690c574 935 /** @addtogroup FMC_NORSRAM_Group2
AnnaBridge 145:64910690c574 936 * @{
AnnaBridge 145:64910690c574 937 */
AnnaBridge 145:64910690c574 938
AnnaBridge 145:64910690c574 939 /* FMC_NORSRAM Control functions */
AnnaBridge 145:64910690c574 940 HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank);
AnnaBridge 145:64910690c574 941 HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank);
AnnaBridge 145:64910690c574 942
AnnaBridge 145:64910690c574 943 /**
AnnaBridge 145:64910690c574 944 * @}
AnnaBridge 145:64910690c574 945 */
AnnaBridge 145:64910690c574 946
AnnaBridge 145:64910690c574 947 /**
AnnaBridge 145:64910690c574 948 * @}
AnnaBridge 145:64910690c574 949 */
AnnaBridge 145:64910690c574 950
AnnaBridge 145:64910690c574 951 /** @addtogroup FMC_NAND
AnnaBridge 145:64910690c574 952 * @{
AnnaBridge 145:64910690c574 953 */
AnnaBridge 145:64910690c574 954
AnnaBridge 145:64910690c574 955 /* FMC_NAND Controller functions **********************************************/
AnnaBridge 145:64910690c574 956 /* Initialization/de-initialization functions */
AnnaBridge 145:64910690c574 957 /** @addtogroup FMC_NAND_Exported_Functions_Group1
AnnaBridge 145:64910690c574 958 * @{
AnnaBridge 145:64910690c574 959 */
AnnaBridge 145:64910690c574 960
AnnaBridge 145:64910690c574 961 HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init);
AnnaBridge 145:64910690c574 962 HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
AnnaBridge 145:64910690c574 963 HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
AnnaBridge 145:64910690c574 964 HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank);
AnnaBridge 145:64910690c574 965
AnnaBridge 145:64910690c574 966 /**
AnnaBridge 145:64910690c574 967 * @}
AnnaBridge 145:64910690c574 968 */
AnnaBridge 145:64910690c574 969
AnnaBridge 145:64910690c574 970 /* FMC_NAND Control functions */
AnnaBridge 145:64910690c574 971 /** @addtogroup FMC_NAND_Exported_Functions_Group2
AnnaBridge 145:64910690c574 972 * @{
AnnaBridge 145:64910690c574 973 */
AnnaBridge 145:64910690c574 974
AnnaBridge 145:64910690c574 975 HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank);
AnnaBridge 145:64910690c574 976 HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank);
AnnaBridge 145:64910690c574 977 HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout);
AnnaBridge 145:64910690c574 978
AnnaBridge 145:64910690c574 979 /**
AnnaBridge 145:64910690c574 980 * @}
AnnaBridge 145:64910690c574 981 */
AnnaBridge 145:64910690c574 982
AnnaBridge 145:64910690c574 983 /**
AnnaBridge 145:64910690c574 984 * @}
AnnaBridge 145:64910690c574 985 */
AnnaBridge 145:64910690c574 986
AnnaBridge 145:64910690c574 987 /**
AnnaBridge 145:64910690c574 988 * @}
AnnaBridge 145:64910690c574 989 */
AnnaBridge 145:64910690c574 990
AnnaBridge 145:64910690c574 991 /**
AnnaBridge 145:64910690c574 992 * @}
AnnaBridge 145:64910690c574 993 */
AnnaBridge 145:64910690c574 994
AnnaBridge 145:64910690c574 995 #endif /* FMC_BANK1 */
AnnaBridge 145:64910690c574 996
AnnaBridge 145:64910690c574 997 /**
AnnaBridge 145:64910690c574 998 * @}
AnnaBridge 145:64910690c574 999 */
AnnaBridge 145:64910690c574 1000
AnnaBridge 145:64910690c574 1001 #ifdef __cplusplus
AnnaBridge 145:64910690c574 1002 }
AnnaBridge 145:64910690c574 1003 #endif
AnnaBridge 145:64910690c574 1004
AnnaBridge 145:64910690c574 1005 #endif /* __STM32L4xx_LL_FMC_H */
AnnaBridge 145:64910690c574 1006
AnnaBridge 145:64910690c574 1007 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
AnnaBridge 145:64910690c574 1008