<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic imx53 LPDDR2 configuration in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/imx53-LPDDR2-configuration/m-p/194392#M10150</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I nedd help on interfacing LPDDR2 with imx535 (529 BGA). I'm using the micron MT42L128M32D2 mounted on PCB.&lt;/P&gt;&lt;P&gt;I want to get the proper initialization code and also advise on the interconnection and layout. I don't seem to find official documents on this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help would be appreciated&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 10 Dec 2011 05:47:34 GMT</pubDate>
    <dc:creator>danix</dc:creator>
    <dc:date>2011-12-10T05:47:34Z</dc:date>
    <item>
      <title>imx53 LPDDR2 configuration</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx53-LPDDR2-configuration/m-p/194392#M10150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I nedd help on interfacing LPDDR2 with imx535 (529 BGA). I'm using the micron MT42L128M32D2 mounted on PCB.&lt;/P&gt;&lt;P&gt;I want to get the proper initialization code and also advise on the interconnection and layout. I don't seem to find official documents on this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help would be appreciated&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Dec 2011 05:47:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx53-LPDDR2-configuration/m-p/194392#M10150</guid>
      <dc:creator>danix</dc:creator>
      <dc:date>2011-12-10T05:47:34Z</dc:date>
    </item>
    <item>
      <title>Re: imx53 LPDDR2 configuration</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx53-LPDDR2-configuration/m-p/194393#M10151</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Danix,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have designed a board with an i.MX53 and LPDDR2 from Micron : MT42L256M32D2. It should be straightforward to interface the smaller package you need. I have also derived (with some trial and error) the initialization of the DDR controller. I can share the connection diagram with you (preferrably with a direct link) and the initialization can be found below. Please forward your email address for the schematic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Init file for LPDDR2:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Add a forced HW ZQ &lt;/P&gt;&lt;P&gt;wait = on&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;// Disable WDOG&lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;//setmem /16 0x53f98000 = 0x30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;// Enable all clocks (they are disabled by ROM code)&lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;//setmem /32 0x53fd4018 = 0x00016554&amp;nbsp; // unmask line for DDR @ 200MHz&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4068 = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd406c = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4070 = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4074 = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4078 = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd407c = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4080 = 0xffffffff&lt;/P&gt;&lt;P&gt;setmem /32 0x53fd4084 = 0xffffffff&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;// Initialization script for 32 bit DDR2 (CS0+CS1) &lt;/P&gt;&lt;P&gt;//*================================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// DDR2 IOMUX configuration&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8554 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8560 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8594 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8584 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8558 = 0x002800c0&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3 enable pull down&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8568 = 0x002800c0&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2 enable pull down&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8590 = 0x002800c0&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1 enable pull down&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa857c = 0x002800c0&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0 enable pull down&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa872c = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_B3DS&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8728 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_B2DS&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa871c = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_B1DS&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8718 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_B0DS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8570 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_1&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8578 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x53fa8564 = 0x00300040&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1&lt;/P&gt;&lt;P&gt;//setmem /32 0x53fa8580 = 0x00300040&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x53fa8574 = 0x00300000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS&lt;/P&gt;&lt;P&gt;//setmem /32 0x53fa8588 = 0x00300000&amp;nbsp; //IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa86f0 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_ADDDS&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa86fc = 0x00000000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_DDRPKE&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8720 = 0x00280000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_CTLDS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa86f4 = 0x00000200&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8714 = 0x00000000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_DDRMODE - CMOS mode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x53fa8724 = 0x06000000&amp;nbsp; //IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE - DDR_SEL=11 &lt;/P&gt;&lt;P&gt;//Set this mode, as LPDDR2 is used @ 1.2V and the ZQ&amp;nbsp; resistor is 160 Ohms (! DDR_SEL=10 as one would expect does not work !)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9098 = 0x00000f00 //add 3 logic unit of delay to sdclk to improve EVK DDR max frequency&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//read delays:&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd905c = 0x33333333 //all byte 0 data delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9060 = 0x33333333 //all byte 1 data delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9064 = 0x33333333 //all byte 2 data delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9068 = 0x33333333 //all byte 3 data delayed by 3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//write delays:&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd906c = 0xf3333333 //all byte 0 data &amp;amp; dm delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9070 = 0xf3333333 //all byte 1 data &amp;amp; dm delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9074 = 0xf3333333 //all byte 2 data &amp;amp; dm delayed by 3&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9078 = 0xf3333333 //all byte 3 data &amp;amp; dm delayed by 3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Initialize LPDDR2 memory - Micron MT42L256M32D2&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd909c = 0x3f8f018f&amp;nbsp; // ZQLP2CTL&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd909c = 0x63c801ff&amp;nbsp; &lt;/P&gt;&lt;P&gt;// ZQcs=0x63 100 cyc, ok to support 96ns&lt;/P&gt;&lt;P&gt;// ZQcl=0xc8 200 cyc, to support 360ns with 2ns cycle&lt;/P&gt;&lt;P&gt;// ZQinit =0x1ff , to support 1uS with 2ns cyc&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd909c = 0x638f018f&amp;nbsp; &lt;/P&gt;&lt;P&gt;// ZQcs=0x63 Default to 100 cyc, ok to support 96ns (250ns)&lt;/P&gt;&lt;P&gt;// ZQcl=0x8f 144 cyc, default JEDEC value for 360ns with 2.5 ns cycle&lt;/P&gt;&lt;P&gt;// ZQinit =0x18f 400 cyc, default JEDEC value for 1uS with 2.5ns cyc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9088 = 0x3633342e //set the already measured rd delay vals&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9090 = 0x504f5049 //set the already measured wr delay vals&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9088 = 0x3630332a&amp;nbsp; //set the already measured rd delay vals&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9090 = 0x5250524b&amp;nbsp; //set the already measured wr delay vals&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9088 = 0x40404040&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9090 = 0x40404040&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd90f8 = 0x00000800 //force the above two registers measured content into SDCTL.&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd907c = 0x20000000 //dqs_gating disable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9018 = 0x000016c8&amp;nbsp; // Enable bank interleaving, RALAT = 0x3, DDR_TYPE = LPDDR2&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9018 = 0x00001748&amp;nbsp; // Enable bank interleaving, RALAT = 0x5, DDR_TYPE = LPDDR2&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9018 = 0x00000ec8&amp;nbsp; // Disable bank interleaving, -S4 LPDDR2, RALAT = 0x3, 8 banks devices, DDR_TYPE = LPDDR2&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9000 = 0xc3010000&amp;nbsp; // Enable CSD0 and CSD1, row width = 14, column width = 9, Burst length 4, data width = 32bit&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9018 = 0x00001f48&amp;nbsp; // Enable bank interleaving, RALAT = 0x5, DDR_TYPE = LPDDR2-S4 with 8 banks&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9000 = 0xc3110000&amp;nbsp; // Enable CSD0 and CSD1, row width = 14, column width = 10, Burst length 4, data width = 32bit&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd900C = 0x33374733&amp;nbsp; // tRFC = 52 ck, tXS = 56 ck, tXP = 3 ck, tFAW = 19 ck, CAS latency = 6 ck&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd900c = 0x33374733&amp;nbsp; // tRFC = 52 ck, tXS = 56 ck, tXP = 3 ck, tFAW = 20 ck, CAS latency = 6 ck&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9010 = 0x00118a82&amp;nbsp; // tRCD=tRP=tRC=0, tRAS = 18 ck, tRPA = 1, tWR = 6 ck, tMRD = 5 ck, tCWL = 3 ck&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9010 = 0x00118a62&amp;nbsp; // tRCD=tRP=tRC=0, tRAS = 17 ck, tRPA = 1, tWR = 6 ck, tMRD = 3 ck, tCWL = 3 ck&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9014 = 0x00c70093&amp;nbsp; // tDLLK(tXSRD) = 200 cycles, tRTP = 3 ck, tWTR = 3ck, tRRD = 4ck&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9038 = 0x00190778&amp;nbsp; // tRC=25, tRCD = 8ck, tRPPB = 8ck, tRPAB = 9ck&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9038 = 0x00190778&amp;nbsp; // tRC=26 ck, tRCD = 8ck, tRPPB = 8ck, tRPAB = 9ck&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd902c = 0x079726d2&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd902c = 0x0f9f26d2&amp;nbsp; // tDAI = 4000 cyc, reset default&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9030 = 0x009f000e&amp;nbsp; // Not relevant LPDDR2&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9008 = 0x12272000&amp;nbsp; // Not relevant LPDDR2&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9004 = 0x00030024&amp;nbsp; // tCKE = 3 ck, tCKSRX = 4 cyc, tCKSRE = 4 cyc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x003f8030&amp;nbsp; // MRW: BA=0 CS=0 MR_ADDR=63 MR_OP=0 : RESET&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x003f8038&amp;nbsp; // MRW: BA=0 CS=1 MR_ADDR=63 MR_OP=0 : RESET&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0xff0a8030&amp;nbsp; // MRW: BA=0 CS=0 MR_ADDR=10 MR_OP=ff : Calibration after init&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0xff0a8038&amp;nbsp; // MRW: BA=0 CS=1 MR_ADDR=10 MR_OP=ff : Calibration after init&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x82018030&amp;nbsp; // MRW: BA=0 CS=0 MR_ADDR=1&amp;nbsp; MR_OP=82 : nWR=6ck, Wrap, Seq burst, BL=4&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x82018038&amp;nbsp; // MRW: BA=0 CS=1 MR_ADDR=1&amp;nbsp; MR_OP=82 : nWR=6ck, Wrap, Seq burst, BL=4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x04028030&amp;nbsp; // MRW: BA=0 CS=0 MR_ADDR=2&amp;nbsp; MR_OP=4 : RL6, WL3 =&amp;gt; 400 MHz&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x04028038&amp;nbsp; // MRW: BA=0 CS=1 MR_ADDR=2&amp;nbsp; MR_OP=4 : RL6, WL3 =&amp;gt; 400 MHz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x01038030&amp;nbsp; // MRW: BA=0 CS=0 MR_ADDR=3&amp;nbsp; MR_OP=1 : Drive strength 34.3 ohms&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x01038038&amp;nbsp; // MRW: BA=0 CS=1 MR_ADDR=3&amp;nbsp; MR_OP=1 : Drive strength 34.3 ohms&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9020 = 0x00005800&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9020 = 0x00007800 // 8 refreshs , 32kHz rate&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9020 = 0x00001800 // 4 refreshs , 64kHz rate&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//setmem /32 0x63fd9040 = 0x04b80003 // ZQ HW control&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd9040 = 0xa5390003 // ZQ HW control: Parallel, 128 cyc, 256 cyc, 512 cyc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;setmem /32 0x63fd901c = 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Oct 2015 06:40:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx53-LPDDR2-configuration/m-p/194393#M10151</guid>
      <dc:creator>pierreschirrer</dc:creator>
      <dc:date>2015-10-02T06:40:44Z</dc:date>
    </item>
  </channel>
</rss>

