完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
自己画的6657的板,发现DDR3初始化有问题,初始化参数是按照芯片手册来设置的,写数据进去会出错。初步怀疑是DDR3布线问题,请问ti的大神们,6657对DDR3的布线有什么具体的要求吗?或者是DDR3这一块要着重注意哪些方面。望详细赐教,谢谢!
DDR3时钟输入是50Mhz,输出时钟设置为 // +--------------------+---------------+--------+----------------------------+ // | DDR3 PLL VCO | (CLKIN) Input | // | Rate (MHz) | Clock (MHz) | PLL2_M PLL2_D | // +--------------------+---------------+--------+----------------------------+ // | 1600 | 50 (EVM) | 31 | 1 | // | 1333 | 50 | 39 | 2 | // | 1066 | 50 | 31 | 2 | // +--------------------+---------------+--------+----------------------------+ 这是我初始化时用的程序: void BV6657_DDR3_Init() [ KICK0 = KICK0_UNLOCK; KICK1 = KICK1_UNLOCK; DDR3_CONFIG_REG_0 &= ~(0x007FE000); // clear ctrl_slave_ratio field DDR3_CONFIG_REG_0 |= 0x00200000; // set ctrl_slave_ratio to 0x100 DDR3_CONFIG_REG_12 |= 0x08000000; // Set invert_clkout = 1 DDR3_CONFIG_REG_0 |= 0xF; // set dll_lock_diff to 15 //From 4.2.1 Executing Partial Automatic Leveling -- Start DDR3_CONFIG_REG_23 |= 0x00000200; //Set bit 9 = 1 to use forced ratio leveling for read DQS //From 4.2.1 Executing Partial Automatic Leveling -- End //Values with invertclkout = 1 /**************** Leveling Initialization Values ********************/ DATA0_WRLVL_INIT_RATIO = 0x00; DATA1_WRLVL_INIT_RATIO = 0x00; DATA2_WRLVL_INIT_RATIO = 0x00; DATA3_WRLVL_INIT_RATIO = 0x00; DATA4_WRLVL_INIT_RATIO = 0x5F; DATA5_WRLVL_INIT_RATIO = 0x5F; DATA6_WRLVL_INIT_RATIO = 0x5B; DATA7_WRLVL_INIT_RATIO = 0x5A; DATA8_WRLVL_INIT_RATIO = 0x00; DATA0_GTLVL_INIT_RATIO = 0x00; DATA1_GTLVL_INIT_RATIO = 0x00; DATA2_GTLVL_INIT_RATIO = 0x00; DATA3_GTLVL_INIT_RATIO = 0x00; DATA4_GTLVL_INIT_RATIO = 0xA1; DATA5_GTLVL_INIT_RATIO = 0xA1; DATA6_GTLVL_INIT_RATIO = 0x88; DATA7_GTLVL_INIT_RATIO = 0x89; DATA8_GTLVL_INIT_RATIO = 0x00; DDR_PHYCTRL &= ~(0x00008000); DDR_PHYCTRL |= (0x00008000); DDR_PHYCTRL &= ~(0x00008000); DDR_SDRFC = 0x00003D08; // enable configuration DDR_SDTIM1 = 0x0CCF1623; DDR_SDTIM2 = 0x20867FDA; DDR_SDTIM3 = 0x557F881F; DDR_PHYCTRL = 0x0010010F; DDR_ZQCFG = 0x70074C1F; DDR_PMCTL = 0x0; // DDR_SDRFC = 0x000007A1; // enable configuration DDR_SDCFG = 0x63437B32; TSC_delay_us(600); //Wait 600us for HW init to complete DDR_SDRFC = 0x00000F42; //Refresh rate = (7.8*500MHz) /**************** 4.2.1 Executing Partial Automatic Leveling ********************/ RDWR_LVL_RMP_CTRL = 0x80000000; //enable full leveling RDWR_LVL_CTRL = 0x80000000; //Trigger full leveling - This ignores read DQS leveling result and uses ratio forced value TSC_delay_us(30000); //3ms //TSC_delay_us(30000); //3ms printf("nDDR3 initialization is complete.n"); ] |
|
相关推荐
4个回答
|
|
1 DDR3硬件设计建议参考Keystone 硬件设计手册和sprabi1 DDR3 Design Requirements for KeyStone Devices 这两个文档,这2个文档在665x的主页上都能下载到的
2 DDR3控制器参数需要根据你的板子的情况重新做leveling参数初始化,leveling表格在主页上下载后,根据你板子的布线填入这个表格,会自动生成相应的leveling参数,然后在你的初始化程序中把这个leveling参数填入即可 |
|
|
|
我在自己的板子上是用從站上下載的STK_6657的KeyStone_DDR_PLL_init(), DDR就可以正常啟動,您的板子用GEL的DDR init可以起的來嗎?如果可以的話,用這function應該也可以起的來。我目前的問題是卡在SPI nor flash boot的DDR parameter table啟動DDL會起不來。
|
|
|
|
liuqin123 发表于 2018-6-21 05:51 问题已经解决,谢谢你的回答! |
|
|
|
wenminglang 发表于 2018-6-21 06:05 DDR的问题已经解决,SPI的启动参考官方发布的帖子就行。 |
|
|
|
只有小组成员才能发言,加入小组>>
2907个成员聚集在这个小组
加入小组354 浏览 1 评论
547 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
793 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
664 浏览 1 评论
对于多级放大威廉希尔官方网站 板,在PCB布局中,电源摆放的位置应该注意什么?
1141 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
88浏览 29评论
334浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
262浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
215浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
69浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 11:34 , Processed in 0.900633 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号