STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_ll_fmc.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_LL_FMC_H
40 #define __STM32F7xx_LL_FMC_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
60 #define IS_FMC_NORSRAM_BANK(BANK) (((BANK) == FMC_NORSRAM_BANK1) || \
61  ((BANK) == FMC_NORSRAM_BANK2) || \
62  ((BANK) == FMC_NORSRAM_BANK3) || \
63  ((BANK) == FMC_NORSRAM_BANK4))
64 
65 #define IS_FMC_MUX(__MUX__) (((__MUX__) == FMC_DATA_ADDRESS_MUX_DISABLE) || \
66  ((__MUX__) == FMC_DATA_ADDRESS_MUX_ENABLE))
67 
68 #define IS_FMC_MEMORY(__MEMORY__) (((__MEMORY__) == FMC_MEMORY_TYPE_SRAM) || \
69  ((__MEMORY__) == FMC_MEMORY_TYPE_PSRAM)|| \
70  ((__MEMORY__) == FMC_MEMORY_TYPE_NOR))
71 
72 #define IS_FMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_8) || \
73  ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_16) || \
74  ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_32))
75 
76 #define IS_FMC_ACCESS_MODE(__MODE__) (((__MODE__) == FMC_ACCESS_MODE_A) || \
77  ((__MODE__) == FMC_ACCESS_MODE_B) || \
78  ((__MODE__) == FMC_ACCESS_MODE_C) || \
79  ((__MODE__) == FMC_ACCESS_MODE_D))
80 
81 #define IS_FMC_NAND_BANK(BANK) ((BANK) == FMC_NAND_BANK3)
82 
83 #define IS_FMC_WAIT_FEATURE(FEATURE) (((FEATURE) == FMC_NAND_WAIT_FEATURE_DISABLE) || \
84  ((FEATURE) == FMC_NAND_WAIT_FEATURE_ENABLE))
85 
86 #define IS_FMC_NAND_MEMORY_WIDTH(WIDTH) (((WIDTH) == FMC_NAND_MEM_BUS_WIDTH_8) || \
87  ((WIDTH) == FMC_NAND_MEM_BUS_WIDTH_16))
88 
89 #define IS_FMC_ECC_STATE(STATE) (((STATE) == FMC_NAND_ECC_DISABLE) || \
90  ((STATE) == FMC_NAND_ECC_ENABLE))
91 
92 #define IS_FMC_ECCPAGE_SIZE(SIZE) (((SIZE) == FMC_NAND_ECC_PAGE_SIZE_256BYTE) || \
93  ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_512BYTE) || \
94  ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
95  ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
96  ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
97  ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_8192BYTE))
98 
99 #define IS_FMC_SDMEMORY_WIDTH(WIDTH) (((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_8) || \
100  ((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_16) || \
101  ((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_32))
102 
103 #define IS_FMC_WRITE_PROTECTION(__WRITE__) (((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_DISABLE) || \
104  ((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_ENABLE))
105 
106 #define IS_FMC_SDCLOCK_PERIOD(__PERIOD__) (((__PERIOD__) == FMC_SDRAM_CLOCK_DISABLE) || \
107  ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_2) || \
108  ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_3))
109 
110 #define IS_FMC_READ_BURST(__RBURST__) (((__RBURST__) == FMC_SDRAM_RBURST_DISABLE) || \
111  ((__RBURST__) == FMC_SDRAM_RBURST_ENABLE))
112 
113 #define IS_FMC_READPIPE_DELAY(__DELAY__) (((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_0) || \
114  ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_1) || \
115  ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_2))
116 
117 #define IS_FMC_COMMAND_MODE(__COMMAND__) (((__COMMAND__) == FMC_SDRAM_CMD_NORMAL_MODE) || \
118  ((__COMMAND__) == FMC_SDRAM_CMD_CLK_ENABLE) || \
119  ((__COMMAND__) == FMC_SDRAM_CMD_PALL) || \
120  ((__COMMAND__) == FMC_SDRAM_CMD_AUTOREFRESH_MODE) || \
121  ((__COMMAND__) == FMC_SDRAM_CMD_LOAD_MODE) || \
122  ((__COMMAND__) == FMC_SDRAM_CMD_SELFREFRESH_MODE) || \
123  ((__COMMAND__) == FMC_SDRAM_CMD_POWERDOWN_MODE))
124 
125 #define IS_FMC_COMMAND_TARGET(__TARGET__) (((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1) || \
126  ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK2) || \
127  ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1_2))
128 
132 #define IS_FMC_TCLR_TIME(__TIME__) ((__TIME__) <= 255)
133 
140 #define IS_FMC_TAR_TIME(TIME) ((TIME) <= 255)
141 
148 #define IS_FMC_SETUP_TIME(TIME) ((TIME) <= 254)
149 
156 #define IS_FMC_WAIT_TIME(TIME) ((TIME) <= 254)
157 
164 #define IS_FMC_HOLD_TIME(TIME) ((TIME) <= 254)
165 
172 #define IS_FMC_HIZ_TIME(TIME) ((TIME) <= 254)
173 
177 #define IS_FMC_BURSTMODE(__STATE__) (((__STATE__) == FMC_BURST_ACCESS_MODE_DISABLE) || \
178  ((__STATE__) == FMC_BURST_ACCESS_MODE_ENABLE))
179 
180 #define IS_FMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_LOW) || \
181  ((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_HIGH))
182 
183 #define IS_FMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FMC_WAIT_TIMING_BEFORE_WS) || \
184  ((__ACTIVE__) == FMC_WAIT_TIMING_DURING_WS))
185 
186 #define IS_FMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FMC_WRITE_OPERATION_DISABLE) || \
187  ((__OPERATION__) == FMC_WRITE_OPERATION_ENABLE))
188 
189 #define IS_FMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FMC_WAIT_SIGNAL_DISABLE) || \
190  ((__SIGNAL__) == FMC_WAIT_SIGNAL_ENABLE))
191 
192 #define IS_FMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FMC_EXTENDED_MODE_DISABLE) || \
193  ((__MODE__) == FMC_EXTENDED_MODE_ENABLE))
194 
195 #define IS_FMC_ASYNWAIT(__STATE__) (((__STATE__) == FMC_ASYNCHRONOUS_WAIT_DISABLE) || \
196  ((__STATE__) == FMC_ASYNCHRONOUS_WAIT_ENABLE))
197 
201 #define IS_FMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1) && ((__LATENCY__) <= 17))
202 
206 #define IS_FMC_WRITE_BURST(__BURST__) (((__BURST__) == FMC_WRITE_BURST_DISABLE) || \
207  ((__BURST__) == FMC_WRITE_BURST_ENABLE))
208 
209 #define IS_FMC_CONTINOUS_CLOCK(CCLOCK) (((CCLOCK) == FMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
210  ((CCLOCK) == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
211 
212 
216 #define IS_FMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15)
217 
224 #define IS_FMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 15))
225 
232 #define IS_FMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 255))
233 
240 #define IS_FMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15)
241 
248 #define IS_FMC_CLK_DIV(DIV) (((DIV) > 1) && ((DIV) <= 16))
249 
256 #define IS_FMC_LOADTOACTIVE_DELAY(__DELAY__) (((__DELAY__) > 0) && ((__DELAY__) <= 16))
257 
264 #define IS_FMC_EXITSELFREFRESH_DELAY(__DELAY__) (((__DELAY__) > 0) && ((__DELAY__) <= 16))
265 
272 #define IS_FMC_SELFREFRESH_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 16))
273 
280 #define IS_FMC_ROWCYCLE_DELAY(__DELAY__) (((__DELAY__) > 0) && ((__DELAY__) <= 16))
281 
288 #define IS_FMC_WRITE_RECOVERY_TIME(__TIME__) (((__TIME__) > 0) && ((__TIME__) <= 16))
289 
296 #define IS_FMC_RP_DELAY(__DELAY__) (((__DELAY__) > 0) && ((__DELAY__) <= 16))
297 
304 #define IS_FMC_RCD_DELAY(__DELAY__) (((__DELAY__) > 0) && ((__DELAY__) <= 16))
305 
312 #define IS_FMC_AUTOREFRESH_NUMBER(__NUMBER__) (((__NUMBER__) > 0) && ((__NUMBER__) <= 16))
313 
320 #define IS_FMC_MODE_REGISTER(__CONTENT__) ((__CONTENT__) <= 8191)
321 
328 #define IS_FMC_REFRESH_RATE(__RATE__) ((__RATE__) <= 8191)
329 
336 #define IS_FMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_DEVICE)
337 
344 #define IS_FMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_EXTENDED_DEVICE)
345 
352 #define IS_FMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NAND_DEVICE)
353 
360 #define IS_FMC_SDRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_SDRAM_DEVICE)
361 
365 #define IS_FMC_SDRAM_BANK(BANK) (((BANK) == FMC_SDRAM_BANK1) || \
366  ((BANK) == FMC_SDRAM_BANK2))
367 
368 #define IS_FMC_COLUMNBITS_NUMBER(COLUMN) (((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_8) || \
369  ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_9) || \
370  ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_10) || \
371  ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_11))
372 
373 #define IS_FMC_ROWBITS_NUMBER(ROW) (((ROW) == FMC_SDRAM_ROW_BITS_NUM_11) || \
374  ((ROW) == FMC_SDRAM_ROW_BITS_NUM_12) || \
375  ((ROW) == FMC_SDRAM_ROW_BITS_NUM_13))
376 
377 #define IS_FMC_INTERNALBANK_NUMBER(NUMBER) (((NUMBER) == FMC_SDRAM_INTERN_BANKS_NUM_2) || \
378  ((NUMBER) == FMC_SDRAM_INTERN_BANKS_NUM_4))
379 
380 
381 #define IS_FMC_CAS_LATENCY(LATENCY) (((LATENCY) == FMC_SDRAM_CAS_LATENCY_1) || \
382  ((LATENCY) == FMC_SDRAM_CAS_LATENCY_2) || \
383  ((LATENCY) == FMC_SDRAM_CAS_LATENCY_3))
384 
385 #define IS_FMC_PAGESIZE(__SIZE__) (((__SIZE__) == FMC_PAGE_SIZE_NONE) || \
386  ((__SIZE__) == FMC_PAGE_SIZE_128) || \
387  ((__SIZE__) == FMC_PAGE_SIZE_256) || \
388  ((__SIZE__) == FMC_PAGE_SIZE_512) || \
389  ((__SIZE__) == FMC_PAGE_SIZE_1024))
390 
391 #define IS_FMC_WRITE_FIFO(__FIFO__) (((__FIFO__) == FMC_WRITE_FIFO_DISABLE) || \
392  ((__FIFO__) == FMC_WRITE_FIFO_ENABLE))
393 
397 /* Exported typedef ----------------------------------------------------------*/
401 #define FMC_NORSRAM_TypeDef FMC_Bank1_TypeDef
402 #define FMC_NORSRAM_EXTENDED_TypeDef FMC_Bank1E_TypeDef
403 #define FMC_NAND_TypeDef FMC_Bank3_TypeDef
404 #define FMC_SDRAM_TypeDef FMC_Bank5_6_TypeDef
405 
406 #define FMC_NORSRAM_DEVICE FMC_Bank1
407 #define FMC_NORSRAM_EXTENDED_DEVICE FMC_Bank1E
408 #define FMC_NAND_DEVICE FMC_Bank3
409 #define FMC_SDRAM_DEVICE FMC_Bank5_6
410 
414 typedef struct
415 {
416  uint32_t NSBank;
419  uint32_t DataAddressMux;
423  uint32_t MemoryType;
427  uint32_t MemoryDataWidth;
430  uint32_t BurstAccessMode;
438  uint32_t WaitSignalActive;
443  uint32_t WriteOperation;
446  uint32_t WaitSignal;
450  uint32_t ExtendedMode;
453  uint32_t AsynchronousWait;
457  uint32_t WriteBurst;
460  uint32_t ContinuousClock;
465  uint32_t WriteFifo;
470  uint32_t PageSize;
474 
478 typedef struct
479 {
480  uint32_t AddressSetupTime;
485  uint32_t AddressHoldTime;
490  uint32_t DataSetupTime;
501  uint32_t CLKDivision;
506  uint32_t DataLatency;
514  uint32_t AccessMode;
517 
521 typedef struct
522 {
523  uint32_t NandBank;
526  uint32_t Waitfeature;
529  uint32_t MemoryDataWidth;
532  uint32_t EccComputation;
535  uint32_t ECCPageSize;
538  uint32_t TCLRSetupTime;
542  uint32_t TARSetupTime;
546 
550 typedef struct
551 {
552  uint32_t SetupTime;
558  uint32_t WaitSetupTime;
564  uint32_t HoldSetupTime;
571  uint32_t HiZSetupTime;
577 
581 typedef struct
582 {
583  uint32_t SDBank;
586  uint32_t ColumnBitsNumber;
589  uint32_t RowBitsNumber;
592  uint32_t MemoryDataWidth;
598  uint32_t CASLatency;
601  uint32_t WriteProtection;
604  uint32_t SDClockPeriod;
608  uint32_t ReadBurst;
612  uint32_t ReadPipeDelay;
615 
619 typedef struct
620 {
621  uint32_t LoadToActiveDelay;
629  uint32_t SelfRefreshTime;
633  uint32_t RowCycleDelay;
638  uint32_t WriteRecoveryTime;
641  uint32_t RPDelay;
645  uint32_t RCDDelay;
649 
653 typedef struct
654 {
655  uint32_t CommandMode;
658  uint32_t CommandTarget;
661  uint32_t AutoRefreshNumber;
670 /* Exported constants --------------------------------------------------------*/
682 #define FMC_NORSRAM_BANK1 ((uint32_t)0x00000000U)
683 #define FMC_NORSRAM_BANK2 ((uint32_t)0x00000002U)
684 #define FMC_NORSRAM_BANK3 ((uint32_t)0x00000004U)
685 #define FMC_NORSRAM_BANK4 ((uint32_t)0x00000006U)
686 
693 #define FMC_DATA_ADDRESS_MUX_DISABLE ((uint32_t)0x00000000U)
694 #define FMC_DATA_ADDRESS_MUX_ENABLE ((uint32_t)0x00000002U)
695 
702 #define FMC_MEMORY_TYPE_SRAM ((uint32_t)0x00000000U)
703 #define FMC_MEMORY_TYPE_PSRAM ((uint32_t)0x00000004U)
704 #define FMC_MEMORY_TYPE_NOR ((uint32_t)0x00000008U)
705 
712 #define FMC_NORSRAM_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000U)
713 #define FMC_NORSRAM_MEM_BUS_WIDTH_16 ((uint32_t)0x00000010U)
714 #define FMC_NORSRAM_MEM_BUS_WIDTH_32 ((uint32_t)0x00000020U)
715 
722 #define FMC_NORSRAM_FLASH_ACCESS_ENABLE ((uint32_t)0x00000040U)
723 #define FMC_NORSRAM_FLASH_ACCESS_DISABLE ((uint32_t)0x00000000U)
724 
731 #define FMC_BURST_ACCESS_MODE_DISABLE ((uint32_t)0x00000000U)
732 #define FMC_BURST_ACCESS_MODE_ENABLE ((uint32_t)0x00000100U)
733 
740 #define FMC_WAIT_SIGNAL_POLARITY_LOW ((uint32_t)0x00000000U)
741 #define FMC_WAIT_SIGNAL_POLARITY_HIGH ((uint32_t)0x00000200U)
742 
749 #define FMC_WAIT_TIMING_BEFORE_WS ((uint32_t)0x00000000U)
750 #define FMC_WAIT_TIMING_DURING_WS ((uint32_t)0x00000800U)
751 
758 #define FMC_WRITE_OPERATION_DISABLE ((uint32_t)0x00000000U)
759 #define FMC_WRITE_OPERATION_ENABLE ((uint32_t)0x00001000U)
760 
767 #define FMC_WAIT_SIGNAL_DISABLE ((uint32_t)0x00000000U)
768 #define FMC_WAIT_SIGNAL_ENABLE ((uint32_t)0x00002000U)
769 
776 #define FMC_EXTENDED_MODE_DISABLE ((uint32_t)0x00000000U)
777 #define FMC_EXTENDED_MODE_ENABLE ((uint32_t)0x00004000U)
778 
785 #define FMC_ASYNCHRONOUS_WAIT_DISABLE ((uint32_t)0x00000000U)
786 #define FMC_ASYNCHRONOUS_WAIT_ENABLE ((uint32_t)0x00008000U)
787 
794 #define FMC_PAGE_SIZE_NONE ((uint32_t)0x00000000U)
795 #define FMC_PAGE_SIZE_128 ((uint32_t)FMC_BCR1_CPSIZE_0)
796 #define FMC_PAGE_SIZE_256 ((uint32_t)FMC_BCR1_CPSIZE_1)
797 #define FMC_PAGE_SIZE_512 ((uint32_t)(FMC_BCR1_CPSIZE_0 | FMC_BCR1_CPSIZE_1))
798 #define FMC_PAGE_SIZE_1024 ((uint32_t)FMC_BCR1_CPSIZE_2)
799 
806 #define FMC_WRITE_BURST_DISABLE ((uint32_t)0x00000000U)
807 #define FMC_WRITE_BURST_ENABLE ((uint32_t)0x00080000U)
808 
815 #define FMC_CONTINUOUS_CLOCK_SYNC_ONLY ((uint32_t)0x00000000U)
816 #define FMC_CONTINUOUS_CLOCK_SYNC_ASYNC ((uint32_t)0x00100000U)
817 
824 #define FMC_WRITE_FIFO_DISABLE ((uint32_t)FMC_BCR1_WFDIS)
825 #define FMC_WRITE_FIFO_ENABLE ((uint32_t)0x00000000U)
826 
833 #define FMC_ACCESS_MODE_A ((uint32_t)0x00000000U)
834 #define FMC_ACCESS_MODE_B ((uint32_t)0x10000000U)
835 #define FMC_ACCESS_MODE_C ((uint32_t)0x20000000U)
836 #define FMC_ACCESS_MODE_D ((uint32_t)0x30000000)
837 
851 #define FMC_NAND_BANK3 ((uint32_t)0x00000100U)
852 
859 #define FMC_NAND_WAIT_FEATURE_DISABLE ((uint32_t)0x00000000U)
860 #define FMC_NAND_WAIT_FEATURE_ENABLE ((uint32_t)0x00000002U)
861 
868 #define FMC_PCR_MEMORY_TYPE_NAND ((uint32_t)0x00000008U)
869 
876 #define FMC_NAND_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000U)
877 #define FMC_NAND_MEM_BUS_WIDTH_16 ((uint32_t)0x00000010U)
878 
885 #define FMC_NAND_ECC_DISABLE ((uint32_t)0x00000000U)
886 #define FMC_NAND_ECC_ENABLE ((uint32_t)0x00000040U)
887 
894 #define FMC_NAND_ECC_PAGE_SIZE_256BYTE ((uint32_t)0x00000000U)
895 #define FMC_NAND_ECC_PAGE_SIZE_512BYTE ((uint32_t)0x00020000U)
896 #define FMC_NAND_ECC_PAGE_SIZE_1024BYTE ((uint32_t)0x00040000U)
897 #define FMC_NAND_ECC_PAGE_SIZE_2048BYTE ((uint32_t)0x00060000U)
898 #define FMC_NAND_ECC_PAGE_SIZE_4096BYTE ((uint32_t)0x00080000U)
899 #define FMC_NAND_ECC_PAGE_SIZE_8192BYTE ((uint32_t)0x000A0000U)
900 
914 #define FMC_SDRAM_BANK1 ((uint32_t)0x00000000U)
915 #define FMC_SDRAM_BANK2 ((uint32_t)0x00000001U)
916 
923 #define FMC_SDRAM_COLUMN_BITS_NUM_8 ((uint32_t)0x00000000U)
924 #define FMC_SDRAM_COLUMN_BITS_NUM_9 ((uint32_t)0x00000001U)
925 #define FMC_SDRAM_COLUMN_BITS_NUM_10 ((uint32_t)0x00000002U)
926 #define FMC_SDRAM_COLUMN_BITS_NUM_11 ((uint32_t)0x00000003U)
927 
934 #define FMC_SDRAM_ROW_BITS_NUM_11 ((uint32_t)0x00000000U)
935 #define FMC_SDRAM_ROW_BITS_NUM_12 ((uint32_t)0x00000004U)
936 #define FMC_SDRAM_ROW_BITS_NUM_13 ((uint32_t)0x00000008U)
937 
944 #define FMC_SDRAM_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000U)
945 #define FMC_SDRAM_MEM_BUS_WIDTH_16 ((uint32_t)0x00000010U)
946 #define FMC_SDRAM_MEM_BUS_WIDTH_32 ((uint32_t)0x00000020U)
947 
954 #define FMC_SDRAM_INTERN_BANKS_NUM_2 ((uint32_t)0x00000000U)
955 #define FMC_SDRAM_INTERN_BANKS_NUM_4 ((uint32_t)0x00000040U)
956 
963 #define FMC_SDRAM_CAS_LATENCY_1 ((uint32_t)0x00000080U)
964 #define FMC_SDRAM_CAS_LATENCY_2 ((uint32_t)0x00000100U)
965 #define FMC_SDRAM_CAS_LATENCY_3 ((uint32_t)0x00000180)
966 
973 #define FMC_SDRAM_WRITE_PROTECTION_DISABLE ((uint32_t)0x00000000U)
974 #define FMC_SDRAM_WRITE_PROTECTION_ENABLE ((uint32_t)0x00000200U)
975 
982 #define FMC_SDRAM_CLOCK_DISABLE ((uint32_t)0x00000000U)
983 #define FMC_SDRAM_CLOCK_PERIOD_2 ((uint32_t)0x00000800U)
984 #define FMC_SDRAM_CLOCK_PERIOD_3 ((uint32_t)0x00000C00)
985 
992 #define FMC_SDRAM_RBURST_DISABLE ((uint32_t)0x00000000U)
993 #define FMC_SDRAM_RBURST_ENABLE ((uint32_t)0x00001000U)
994 
1001 #define FMC_SDRAM_RPIPE_DELAY_0 ((uint32_t)0x00000000U)
1002 #define FMC_SDRAM_RPIPE_DELAY_1 ((uint32_t)0x00002000U)
1003 #define FMC_SDRAM_RPIPE_DELAY_2 ((uint32_t)0x00004000U)
1004 
1011 #define FMC_SDRAM_CMD_NORMAL_MODE ((uint32_t)0x00000000U)
1012 #define FMC_SDRAM_CMD_CLK_ENABLE ((uint32_t)0x00000001U)
1013 #define FMC_SDRAM_CMD_PALL ((uint32_t)0x00000002U)
1014 #define FMC_SDRAM_CMD_AUTOREFRESH_MODE ((uint32_t)0x00000003U)
1015 #define FMC_SDRAM_CMD_LOAD_MODE ((uint32_t)0x00000004U)
1016 #define FMC_SDRAM_CMD_SELFREFRESH_MODE ((uint32_t)0x00000005U)
1017 #define FMC_SDRAM_CMD_POWERDOWN_MODE ((uint32_t)0x00000006U)
1018 
1025 #define FMC_SDRAM_CMD_TARGET_BANK2 FMC_SDCMR_CTB2
1026 #define FMC_SDRAM_CMD_TARGET_BANK1 FMC_SDCMR_CTB1
1027 #define FMC_SDRAM_CMD_TARGET_BANK1_2 ((uint32_t)0x00000018U)
1028 
1035 #define FMC_SDRAM_NORMAL_MODE ((uint32_t)0x00000000U)
1036 #define FMC_SDRAM_SELF_REFRESH_MODE FMC_SDSR_MODES1_0
1037 #define FMC_SDRAM_POWER_DOWN_MODE FMC_SDSR_MODES1_1
1038 
1049 #define FMC_IT_RISING_EDGE ((uint32_t)0x00000008U)
1050 #define FMC_IT_LEVEL ((uint32_t)0x00000010U)
1051 #define FMC_IT_FALLING_EDGE ((uint32_t)0x00000020U)
1052 #define FMC_IT_REFRESH_ERROR ((uint32_t)0x00004000U)
1053 
1060 #define FMC_FLAG_RISING_EDGE ((uint32_t)0x00000001U)
1061 #define FMC_FLAG_LEVEL ((uint32_t)0x00000002U)
1062 #define FMC_FLAG_FALLING_EDGE ((uint32_t)0x00000004U)
1063 #define FMC_FLAG_FEMPT ((uint32_t)0x00000040U)
1064 #define FMC_SDRAM_FLAG_REFRESH_IT FMC_SDSR_RE
1065 #define FMC_SDRAM_FLAG_BUSY FMC_SDSR_BUSY
1066 #define FMC_SDRAM_FLAG_REFRESH_ERROR FMC_SDRTR_CRE
1067 
1078 /* Private macro -------------------------------------------------------------*/
1094 #define __FMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] |= FMC_BCR1_MBKEN)
1095 
1102 #define __FMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] &= ~FMC_BCR1_MBKEN)
1103 
1118 #define __FMC_NAND_ENABLE(__INSTANCE__) ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
1119 
1125 #define __FMC_NAND_DISABLE(__INSTANCE__) ((__INSTANCE__)->PCR &= ~FMC_PCR_PBKEN)
1126 
1146 #define __FMC_NAND_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR |= (__INTERRUPT__))
1147 
1158 #define __FMC_NAND_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR &= ~(__INTERRUPT__))
1159 
1172 #define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__INSTANCE__)->SR &(__FLAG__)) == (__FLAG__))
1173 
1185 #define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SR &= ~(__FLAG__))
1186 
1195 #define __FMC_SDRAM_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SDRTR |= (__INTERRUPT__))
1196 
1205 #define __FMC_SDRAM_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SDRTR &= ~(__INTERRUPT__))
1206 
1217 #define __FMC_SDRAM_GET_FLAG(__INSTANCE__, __FLAG__) (((__INSTANCE__)->SDSR &(__FLAG__)) == (__FLAG__))
1218 
1227 #define __FMC_SDRAM_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SDRTR |= (__FLAG__))
1228 
1236 /* Private functions ---------------------------------------------------------*/
1276 HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank);
1286 HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout);
1299 HAL_StatusTypeDef FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
1300 
1312 HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber);
1313 uint32_t FMC_SDRAM_GetModeStatus(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
1333 #ifdef __cplusplus
1334 }
1335 #endif
1336 
1337 #endif /* __STM32F7xx_LL_FMC_H */
1338 
1339 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
#define FMC_NORSRAM_EXTENDED_TypeDef
FMC NAND Timing parameters structure definition.
HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef *Init)
#define FMC_NAND_TypeDef
FMC SDRAM Timing parameters structure definition.
HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank)
#define FMC_NORSRAM_TypeDef
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Disable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
uint32_t FMC_SDRAM_GetModeStatus(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
HAL_StatusTypeDef FMC_SDRAM_ProgramRefreshRate(FMC_SDRAM_TypeDef *Device, uint32_t RefreshRate)
HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber)
FMC NORSRAM Timing parameters structure definition.
SDRAM command parameters structure definition.
HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank)
HAL_StatusTypeDef FMC_SDRAM_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_InitTypeDef *Init)
HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
FMC SDRAM Configuration Structure definition.
HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank)
FMC NORSRAM Configuration Structure definition.
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Enable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)
#define FMC_SDRAM_TypeDef
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init)
HAL_StatusTypeDef FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
FMC NAND Configuration Structure definition.