SLAU723A October 2017 – October 2018 MSP432E401Y , MSP432E411Y
The refresh count is based on the external clock speed and the number of rows per bank as well as the refresh period. The RFSH field represents how many external clock cycles remain before an AUTO-REFRESH is required. The normal formula is:
RFSH ≤ (tRefresh_us/ number_rows) / ext_clock_period_µs
A refresh period is normally 64 ms, or 64000 μs. The number of rows is normally 4096 or 8192. The ext_clock_period is a value expressed in µs and is derived by dividing 1000 by the clock speed expressed in MHz. So, 50 MHz is 1000 / 50 = 20 ns, or 0.02 μs. A typical SDRAM is 4096 rows per bank if the system clock is running at 50 MHz with an EPIBAUD register value of 0:
RFSH = (64000 / 4096) / 0.02 = 15.625 μs / 0.02 μs = 781.25.
The default value in the RFSH field is 750 decimal or 0x2EE to allow for a margin of safety and providing 15 μs per refresh. It is important to note that this number should always be smaller or equal to what is required by the above equation. For example, if running the external clock at 25 MHz (40 ns per clock period), 390 is the highest number that may be used. The external clock may be 25 MHz when the system clock is 25 MHz or when the system clock is 50 MHz and configuring the COUNT0 field in the EPIBAUD register to 1 (divide by 2).
If a number larger than allowed is used, the SDRAM is not refreshed often enough, and data is lost.