123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-04-08 shelton first version
- */
- #ifndef __DRV_SDRAM_H__
- #define __DRV_SDRAM_H__
- #include <rtthread.h>
- /* parameters for sdram peripheral */
- /* bank1 or bank2 */
- #define SDRAM_TARGET_BANK 1
- /* at32f435 bank1:0xc0000000 bank2:0xd0000000 */
- #define SDRAM_BANK_ADDR ((uint32_t)0xC0000000)
- /* data width: 8, 16, 32 */
- #define SDRAM_DATA_WIDTH 16
- /* column bit numbers: 8, 9, 10, 11 */
- #define SDRAM_COLUMN_BITS 9
- /* row bit numbers: 11, 12, 13 */
- #define SDRAM_ROW_BITS 13
- /* cas latency clock number: 1, 2, 3 */
- #define SDRAM_CAS_LATENCY 3
- /* read pipe delay: 0, 1, 2 */
- #define SDRAM_RPIPE_DELAY 1
- /* clock divid: 2, 3 */
- #define SDCLOCK_PERIOD 3
- /* refresh rate counter */
- /* counter = (refresh_count * 1000 * SDCLK) / row - 20 */
- /* counter = (64ms * 1000 * 144MHz) / 2^13 - 20 */
- #define SDRAM_REFRESH_COUNT ((uint32_t)0x0451)
- #define SDRAM_SIZE ((uint32_t)0x1000000)
- /* tmrd */
- #define LOADTOACTIVEDELAY XMC_DELAY_CYCLE_2
- /* txsr */
- #define EXITSELFREFRESHDELAY XMC_DELAY_CYCLE_11
- /* tras */
- #define SELFREFRESHTIME XMC_DELAY_CYCLE_7
- /* trc */
- #define ROWCYCLEDELAY XMC_DELAY_CYCLE_9
- /* twr */
- #define WRITERECOVERYTIME XMC_DELAY_CYCLE_2
- /* trp */
- #define RPDELAY XMC_DELAY_CYCLE_3
- /* trcd */
- #define RCDDELAY XMC_DELAY_CYCLE_3
- /* memory mode register */
- #define SDRAM_BURST_LEN_1 ((uint16_t)0x0000)
- #define SDRAM_BURST_LEN_2 ((uint16_t)0x0001)
- #define SDRAM_BURST_LEN_4 ((uint16_t)0x0002)
- #define SDRAM_BURST_LEN_8 ((uint16_t)0x0004)
- #define SDRAM_BURST_SEQUENTIAL ((uint16_t)0x0000)
- #define SDRAM_BURST_INTERLEAVED ((uint16_t)0x0008)
- #define SDRAM_CAS_LATENCY_1 ((uint16_t)0x0010)
- #define SDRAM_CAS_LATENCY_2 ((uint16_t)0x0020)
- #define SDRAM_CAS_LATENCY_3 ((uint16_t)0x0030)
- #define SDRAM_OPERATING_MODE_STANDARD ((uint16_t)0x0000)
- #define SDRAM_WR_BURST_PROGRAMMED ((uint16_t)0x0000)
- #define SDRAM_WR_BURST_SINGLE ((uint16_t)0x0200)
- #ifdef __cplusplus
- }
- #endif
- #endif /* __DRV_SDRAM_H__ */
|