4.2.9 SAMA5D27/BGA289/LPDDR2-SDRAM Software Settings
The SAMA5D27/BGA289/LPDDR2-SDRAM set is an LPDDR2-SDRAM test board built on a 6-layer PCB. The board features a SAMA5D27/BGA289 MPU and one 2-Gbit AP Memory LPDDR2-SDRAM device (part no: AD220032D-AB). The DDR clock runs at 166 MHz.
Field | Description | Setting | Setting Details |
---|---|---|---|
MD | Memory Device | 7 | LPDDR2-SDRAM |
DBW(1) | Data Bus Width | 0 | Data bus width is 32 bits |
Field | Description | Setting | Setting Details |
---|---|---|---|
NC | Number of Column Bits | 0 | 9 bits to define the column number |
NR | Number of Row Bits | 3 | 14 bits to define the row number |
CAS | CAS Latency | 0 | LPDDR2 CAS Latency 3 |
DLL | Reset DLL | (unchanged) | Not available for LPDDR2-SDRAM |
DIC_DS | Output Driver Impedance Control (Drive Strength) | (unchanged) | Not available for LPDDR2-SDRAM |
DIS_DLL | Disable DLL | (unchanged) | Not available for LPDDR2-SDRAM |
ZQ | ZQ Calibration | (unchanged) | Not available for LPDDR2-SDRAM |
OCD | Off-chip Driver | (unchanged) | Not available for LPDDR2-SDRAM |
DQMS | Mask Data is Shared | 0 | DQM is not shared with another controller |
ENRDM | Enable Read Measure | 0 | DQS/DDR_DATA phase error correction is disabled |
LC_LPDDR1 | Low-cost Low-power DDR1 | (unchanged) | Not available for LPDDR2-SDRAM |
NB | Number of Banks | 1 | 8 banks |
NDQS | Not DQS | (unchanged) | Not available for LPDDR2-SDRAM |
DECOD | Type of Decoding | 0 | Sequential |
UNAL | Support Unaligned Access | 1 | Unaligned access is supported |
Field | Description | Setting(2) | Setting Details |
---|---|---|---|
TRAS | Active to Precharge Delay | 42 ns | – |
TRCD | Row to Column Delay | 18 ns | – |
TWR | Write Recovery Delay | 15 ns | – |
TRC | Row Cycle Delay | 60 ns | – |
TRP | Row Precharge Delay | 18 ns | – |
TRRD | Active BankA to Active BankB | 10 ns | – |
TWTR | Internal Write to Read Delay | 10 ns | – |
TMRD | Load Mode Register Command to Activate or Refresh Command | 5 ck | – |
Field | Description | Setting(2) | Setting Details |
---|---|---|---|
TRFC | Row Cycle Delay | 130 ns | – |
TXSNR | Exit Self-refresh Delay to Non-Read Command | 140 ns | – |
TXSRD | Exit Self-refresh Delay to Read Command | (unchanged) | Not available for LPDDR2-SDRAM |
TXP | Exit Power-down Delay to First Command | 8 ns | – |
Field | Description | Setting(2) | Setting Details |
---|---|---|---|
TXARD | Exit Active Power-down Delay to Read Command in Mode “Fast Exit” | (unchanged) | Not available for LPDDR2-SDRAM |
TXARDS | Exit Active Power-down Delay to Read Command in Mode “Slow Exit” | (unchanged) | Not available for LPDDR2-SDRAM |
TRPA | Row Precharge All Delay | 21 ns | Equivalent to tRPAB |
TRTP | Read to Precharge | 8 ns | – |
TFAW | Four Active Windows | 50 ns | – |
Field | Description | Setting | Setting Details |
---|---|---|---|
BK_MASK_PASR | Bank Mask Bit/PASR | 0 | Refresh is enabled |
SEG_MASK | Segment Mask Bit | 0 | Segment is refreshed |
DS | Drive Strength | 2 | 40 ohm typical |
Field | Description | Setting | Setting Details |
---|---|---|---|
SHIFT_SAMPLING | Shift Sampling Point of Data | 1 | Sampling point is shifted by one cycle |
Field | Description | Setting | Setting Details |
---|---|---|---|
RDIV | Resistor Divider, Output Driver Impedance | 4 | LPDDR2 serial impedance line = 60 ohms |
TZQIO | IO Calibration | 101 | TZQIO = (DDRCK × 600e-9) + 1 |
EN_CALIB | Enable Calibration | (unchanged) | Not available for LPDDR2-SDRAM |
Field | Description | Setting | Setting Details |
---|---|---|---|
COUNT(3) | MPDDRC Refresh Timer Count | 1297 | Value needs to be computed |
ADJ_REF | Adjust Refresh Rate | (unchanged) | Not available for DDR3-SDRAM |
REF_PB | Refresh Per Bank | (unchanged) | Not available for DDR3-SDRAM |
- If using one 32-bit data bus width SDRAM device or two 16-bit devices, then set the Data Bus Width to 32 bits (DBW = 0). If only one 16-bit data bus width SDRAM device is used, then set the Data Bus Width to 16 bits (DBW = 1).
- If timing values are given in
nanoseconds, they must be converted in clock cycles and rounded up.
tCYCLES = tns/tCK, where tCYCLES is
the timing value in clock cycles, tns is the timing value in nanoseconds
and tCK is the DDR clock period.
Eg: If fCK = 166 MHz, then tCK = 1/fCK = 6 ns
If tns = 35 ns, then tCYCLES = 35/6 = 6 clock cycles
- The value in the COUNT field needs to
be computed.
COUNT = tREFI/tCK
For tREFI = 7.8 μs and tCK = 6 ns results in COUNT = 1300
tREFI can also be calculated if the Refresh Window [ms] and Refresh Cycles are given (in the SDRAM data sheet).
tREFI [μs] = (Refresh Window [ms]/Refresh Cycles)*fCK [MHz]*1000
If Refresh Window = 64 ms, Refresh Cycles = 8192 and fCK = 166 MHz,
then COUNT = (64/8192)*166*1000 = 1297
Register Name | Register Address | Contents Value |
---|---|---|
MPDDRC_MD | 0xF000C020 | 0x00000004 |
MPDDRC_CR | 0xF000C008 | 0x00D0055D |
MPDDRC_TPR0 | 0xF000C00C | 0x44439336 |
MPDDRC_TPR1 | 0xF000C010 | 0x0A001413 |
MPDDRC_TPR2 | 0xF000C014 | 0x00084000 |
MPDDRC_LPDDR23_LPR | 0xF000C028 | 0x02000000 |
MPDDRC_RD_DATA_PATH | 0xF000C05C | 0x00000001 |
MPDDRC_IO_CALIBR | 0xF000C034 | 0x00876504 |
MPDDRC_RTR | 0xF000C004 | 0x00000511 |