20 #ifndef STM32F4xx_LL_FMC_H
21 #define STM32F4xx_LL_FMC_H
41 #if defined(FMC_Bank1)
43 #define IS_FMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FMC_NORSRAM_BANK1) || \
44 ((__BANK__) == FMC_NORSRAM_BANK2) || \
45 ((__BANK__) == FMC_NORSRAM_BANK3) || \
46 ((__BANK__) == FMC_NORSRAM_BANK4))
47 #define IS_FMC_MUX(__MUX__) (((__MUX__) == FMC_DATA_ADDRESS_MUX_DISABLE) || \
48 ((__MUX__) == FMC_DATA_ADDRESS_MUX_ENABLE))
49 #define IS_FMC_MEMORY(__MEMORY__) (((__MEMORY__) == FMC_MEMORY_TYPE_SRAM) || \
50 ((__MEMORY__) == FMC_MEMORY_TYPE_PSRAM)|| \
51 ((__MEMORY__) == FMC_MEMORY_TYPE_NOR))
52 #define IS_FMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_8) || \
53 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_16) || \
54 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_32))
55 #define IS_FMC_PAGESIZE(__SIZE__) (((__SIZE__) == FMC_PAGE_SIZE_NONE) || \
56 ((__SIZE__) == FMC_PAGE_SIZE_128) || \
57 ((__SIZE__) == FMC_PAGE_SIZE_256) || \
58 ((__SIZE__) == FMC_PAGE_SIZE_512) || \
59 ((__SIZE__) == FMC_PAGE_SIZE_1024))
60 #if defined(FMC_BCR1_WFDIS)
61 #define IS_FMC_WRITE_FIFO(__FIFO__) (((__FIFO__) == FMC_WRITE_FIFO_DISABLE) || \
62 ((__FIFO__) == FMC_WRITE_FIFO_ENABLE))
64 #define IS_FMC_ACCESS_MODE(__MODE__) (((__MODE__) == FMC_ACCESS_MODE_A) || \
65 ((__MODE__) == FMC_ACCESS_MODE_B) || \
66 ((__MODE__) == FMC_ACCESS_MODE_C) || \
67 ((__MODE__) == FMC_ACCESS_MODE_D))
68 #define IS_FMC_BURSTMODE(__STATE__) (((__STATE__) == FMC_BURST_ACCESS_MODE_DISABLE) || \
69 ((__STATE__) == FMC_BURST_ACCESS_MODE_ENABLE))
70 #define IS_FMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_LOW) || \
71 ((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_HIGH))
72 #define IS_FMC_WRAP_MODE(__MODE__) (((__MODE__) == FMC_WRAP_MODE_DISABLE) || \
73 ((__MODE__) == FMC_WRAP_MODE_ENABLE))
74 #define IS_FMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FMC_WAIT_TIMING_BEFORE_WS) || \
75 ((__ACTIVE__) == FMC_WAIT_TIMING_DURING_WS))
76 #define IS_FMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FMC_WRITE_OPERATION_DISABLE) || \
77 ((__OPERATION__) == FMC_WRITE_OPERATION_ENABLE))
78 #define IS_FMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FMC_WAIT_SIGNAL_DISABLE) || \
79 ((__SIGNAL__) == FMC_WAIT_SIGNAL_ENABLE))
80 #define IS_FMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FMC_EXTENDED_MODE_DISABLE) || \
81 ((__MODE__) == FMC_EXTENDED_MODE_ENABLE))
82 #define IS_FMC_ASYNWAIT(__STATE__) (((__STATE__) == FMC_ASYNCHRONOUS_WAIT_DISABLE) || \
83 ((__STATE__) == FMC_ASYNCHRONOUS_WAIT_ENABLE))
84 #define IS_FMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U))
85 #define IS_FMC_WRITE_BURST(__BURST__) (((__BURST__) == FMC_WRITE_BURST_DISABLE) || \
86 ((__BURST__) == FMC_WRITE_BURST_ENABLE))
87 #define IS_FMC_CONTINOUS_CLOCK(__CCLOCK__) (((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
88 ((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
89 #define IS_FMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U)
90 #define IS_FMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U))
91 #define IS_FMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U))
92 #define IS_FMC_DATAHOLD_DURATION(__DATAHOLD__) ((__DATAHOLD__) <= 3U)
93 #define IS_FMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U)
94 #define IS_FMC_CLK_DIV(__DIV__) (((__DIV__) > 1U) && ((__DIV__) <= 16U))
95 #define IS_FMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_DEVICE)
96 #define IS_FMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_EXTENDED_DEVICE)
99 #if (defined(FMC_Bank3) || defined(FMC_Bank2_3))
101 #if defined(FMC_Bank2_3)
102 #define IS_FMC_NAND_BANK(__BANK__) (((__BANK__) == FMC_NAND_BANK2) || \
103 ((__BANK__) == FMC_NAND_BANK3))
105 #define IS_FMC_NAND_BANK(__BANK__) ((__BANK__) == FMC_NAND_BANK3)
107 #define IS_FMC_WAIT_FEATURE(__FEATURE__) (((__FEATURE__) == FMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \
108 ((__FEATURE__) == FMC_NAND_PCC_WAIT_FEATURE_ENABLE))
109 #define IS_FMC_NAND_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NAND_PCC_MEM_BUS_WIDTH_8) || \
110 ((__WIDTH__) == FMC_NAND_PCC_MEM_BUS_WIDTH_16))
111 #define IS_FMC_ECC_STATE(__STATE__) (((__STATE__) == FMC_NAND_ECC_DISABLE) || \
112 ((__STATE__) == FMC_NAND_ECC_ENABLE))
114 #define IS_FMC_ECCPAGE_SIZE(__SIZE__) (((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_256BYTE) || \
115 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_512BYTE) || \
116 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
117 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
118 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
119 ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_8192BYTE))
120 #define IS_FMC_TCLR_TIME(__TIME__) ((__TIME__) <= 255U)
121 #define IS_FMC_TAR_TIME(__TIME__) ((__TIME__) <= 255U)
122 #define IS_FMC_SETUP_TIME(__TIME__) ((__TIME__) <= 254U)
123 #define IS_FMC_WAIT_TIME(__TIME__) ((__TIME__) <= 254U)
124 #define IS_FMC_HOLD_TIME(__TIME__) ((__TIME__) <= 254U)
125 #define IS_FMC_HIZ_TIME(__TIME__) ((__TIME__) <= 254U)
126 #define IS_FMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NAND_DEVICE)
129 #if defined(FMC_Bank4)
130 #define IS_FMC_PCCARD_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_PCCARD_DEVICE)
133 #if defined(FMC_Bank5_6)
135 #define IS_FMC_SDMEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_8) || \
136 ((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_16) || \
137 ((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_32))
138 #define IS_FMC_WRITE_PROTECTION(__WRITE__) (((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_DISABLE) || \
139 ((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_ENABLE))
140 #define IS_FMC_SDCLOCK_PERIOD(__PERIOD__) (((__PERIOD__) == FMC_SDRAM_CLOCK_DISABLE) || \
141 ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_2) || \
142 ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_3))
143 #define IS_FMC_READ_BURST(__RBURST__) (((__RBURST__) == FMC_SDRAM_RBURST_DISABLE) || \
144 ((__RBURST__) == FMC_SDRAM_RBURST_ENABLE))
145 #define IS_FMC_READPIPE_DELAY(__DELAY__) (((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_0) || \
146 ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_1) || \
147 ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_2))
148 #define IS_FMC_COMMAND_MODE(__COMMAND__) (((__COMMAND__) == FMC_SDRAM_CMD_NORMAL_MODE) || \
149 ((__COMMAND__) == FMC_SDRAM_CMD_CLK_ENABLE) || \
150 ((__COMMAND__) == FMC_SDRAM_CMD_PALL) || \
151 ((__COMMAND__) == FMC_SDRAM_CMD_AUTOREFRESH_MODE) || \
152 ((__COMMAND__) == FMC_SDRAM_CMD_LOAD_MODE) || \
153 ((__COMMAND__) == FMC_SDRAM_CMD_SELFREFRESH_MODE) || \
154 ((__COMMAND__) == FMC_SDRAM_CMD_POWERDOWN_MODE))
155 #define IS_FMC_COMMAND_TARGET(__TARGET__) (((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1) || \
156 ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK2) || \
157 ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1_2))
158 #define IS_FMC_LOADTOACTIVE_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
159 #define IS_FMC_EXITSELFREFRESH_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
160 #define IS_FMC_SELFREFRESH_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 16U))
161 #define IS_FMC_ROWCYCLE_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
162 #define IS_FMC_WRITE_RECOVERY_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 16U))
163 #define IS_FMC_RP_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
164 #define IS_FMC_RCD_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
165 #define IS_FMC_AUTOREFRESH_NUMBER(__NUMBER__) (((__NUMBER__) > 0U) && ((__NUMBER__) <= 15U))
166 #define IS_FMC_MODE_REGISTER(__CONTENT__) ((__CONTENT__) <= 8191U)
167 #define IS_FMC_REFRESH_RATE(__RATE__) ((__RATE__) <= 8191U)
168 #define IS_FMC_SDRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_SDRAM_DEVICE)
169 #define IS_FMC_SDRAM_BANK(__BANK__) (((__BANK__) == FMC_SDRAM_BANK1) || \
170 ((__BANK__) == FMC_SDRAM_BANK2))
171 #define IS_FMC_COLUMNBITS_NUMBER(__COLUMN__) (((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_8) || \
172 ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_9) || \
173 ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_10) || \
174 ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_11))
175 #define IS_FMC_ROWBITS_NUMBER(__ROW__) (((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_11) || \
176 ((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_12) || \
177 ((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_13))
178 #define IS_FMC_INTERNALBANK_NUMBER(__NUMBER__) (((__NUMBER__) == FMC_SDRAM_INTERN_BANKS_NUM_2) || \
179 ((__NUMBER__) == FMC_SDRAM_INTERN_BANKS_NUM_4))
180 #define IS_FMC_CAS_LATENCY(__LATENCY__) (((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_1) || \
181 ((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_2) || \
182 ((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_3))
196 #if defined(FMC_Bank1)
197 #define FMC_NORSRAM_TypeDef FMC_Bank1_TypeDef
198 #define FMC_NORSRAM_EXTENDED_TypeDef FMC_Bank1E_TypeDef
200 #if defined(FMC_Bank2_3)
201 #define FMC_NAND_TypeDef FMC_Bank2_3_TypeDef
203 #define FMC_NAND_TypeDef FMC_Bank3_TypeDef
205 #if defined(FMC_Bank4)
206 #define FMC_PCCARD_TypeDef FMC_Bank4_TypeDef
208 #if defined(FMC_Bank5_6)
209 #define FMC_SDRAM_TypeDef FMC_Bank5_6_TypeDef
212 #if defined(FMC_Bank1)
213 #define FMC_NORSRAM_DEVICE FMC_Bank1
214 #define FMC_NORSRAM_EXTENDED_DEVICE FMC_Bank1E
216 #if defined(FMC_Bank2_3)
217 #define FMC_NAND_DEVICE FMC_Bank2_3
219 #define FMC_NAND_DEVICE FMC_Bank3
221 #if defined(FMC_Bank4)
222 #define FMC_PCCARD_DEVICE FMC_Bank4
224 #if defined(FMC_Bank5_6)
225 #define FMC_SDRAM_DEVICE FMC_Bank5_6
228 #if defined(FMC_Bank1)
343 #if defined(FMC_Bank3) || defined(FMC_Bank2_3)
374 #if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
407 #if defined(FMC_Bank4)
426 #if defined(FMC_Bank5_6)
525 #if defined(FMC_Bank1)
534 #define FMC_NORSRAM_BANK1 (0x00000000U)
535 #define FMC_NORSRAM_BANK2 (0x00000002U)
536 #define FMC_NORSRAM_BANK3 (0x00000004U)
537 #define FMC_NORSRAM_BANK4 (0x00000006U)
545 #define FMC_DATA_ADDRESS_MUX_DISABLE (0x00000000U)
546 #define FMC_DATA_ADDRESS_MUX_ENABLE (0x00000002U)
554 #define FMC_MEMORY_TYPE_SRAM (0x00000000U)
555 #define FMC_MEMORY_TYPE_PSRAM (0x00000004U)
556 #define FMC_MEMORY_TYPE_NOR (0x00000008U)
564 #define FMC_NORSRAM_MEM_BUS_WIDTH_8 (0x00000000U)
565 #define FMC_NORSRAM_MEM_BUS_WIDTH_16 (0x00000010U)
566 #define FMC_NORSRAM_MEM_BUS_WIDTH_32 (0x00000020U)
574 #define FMC_NORSRAM_FLASH_ACCESS_ENABLE (0x00000040U)
575 #define FMC_NORSRAM_FLASH_ACCESS_DISABLE (0x00000000U)
583 #define FMC_BURST_ACCESS_MODE_DISABLE (0x00000000U)
584 #define FMC_BURST_ACCESS_MODE_ENABLE (0x00000100U)
592 #define FMC_WAIT_SIGNAL_POLARITY_LOW (0x00000000U)
593 #define FMC_WAIT_SIGNAL_POLARITY_HIGH (0x00000200U)
602 #define FMC_WRAP_MODE_DISABLE (0x00000000U)
603 #define FMC_WRAP_MODE_ENABLE (0x00000400U)
611 #define FMC_WAIT_TIMING_BEFORE_WS (0x00000000U)
612 #define FMC_WAIT_TIMING_DURING_WS (0x00000800U)
620 #define FMC_WRITE_OPERATION_DISABLE (0x00000000U)
621 #define FMC_WRITE_OPERATION_ENABLE (0x00001000U)
629 #define FMC_WAIT_SIGNAL_DISABLE (0x00000000U)
630 #define FMC_WAIT_SIGNAL_ENABLE (0x00002000U)
638 #define FMC_EXTENDED_MODE_DISABLE (0x00000000U)
639 #define FMC_EXTENDED_MODE_ENABLE (0x00004000U)
647 #define FMC_ASYNCHRONOUS_WAIT_DISABLE (0x00000000U)
648 #define FMC_ASYNCHRONOUS_WAIT_ENABLE (0x00008000U)
656 #define FMC_PAGE_SIZE_NONE (0x00000000U)
657 #define FMC_PAGE_SIZE_128 FMC_BCR1_CPSIZE_0
658 #define FMC_PAGE_SIZE_256 FMC_BCR1_CPSIZE_1
659 #define FMC_PAGE_SIZE_512 (FMC_BCR1_CPSIZE_0\
661 #define FMC_PAGE_SIZE_1024 FMC_BCR1_CPSIZE_2
669 #define FMC_WRITE_BURST_DISABLE (0x00000000U)
670 #define FMC_WRITE_BURST_ENABLE (0x00080000U)
678 #define FMC_CONTINUOUS_CLOCK_SYNC_ONLY (0x00000000U)
679 #define FMC_CONTINUOUS_CLOCK_SYNC_ASYNC (0x00100000U)
684 #if defined(FMC_BCR1_WFDIS)
689 #define FMC_WRITE_FIFO_DISABLE FMC_BCR1_WFDIS
690 #define FMC_WRITE_FIFO_ENABLE (0x00000000U)
699 #define FMC_ACCESS_MODE_A (0x00000000U)
700 #define FMC_ACCESS_MODE_B (0x10000000U)
701 #define FMC_ACCESS_MODE_C (0x20000000U)
702 #define FMC_ACCESS_MODE_D (0x30000000U)
712 #if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
720 #if defined(FMC_Bank2_3)
721 #define FMC_NAND_BANK2 (0x00000010U)
723 #define FMC_NAND_BANK3 (0x00000100U)
731 #define FMC_NAND_PCC_WAIT_FEATURE_DISABLE (0x00000000U)
732 #define FMC_NAND_PCC_WAIT_FEATURE_ENABLE (0x00000002U)
740 #if defined(FMC_Bank4)
741 #define FMC_PCR_MEMORY_TYPE_PCCARD (0x00000000U)
743 #define FMC_PCR_MEMORY_TYPE_NAND (0x00000008U)
751 #define FMC_NAND_PCC_MEM_BUS_WIDTH_8 (0x00000000U)
752 #define FMC_NAND_PCC_MEM_BUS_WIDTH_16 (0x00000010U)
760 #define FMC_NAND_ECC_DISABLE (0x00000000U)
761 #define FMC_NAND_ECC_ENABLE (0x00000040U)
769 #define FMC_NAND_ECC_PAGE_SIZE_256BYTE (0x00000000U)
770 #define FMC_NAND_ECC_PAGE_SIZE_512BYTE (0x00020000U)
771 #define FMC_NAND_ECC_PAGE_SIZE_1024BYTE (0x00040000U)
772 #define FMC_NAND_ECC_PAGE_SIZE_2048BYTE (0x00060000U)
773 #define FMC_NAND_ECC_PAGE_SIZE_4096BYTE (0x00080000U)
774 #define FMC_NAND_ECC_PAGE_SIZE_8192BYTE (0x000A0000U)
784 #if defined(FMC_Bank5_6)
791 #define FMC_SDRAM_BANK1 (0x00000000U)
792 #define FMC_SDRAM_BANK2 (0x00000001U)
800 #define FMC_SDRAM_COLUMN_BITS_NUM_8 (0x00000000U)
801 #define FMC_SDRAM_COLUMN_BITS_NUM_9 (0x00000001U)
802 #define FMC_SDRAM_COLUMN_BITS_NUM_10 (0x00000002U)
803 #define FMC_SDRAM_COLUMN_BITS_NUM_11 (0x00000003U)
811 #define FMC_SDRAM_ROW_BITS_NUM_11 (0x00000000U)
812 #define FMC_SDRAM_ROW_BITS_NUM_12 (0x00000004U)
813 #define FMC_SDRAM_ROW_BITS_NUM_13 (0x00000008U)
821 #define FMC_SDRAM_MEM_BUS_WIDTH_8 (0x00000000U)
822 #define FMC_SDRAM_MEM_BUS_WIDTH_16 (0x00000010U)
823 #define FMC_SDRAM_MEM_BUS_WIDTH_32 (0x00000020U)
831 #define FMC_SDRAM_INTERN_BANKS_NUM_2 (0x00000000U)
832 #define FMC_SDRAM_INTERN_BANKS_NUM_4 (0x00000040U)
840 #define FMC_SDRAM_CAS_LATENCY_1 (0x00000080U)
841 #define FMC_SDRAM_CAS_LATENCY_2 (0x00000100U)
842 #define FMC_SDRAM_CAS_LATENCY_3 (0x00000180U)
850 #define FMC_SDRAM_WRITE_PROTECTION_DISABLE (0x00000000U)
851 #define FMC_SDRAM_WRITE_PROTECTION_ENABLE (0x00000200U)
859 #define FMC_SDRAM_CLOCK_DISABLE (0x00000000U)
860 #define FMC_SDRAM_CLOCK_PERIOD_2 (0x00000800U)
861 #define FMC_SDRAM_CLOCK_PERIOD_3 (0x00000C00U)
869 #define FMC_SDRAM_RBURST_DISABLE (0x00000000U)
870 #define FMC_SDRAM_RBURST_ENABLE (0x00001000U)
878 #define FMC_SDRAM_RPIPE_DELAY_0 (0x00000000U)
879 #define FMC_SDRAM_RPIPE_DELAY_1 (0x00002000U)
880 #define FMC_SDRAM_RPIPE_DELAY_2 (0x00004000U)
888 #define FMC_SDRAM_CMD_NORMAL_MODE (0x00000000U)
889 #define FMC_SDRAM_CMD_CLK_ENABLE (0x00000001U)
890 #define FMC_SDRAM_CMD_PALL (0x00000002U)
891 #define FMC_SDRAM_CMD_AUTOREFRESH_MODE (0x00000003U)
892 #define FMC_SDRAM_CMD_LOAD_MODE (0x00000004U)
893 #define FMC_SDRAM_CMD_SELFREFRESH_MODE (0x00000005U)
894 #define FMC_SDRAM_CMD_POWERDOWN_MODE (0x00000006U)
902 #define FMC_SDRAM_CMD_TARGET_BANK2 FMC_SDCMR_CTB2
903 #define FMC_SDRAM_CMD_TARGET_BANK1 FMC_SDCMR_CTB1
904 #define FMC_SDRAM_CMD_TARGET_BANK1_2 (0x00000018U)
912 #define FMC_SDRAM_NORMAL_MODE (0x00000000U)
913 #define FMC_SDRAM_SELF_REFRESH_MODE FMC_SDSR_MODES1_0
914 #define FMC_SDRAM_POWER_DOWN_MODE FMC_SDSR_MODES1_1
928 #if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
929 #define FMC_IT_RISING_EDGE (0x00000008U)
930 #define FMC_IT_LEVEL (0x00000010U)
931 #define FMC_IT_FALLING_EDGE (0x00000020U)
933 #if defined(FMC_Bank5_6)
934 #define FMC_IT_REFRESH_ERROR (0x00004000U)
943 #if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
944 #define FMC_FLAG_RISING_EDGE (0x00000001U)
945 #define FMC_FLAG_LEVEL (0x00000002U)
946 #define FMC_FLAG_FALLING_EDGE (0x00000004U)
947 #define FMC_FLAG_FEMPT (0x00000040U)
949 #if defined(FMC_Bank5_6)
950 #define FMC_SDRAM_FLAG_REFRESH_IT FMC_SDSR_RE
951 #define FMC_SDRAM_FLAG_BUSY FMC_SDSR_BUSY
952 #define FMC_SDRAM_FLAG_REFRESH_ERROR FMC_SDRTR_CRE
970 #if defined(FMC_Bank1)
982 #define __FMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)]\
991 #define __FMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)]\
999 #if defined(FMC_Bank3) || defined(FMC_Bank2_3)
1011 #if defined(FMC_Bank2_3)
1012 #if defined (FMC_PCR_PBKEN)
1013 #define __FMC_NAND_ENABLE(__INSTANCE__) ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
1015 #define __FMC_NAND_ENABLE(__INSTANCE__, __BANK__) (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 |= FMC_PCR2_PBKEN): \
1016 ((__INSTANCE__)->PCR3 |= FMC_PCR3_PBKEN))
1019 #define __FMC_NAND_ENABLE(__INSTANCE__) ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
1028 #if defined(FMC_Bank2_3)
1029 #if defined (FMC_PCR_PBKEN)
1030 #define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
1032 #define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FMC_NAND_BANK2)? CLEAR_BIT((__INSTANCE__)->PCR2, FMC_PCR2_PBKEN): \
1033 CLEAR_BIT((__INSTANCE__)->PCR3, FMC_PCR3_PBKEN))
1036 #define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
1044 #if defined(FMC_Bank4)
1054 #define __FMC_PCCARD_ENABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 |= FMC_PCR4_PBKEN)
1061 #define __FMC_PCCARD_DISABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 &= ~FMC_PCR4_PBKEN)
1067 #if defined(FMC_Bank3) || defined(FMC_Bank2_3)
1084 #if defined(FMC_Bank2_3)
1085 #define __FMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 |= (__INTERRUPT__)): \
1086 ((__INSTANCE__)->SR3 |= (__INTERRUPT__)))
1088 #define __FMC_NAND_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR |= (__INTERRUPT__))
1102 #if defined(FMC_Bank2_3)
1103 #define __FMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__INTERRUPT__)): \
1104 ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__)))
1106 #define __FMC_NAND_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR &= ~(__INTERRUPT__))
1121 #if defined(FMC_Bank2_3)
1122 #define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__BANK__) == FMC_NAND_BANK2)? (((__INSTANCE__)->SR2 &(__FLAG__)) == (__FLAG__)): \
1123 (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__)))
1125 #define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__INSTANCE__)->SR &(__FLAG__)) == (__FLAG__))
1140 #if defined(FMC_Bank2_3)
1141 #define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__FLAG__)): \
1142 ((__INSTANCE__)->SR3 &= ~(__FLAG__)))
1144 #define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SR &= ~(__FLAG__))
1152 #if defined(FMC_Bank4)
1168 #define __FMC_PCCARD_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR4 |= (__INTERRUPT__))
1180 #define __FMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__))
1193 #define __FMC_PCCARD_GET_FLAG(__INSTANCE__, __FLAG__) (((__INSTANCE__)->SR4 &(__FLAG__)) == (__FLAG__))
1206 #define __FMC_PCCARD_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SR4 &= ~(__FLAG__))
1213 #if defined(FMC_Bank5_6)
1227 #define __FMC_SDRAM_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SDRTR |= (__INTERRUPT__))
1237 #define __FMC_SDRAM_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SDRTR &= ~(__INTERRUPT__))
1249 #define __FMC_SDRAM_GET_FLAG(__INSTANCE__, __FLAG__) (((__INSTANCE__)->SDSR &(__FLAG__)) == (__FLAG__))
1259 #define __FMC_SDRAM_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SDRTR |= (__FLAG__))
1278 #if defined(FMC_Bank1)
1291 uint32_t ExtendedMode);
1293 FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
1311 #if defined(FMC_Bank3) || defined(FMC_Bank2_3)
1323 HAL_StatusTypeDef
FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank);
1333 HAL_StatusTypeDef
FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
1343 #if defined(FMC_Bank4)
1366 #if defined(FMC_Bank5_6)
1376 HAL_StatusTypeDef
FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
1390 uint32_t AutoRefreshNumber);
uint32_t ExitSelfRefreshDelay
uint32_t InternalBankNumber
uint32_t AutoRefreshNumber
uint32_t ColumnBitsNumber
uint32_t AddressSetupTime
uint32_t BusTurnAroundDuration
uint32_t AsynchronousWait
uint32_t WaitSignalActive
uint32_t WriteRecoveryTime
uint32_t LoadToActiveDelay
uint32_t ModeRegisterDefinition
uint32_t WaitSignalPolarity
FMC NAND Configuration Structure definition.
FMC NAND Timing parameters structure definition.
FMC NORSRAM Configuration Structure definition.
FMC NORSRAM Timing parameters structure definition.
FMC PCCARD Configuration Structure definition.
SDRAM command parameters structure definition.
FMC SDRAM Configuration Structure definition.
FMC SDRAM Timing parameters structure definition.
HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_NAND Common space Timing according to the specified parameters in the FMC_NAND_PC...
HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init)
Initializes the FMC_NAND device according to the specified control parameters in the FMC_NAND_HandleT...
HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_NAND Attribute space Timing according to the specified parameters in the FMC_NAND...
HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank)
DeInitializes the FMC_NAND device.
HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_NAND ECC feature.
HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_NAND ECC feature.
HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
Disables dynamically FMC_NAND ECC feature.
HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
DeInitialize the FMC_NORSRAM peripheral.
HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef *Init)
Initialize the FMC_NORSRAM device according to the specified control parameters in the FMC_NORSRAM_In...
HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
Initialize the FMC_NORSRAM Timing according to the specified parameters in the FMC_NORSRAM_TimingType...
HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode)
Initialize the FMC_NORSRAM Extended mode Timing according to the specified parameters in the FMC_NORS...
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_NORSRAM write operation.
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_NORSRAM write operation.
HAL_StatusTypeDef FMC_PCCARD_CommonSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
Initializes the FMC_PCCARD Common space Timing according to the specified parameters in the FMC_NAND_...
HAL_StatusTypeDef FMC_PCCARD_AttributeSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
Initializes the FMC_PCCARD Attribute space Timing according to the specified parameters in the FMC_NA...
HAL_StatusTypeDef FMC_PCCARD_DeInit(FMC_PCCARD_TypeDef *Device)
DeInitializes the FMC_PCCARD device.
HAL_StatusTypeDef FMC_PCCARD_Init(FMC_PCCARD_TypeDef *Device, FMC_PCCARD_InitTypeDef *Init)
Initializes the FMC_PCCARD device according to the specified control parameters in the FMC_PCCARD_Han...
HAL_StatusTypeDef FMC_PCCARD_IOSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
Initializes the FMC_PCCARD IO space Timing according to the specified parameters in the FMC_NAND_PCC_...
HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_SDRAM device timing according to the specified parameters in the FMC_SDRAM_Timing...
HAL_StatusTypeDef FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
DeInitializes the FMC_SDRAM peripheral.
HAL_StatusTypeDef FMC_SDRAM_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_InitTypeDef *Init)
Initializes the FMC_SDRAM device according to the specified control parameters in the FMC_SDRAM_InitT...
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Disable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_SDRAM write protection.
HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber)
Set the Number of consecutive SDRAM Memory auto Refresh commands.
uint32_t FMC_SDRAM_GetModeStatus(const FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Returns the indicated FMC SDRAM bank mode status.
HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
Send Command to the FMC SDRAM bank.
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Enable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_SDRAM write protection.
HAL_StatusTypeDef FMC_SDRAM_ProgramRefreshRate(FMC_SDRAM_TypeDef *Device, uint32_t RefreshRate)
Program the SDRAM Memory Refresh rate.
This file contains HAL common defines, enumeration, macros and structures definitions.