sdram_port.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2019-02-16 jinsheng The first version for STM32F7xx
  9. */
  10. #ifndef __SDRAM_PORT_H__
  11. #define __SDRAM_PORT_H__
  12. /* parameters for sdram peripheral */
  13. /* Bank1 or Bank2 */
  14. #define SDRAM_TARGET_BANK 1
  15. /* stm32f7 Bank1:0XC0000000 Bank2:0XD0000000 */
  16. #define SDRAM_BANK_ADDR ((uint32_t)0XC0000000)
  17. /* data width: 8, 16, 32 */
  18. #define SDRAM_DATA_WIDTH 16
  19. /* column bit numbers: 8, 9, 10, 11 */
  20. #define SDRAM_COLUMN_BITS 8
  21. /* row bit numbers: 11, 12, 13 */
  22. #define SDRAM_ROW_BITS 12
  23. /* cas latency clock number: 1, 2, 3 */
  24. #define SDRAM_CAS_LATENCY 3
  25. /* read pipe delay: 0, 1, 2 */
  26. #define SDRAM_RPIPE_DELAY 0
  27. /* clock divid: 2, 3 */
  28. #define SDCLOCK_PERIOD 2
  29. /* refresh rate counter */
  30. #define SDRAM_REFRESH_COUNT ((uint32_t)0x1000)
  31. #define SDRAM_SIZE ((uint32_t)0x800000)
  32. /* Timing configuration for MT48LC4M32B2B5-6A */
  33. /* TMRD: 2 Clock cycles */
  34. #define LOADTOACTIVEDELAY 2
  35. /* TXSR: 7x11.90ns */
  36. #define EXITSELFREFRESHDELAY 7
  37. /* TRAS: 4x11.90ns */
  38. #define SELFREFRESHTIME 4
  39. /* TRC: 7x11.90ns */
  40. #define ROWCYCLEDELAY 7
  41. /* TWR: 2 Clock cycles */
  42. #define WRITERECOVERYTIME 3
  43. /* TRP: 2x11.90ns */
  44. #define RPDELAY 2
  45. /* TRCD: 2x11.90ns */
  46. #define RCDDELAY 2
  47. /* memory mode register */
  48. #define SDRAM_MODEREG_BURST_LENGTH_1 ((uint16_t)0x0000)
  49. #define SDRAM_MODEREG_BURST_LENGTH_2 ((uint16_t)0x0001)
  50. #define SDRAM_MODEREG_BURST_LENGTH_4 ((uint16_t)0x0002)
  51. #define SDRAM_MODEREG_BURST_LENGTH_8 ((uint16_t)0x0004)
  52. #define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL ((uint16_t)0x0000)
  53. #define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED ((uint16_t)0x0008)
  54. #define SDRAM_MODEREG_CAS_LATENCY_2 ((uint16_t)0x0020)
  55. #define SDRAM_MODEREG_CAS_LATENCY_3 ((uint16_t)0x0030)
  56. #define SDRAM_MODEREG_OPERATING_MODE_STANDARD ((uint16_t)0x0000)
  57. #define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000)
  58. #define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE ((uint16_t)0x0200)
  59. #endif