# mpc8306 DDR2 timing reg setup

Question asked by Pan Jie on Aug 23, 2015
Latest reply on Aug 24, 2015 by Bulat Karymov

mpc8306 ddr2 setup:

RCWLR = 0x4423_0086;  input sys_clk = 33.333Mhz

so:

csb_clk = 133Mhz, DDR2_clk = 266Mhz

DDR2_tclk = 7.5ns

DDR2 Chip on MPC8306SOM is MT47H64M16HR-3,from micron's datasheet

tRP(min) = 15ns;

tRAS(min) = 40ns;

tRCD(min) = 15ns;

tRFC(min) = 127.5ns;

tWR(min) = 15ns;

tRCD(min) = 15ns;

tRRD(min) = 10ns;

tWTR(min) = 7.5ns;

by MPC8306 RefrenceManual:

DDR2_Timing_cfg_1_reg:

PRETOACT(tRP) =  15ns/7.5ns = 2;

ACTTOPRE(tRAS) = 40ns/7.5ns = 6;

ACTTORW(tRCD) = 15ns/7.5ns = 2;

CASLAT(CL) = 5;    CL = 3 clocks;

REFREC(tRFC) = 127.5ns/7.5ns -8 = 9;

WRREC(tWR) = 15ns/7.5ns = 2;

ACTTOACT(tRRD) = 10ns/7.5ns = 2;

WRTORD(tWTR) = 7.5ns/7.5ns = 1;

so, value of  DDR2_Timing_cfg_1 should be:

# TIMING_CONFIG_1

# bit 1-3 = 2 - PRETOACT precharge activate interval 3 clock cycles

# bit 4-7 = 6 - ACTTOPRE activate to precharge interval 9 clock cycles

# bit 9-11 = 2 = ACTTORW activate to r/w interval 3 clock cycles

# bit 13 - 15 = 5 - CASLAT CAS latency 3 clock cycles

# bit 16 - 19 = 9 - REFREC refresh recovery time 17 clock cycles

# bit 21 - 23 = 2 - WRREC data to precharge interval 3 clock cycles

# bit 25 - 27 = 2 - ACTTOACT activate to activate interval 2 clock cycles

# bit 29 - 31 = 1 - WRTORD write data to read command interval 2 clock cycles

#reg \${DDR_CONT_GROUP}TIMING_CFG_1 = 0x26259221

actually,the mpc8306som_init.tcl

# TIMING_CONFIG_1

# bit 1-3 = 3 - PRETOACT precharge activate interval 3 clock cycles

# bit 4-7 = 9 - ACTTOPRE activate to precharge interval 9 clock cycles

# bit 9-11 = 3 = ACTTORW activate to r/w interval 3 clock cycles

# bit 13 - 15 = 5 - CASLAT CAS latency 3 clock cycles

# bit 16 - 19 = d - REFREC refresh recovery time 21 clock cycles

# bit 21 - 23 = 3 - WRREC data to precharge interval 3 clock cycles

# bit 25 - 27 = 2 - ACTTOACT activate to activate interval 2 clock cycles

# bit 29 - 31 = 2 - WRTORD write data to read command interval 2 clock cycles

#reg \${DDR_CONT_GROUP}TIMING_CFG_1 = 0x3935d322

why?

the fact is use the value in mpc8306som_init.tcl is OK,use the value by calculate is wrong.

Have any suggestiton?