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 |
