查看: 15997|回复: 10

[已解决] 自制的板子ddr stress test失败(已解决)

[复制链接]

该用户从未签到

1

主题

8

帖子

0

新手上路

Rank: 1

积分
37
最后登录
2014-12-2
发表于 2014-11-6 11:20:28 | 显示全部楼层 |阅读模式
本帖最后由 Xenith 于 2014-11-12 22:59 编辑

[size=14.3999996185303px]FAE你好,
[size=14.3999996185303px]我们有自制的板子,是仿照mx6q_sabresd制作的,其中DDR换成了2G,型号是MT41K256M16HA-125IT,一共4片,另外emmc换成了32G的。使用mfgtool下载镜像时停在jumping to os image处停止不前,使用的烧录的firmware也是按照要求重新编译的,推测是ddr有问题。于是使用I.MX6DQSDL DDR3 Script Aid V0.10 .xlsx按照DDR芯片文档填入了各项参数并生成了script,然后使用DDR_Stress_Tester_V1.0.3软件进行测试,结果在DQS gating calibration这步失败了,官方的开发板是能通过各项测试的(使用的是自带的script)。DQS失败一般是什么原因导致的?是DDR参数设置的不对还是PCB板子制作的有问题?错误情况有电脑截图

我知道答案 目前已有10人回答

DQS gating calibraton failed

DQS gating calibraton failed
回复

使用道具 举报

该用户从未签到

1

主题

8

帖子

0

新手上路

Rank: 1

积分
37
最后登录
2014-12-2
 楼主| 发表于 2014-11-6 14:41:42 | 显示全部楼层
自己顶一下,FAE快看过来
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-6 14:54:51 | 显示全部楼层
    Xenith 发表于 2014-11-6 14:41
    自己顶一下,FAE快看过来

    楼主你好
    已经将你的问题转给我们i.mx工程师了。
    但是最近三个论坛的i.mx问题比较多所以可能无法及时回复你,还请耐心等待。

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2014-12-2
     楼主| 发表于 2014-11-6 15:06:03 | 显示全部楼层
    好的,我等等
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    45

    主题

    2369

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3275
    最后登录
    1970-1-1
    发表于 2014-11-6 17:12:49 | 显示全部楼层
    楼主你好,请问你这里DDR的参数设置正确吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2014-12-2
     楼主| 发表于 2014-11-7 09:41:30 | 显示全部楼层
    FSL_TICS_Rita 发表于 2014-11-6 17:12
    楼主你好,请问你这里DDR的参数设置正确吗?

    你好,参数我们是按照内存芯片文档设置xlsx得到的,其中最后的4个DRAM DSE Setting那栏,我们是50,excel中没有50可选,所以我们选了48.
    ===========imx6q ddr3 script aid xlsx============
                   
            Device Information       
            Manufacturer:        Micron
            Memory part number:        MT41K256M16HA-125IT
            Memory type:        DDR3-1600
            DRAM density (Gb)        4
            DRAM Bus Width        16
            Number of Banks        8
            Number of ROW Addresses        15
            Number of COLUMN Addresses        10
            Page Size (K)        2
            Self-Refresh Temperature (SRT)        Normal
            tRCD=tRP=CL (ns)        13.75
            tRC Min (ns)        48.75
            tRAS Min (ns)        35
            System Information       
            i.Mx Part        i.Mx6Q
            Bus Width        64
            Density per chip select (Gb)        16
            Number of Chip Selects used        1
            Total DRAM Density (Gb)        16
            DRAM Clock Freq (MHz)        528
            DRAM Clock Cycle Time (ns)        1.894
            Address Mirror (for CS1)        Disable
            SI Configuration       
            DRAM DSE Setting - DQ/DQM (ohm)        48
            DRAM DSE Setting - ADDR/CMD/CTL (ohm)        48
            DRAM DSE Setting - CK (ohm)        48
            DRAM DSE Setting - DQS (ohm)        48
            System ODT Setting (ohm)        60
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2014-12-2
     楼主| 发表于 2014-11-7 09:41:47 | 显示全部楼层
    ==========生成的inc: imx6q ddr3 script.inc=============
    //=============================================================================                       
    //init script for i.Mx6Q DDR3                       
    //=============================================================================                       
    // Revision History                       
    // v01                       
    //=============================================================================                       
                           
    wait = on                       
    //=============================================================================                       
    // Disable        WDOG               
    //=============================================================================                       
    setmem /16        0x020bc000 =        0x30       
                           
    //=============================================================================                       
    // Enable all clocks (they are disabled by ROM code)                       
    //=============================================================================                       
    setmem /32        0x020c4068 =        0xffffffff       
    setmem /32        0x020c406c =        0xffffffff       
    setmem /32        0x020c4070 =        0xffffffff       
    setmem /32        0x020c4074 =        0xffffffff       
    setmem /32        0x020c4078 =        0xffffffff       
    setmem /32        0x020c407c =        0xffffffff       
    setmem /32        0x020c4080 =        0xffffffff       
    setmem /32        0x020c4084 =        0xffffffff       
                           
    //=============================================================================                       
    // IOMUX                       
    //=============================================================================                       
    //DDR IO TYPE:                       
    setmem /32        0x020e0798 =        0x000C0000        // IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE
    setmem /32        0x020e0758 =        0x00000000        // IOMUXC_SW_PAD_CTL_GRP_DDRPKE
                           
    //CLOCK:                       
    setmem /32        0x020e0588 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0
    setmem /32        0x020e0594 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_1
                           
    //ADDRESS:                       
    setmem /32        0x020e056c =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS
    setmem /32        0x020e0578 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS
    setmem /32        0x020e074c =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_ADDDS
                           
    //Control:                       
    setmem /32        0x020e057c =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_RESET
    setmem /32        0x020e058c =        0x00000000        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDBA2 - DSE can be configured using Group Control Register: IOMUXC_SW_PAD_CTL_GRP_CTLDS
    setmem /32        0x020e059c =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0
    setmem /32        0x020e05a0 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1
    setmem /32        0x020e078c =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_CTLDS
                           
    //Data Strobes:                       
    setmem /32        0x020e0750 =        0x00020000        // IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL
    setmem /32        0x020e05a8 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0
    setmem /32        0x020e05b0 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1
    setmem /32        0x020e0524 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2
    setmem /32        0x020e051c =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3
    setmem /32        0x020e0518 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS4
    setmem /32        0x020e050c =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS5
    setmem /32        0x020e05b8 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS6
    setmem /32        0x020e05c0 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS7
                           
    //Data:                       
    setmem /32        0x020e0774 =        0x00020000        // IOMUXC_SW_PAD_CTL_GRP_DDRMODE
    setmem /32        0x020e0784 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B0DS
    setmem /32        0x020e0788 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B1DS
    setmem /32        0x020e0794 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B2DS
    setmem /32        0x020e079c =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B3DS
    setmem /32        0x020e07a0 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B4DS
    setmem /32        0x020e07a4 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B5DS
    setmem /32        0x020e07a8 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B6DS
    setmem /32        0x020e0748 =        0x00000028        // IOMUXC_SW_PAD_CTL_GRP_B7DS
                           
    setmem /32        0x020e05ac =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0
    setmem /32        0x020e05b4 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1
    setmem /32        0x020e0528 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2
    setmem /32        0x020e0520 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3
    setmem /32        0x020e0514 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM4
    setmem /32        0x020e0510 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM5
    setmem /32        0x020e05bc =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM6
    setmem /32        0x020e05c4 =        0x00000028        // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM7
                           
                           
    //=============================================================================                       
    // DDR Controller Registers                       
    //=============================================================================                       
    // Manufacturer:        Micron               
    // Device Part Number:        MT41K256M16HA-125IT               
    // Clock Freq.:         528MHz               
    // Density per CS in Gb:         16               
    // Chip Selects used:        1               
    // Number of Banks:        8               
    // Row address:            15               
    // Column address:         10               
    // Data bus width        64               
    //=============================================================================                       
    setmem /32        0x021b001c =        0x00008000        MMDC0_MDSCR, set the Configuration request bit during MMDC set up
                           
    //=============================================================================                       
    // Calibration setup.                       
    //=============================================================================                       
    setmem /32        0x021b0800 =        0xA1390003        // DDR_PHY_P0_MPZQHWCTRL, enable both one-time & periodic HW ZQ calibration.
                           
    // For target board, may need to run write leveling calibration to fine tune these settings.                       
    setmem /32        0x021b080c  =        0x00000000       
    setmem /32        0x021b0810 =        0x00000000       
    setmem /32        0x021b480c  =        0x00000000       
    setmem /32        0x021b4810 =        0x00000000       
                           
    ////Read DQS Gating calibration                       
    setmem /32        0x021b083c =        0x00000000        // MPDGCTRL0 PHY0
    setmem /32        0x021b0840 =        0x00000000        // MPDGCTRL1 PHY0
    setmem /32        0x021b483c =        0x00000000        // MPDGCTRL0 PHY1
    setmem /32        0x021b4840 =        0x00000000        // MPDGCTRL1 PHY1
                           
    //Read calibration                       
    setmem /32        0x021b0848 =        0x40404040        // MPRDDLCTL PHY0
    setmem /32        0x021b4848 =        0x40404040        // MPRDDLCTL PHY1
                           
    //Write calibration                                            
    setmem /32        0x021b0850 =        0x40404040        // MPWRDLCTL PHY0
    setmem /32        0x021b4850 =        0x40404040        // MPWRDLCTL PHY1
                           
    //read data bit delay: (3 is the reccommended default value, although out of reset value is 0)                       
    setmem /32        0x021b081c =        0x33333333        // DDR_PHY_P0_MPREDQBY0DL3
    setmem /32        0x021b0820 =        0x33333333        // DDR_PHY_P0_MPREDQBY1DL3
    setmem /32        0x021b0824 =        0x33333333        // DDR_PHY_P0_MPREDQBY2DL3
    setmem /32        0x021b0828 =        0x33333333        // DDR_PHY_P0_MPREDQBY3DL3
    setmem /32        0x021b481c =        0x33333333        // DDR_PHY_P1_MPREDQBY0DL3
    setmem /32        0x021b4820 =        0x33333333        // DDR_PHY_P1_MPREDQBY1DL3
    setmem /32        0x021b4824 =        0x33333333        // DDR_PHY_P1_MPREDQBY2DL3
    setmem /32        0x021b4828 =        0x33333333        // DDR_PHY_P1_MPREDQBY3DL3
                           
    //For i.mx6qd parts of versions A & B (v1.0, v1.1), uncomment the following lines. For version C (v1.2), keep commented                       
    //setmem /32        0x021b08c0 =        0x24911492        // fine tune SDCLK duty cyc to low - seen to improve measured duty cycle of i.mx6
    //setmem /32        0x021b48c0 =        0x24911492       
                           
    // Complete calibration by forced measurement:                                         
    setmem /32        0x021b08b8 =         0x00000800        // DDR_PHY_P0_MPMUR0, frc_msr
    setmem /32        0x021b48b8 =         0x00000800        // DDR_PHY_P0_MPMUR0, frc_msr
    //=============================================================================                       
    // Calibration setup end                       
    //=============================================================================                       
                           
    //MMDC init:                        
    setmem /32        0x021b0004 =        0x00020036        // MMDC0_MDPDC
    setmem /32        0x021b0008 =        0x09444040        // MMDC0_MDOTC
    setmem /32        0x021b000c =        0x898E7955        // MMDC0_MDCFG0
    setmem /32        0x021b0010 =        0xFF328F64        // MMDC0_MDCFG1
    setmem /32        0x021b0014 =        0x01FF00DB        // MMDC0_MDCFG2
                           
    //MDMISC: RALAT kept to the high level of 5.                        
    //MDMISC: consider reducing RALAT if your 528MHz board design allow that. Lower RALAT benefits:                        
    //a. better operation at low frequency, for LPDDR2 freq < 100MHz, change RALAT to 3                       
    //b. Small performence improvment                        
    setmem /32        0x021b0018 =        0x00011740        // MMDC0_MDMISC
    setmem /32        0x021b001c =        0x00008000        // MMDC0_MDSCR, set the Configuration request bit during MMDC set up
    setmem /32        0x021b002c =        0x000026D2        // MMDC0_MDRWD
    setmem /32        0x021b0030 =        0x008E1023        // MMDC0_MDOR
    setmem /32        0x021b0040 =        0x00000047        // Chan0 CS0_END
    setmem /32        0x021b0000 =        0x841A0000        // MMDC0_MDCTL
                           
    //Mode register writes                                        
    setmem /32        0x021b001c =        0x02088032        // MMDC0_MDSCR, MR2 write, CS0
    setmem /32        0x021b001c =        0x00008033        // MMDC0_MDSCR, MR3 write, CS0
    setmem /32        0x021b001c =        0x00048031        // MMDC0_MDSCR, MR1 write, CS0
    setmem /32        0x021b001c =        0x19408030        // MMDC0_MDSCR, MR0write, CS0
    setmem /32        0x021b001c =        0x04008040        // MMDC0_MDSCR, ZQ calibration command sent to device on CS0
                           
    //setmem /32        0x021b001c =        0x0208803A        // MMDC0_MDSCR, MR2 write, CS1
    //setmem /32        0x021b001c =        0x0000803B        // MMDC0_MDSCR, MR3 write, CS1
    //setmem /32        0x021b001c =        0x00048039        // MMDC0_MDSCR, MR1 write, CS1
    //setmem /32        0x021b001c =        0x19408038        // MMDC0_MDSCR, MR0write, CS1
    //setmem /32        0x021b001c =        0x04008048        // MMDC0_MDSCR, ZQ calibration command sent to device on CS1
                           
    setmem /32        0x021b0020 =        0x00007800        // MMDC0_MDREF
                           
    setmem /32        0x021b0818 =        0x00022227        // DDR_PHY_P0_MPODTCTRL
    setmem /32        0x021b4818 =        0x00022227        // DDR_PHY_P1_MPODTCTRL
                           
    setmem /32        0x021b0004 =        0x00025576        // MMDC0_MDPDC now SDCTL power down enabled
                           
    setmem /32        0x021b0404 =        0x00011006        // MMDC0_MAPSR ADOPT power down enabled, MMDC will enter automatically to self-refresh while the number of idle cycle reached.
                           
    setmem /32        0x021b001c =        0x00000000        // MMDC0_MDSCR, clear this register (especially the configuration bit as initialization is complete)
                           
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    45

    主题

    2369

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3275
    最后登录
    1970-1-1
    发表于 2014-11-7 10:01:11 | 显示全部楼层
    楼主你好,我看你这里频率设置的为528MHz,建议你降低一下频率再测试。由于你的硬件设计问题,有可能频率达不到528MHz。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2014-12-2
     楼主| 发表于 2014-11-7 10:33:47 | 显示全部楼层
    是改Excel表格里的然后重新生成脚本吗?我们先试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2014-12-2
     楼主| 发表于 2014-11-7 10:42:17 | 显示全部楼层
    还是不行,还是那个错。是不是硬件设计上可能有什么问题吗
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 07:03 , Processed in 0.108612 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表