alan8918 发表于 2011-5-9 11:22:46

请教一下坛里的哪位搞过9G20,最近调试SDRAM出了点问题,目前为止没有解决?

最近用9G20在捣腾一个控制板,卡在了SDRAM部分。9G20的功耗的确做的非常好,整板12V供电,电流不到90mA。这次的新版在调试时卡在了SDRAM部分:(1)上电其ROMBOOT能正常引导;(2)其USB DEVICE接口能正常工作,PC能加载其驱动,SAM-BA v2.10能识别该接口,只是在初始化SDRAM时出错,根据SAM-BA的源码来分析,错误是发生在对SDRAM进行10KB数据的读写校验时发生的
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_638456SWCDG9.JPG
SAM-BA初始化SDRAM时导致系统复位重启 (原文件名:Romboot_SDRAM.JPG)
通过JTAG仿真时的确发现:对64MB,32位宽的SDRAM的前面128字进行读写校验时的确发现,每间隔一个字都有一个字是错误的,而且这个错误的字的数据是前一个和后一个正确字的混合体,当然最开始几个字连续错误原因还不太清楚,一下是测试代码

#define SDRAM_START_ADDRESS 0x20000000
static unsigned char ExtRAM_TestOk(void)
{
    unsigned int i;
    volatile unsigned int *ptr = (volatile unsigned int *) SDRAM_START_ADDRESS;

    for (i = 1;i < 128; ++i)
    {
      ptr = i |(i << 8)|(i << 16)|(i <<24) ;
   }   
   for (i = 1; i < 128;++i)
   {
      RdSDRAM = ptr;
   }
}
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_638457MK72N1.JPG
SDRAM测试结果 (原文件名:TEST_SDRAM.JPG)

我们考虑是时序的问题,但是通过示波器测试并和正常的DEMO板对比,没有发现时序异常,原理图和PCB反复检查,也没有发现原理性的错误。同样的测试程序在其他DEMO板上测试OK

leifeng 发表于 2011-5-9 11:26:21

sdram原理图?

alan8918 发表于 2011-5-9 11:36:50

http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_638459MDOHOJ.JPG
SDRAM部分原理图 (原文件名:SDRAM_YLT.JPG)

所有数据总线和地址总线加有27欧姆匹配电阻,通过示波器观察,信号的振铃很小,比能正常工作的DEMO板的情况还要好一些

alan8918 发表于 2011-5-9 11:43:05

不好意思,测试代码for循环部分i的初值应该是0,可能是测试的改成1,导致前面几个数据连续错误,实际上是数据间隔错误。我们考虑可能是地址码和时钟等信号错位,但是通过示波器观察没有发现异常

leifeng 发表于 2011-5-9 12:06:59

你把两个10uF的电容改小测试一下,另外,在sam-ba 2.10中,始能sdram,然后在sdram对应的地址中,修改sdram看看是什么反映?或者发送文件到sdram,校验,看看是什么情况?

haeha 发表于 2011-5-9 12:11:26

再焊一块试试,排除焊接问题

alan8918 发表于 2011-5-9 15:28:13

测过几块了,校验SDRAM中的数据是间隔性的错误

haeha 发表于 2011-5-9 16:03:33

时序问题概率问题很小啊,133M速度不算快,坛上上次有人说没做等长,长短差6cm都没问题。只要你原理图没问题,布线不是太离谱肯定能跑起来。
看看几路电压是否正常,查下9g20配置部分的原理图,比如TST脚有没有接地

alan8918 发表于 2011-5-9 22:35:35

让人郁闷的是没有查出原理性的错误,时序通过600M的四通道示波器仔细对过,并且和能正常工作的DEMO板比较过,应该说信号的情况都比较好。而且不是完全不能工作,测试代码通过JTAG下载到内部SRAM可以正常运行,运行在SRAM内的测试代码对SDRAM进行读写校验时数据出现间隔性的错误,当对SDRAM采用32位字间隔性测试(地址每次加2),测试数据是正确的,也就是是说SDRAM不能连续读写,连续读写时就会隔一个字出错,而且出错的数据不是乱码,是上一个正确数据的高16位和下一个正确数据低16位的组合。这样考虑是最低位地址线A2时序有问题,但是仔细查看和对比了A2与SDWE,SDCK,CAS#的时序关系,没有发现异常,实在是有点郁闷

haeha 发表于 2011-5-9 22:57:58

你的原理图是按照官方的来画的吗,几层板,sdram是用MT的片子吗?
再不行的话去掉一片,用16bit位宽来跑跑看

283868130 发表于 2011-5-9 23:44:29

没调试过SDram,围观
不过计划用FPGA来驱动这玩意,毕竟比SRAM便宜太多了

llf021421 发表于 2011-5-10 01:26:10

建议写一个小的测试程序放入sram中运行,分别拉高拉低sdram引脚,用示波器观察sdram引脚,这样可以排除sdram引脚虚焊的问题
一般BGA芯片,都可以用sram测试所有的引脚

alan8918 发表于 2011-5-10 09:20:35

非常感谢大家,测试过,每个脚上的信号从示波器上看都是OK的,现在处于郁闷期

leifeng 发表于 2011-5-10 17:05:14

那可能是sdram初始化的原因或者sdram损坏,实在找不到原因可以和你的供应商联系

wenming 发表于 2011-5-11 09:04:53

很明显的是硬件问题,如果是原理图设计没有错误的话,问题就出在BGA的焊接上.有些焊接不是连接不上,
是很隐秘的虚焊,低速测试的时候没有问题,上了高速,就完蛋了.还有,PCB的设计,也可能造成问题.
顺便说一下,我们帮几十个客户设计过9G20的案子.

alan8918 发表于 2011-5-11 14:18:17

感谢大家的建议,也参照大家的意见逐一测试过,没有找到原因。非常感谢老王兄的意见,BGA的焊接情况我们没有办法考证,不过前几次其他几种BGA小批量样板均是同一家加工企业给我们焊接的,几乎没有发现BGA的焊接问题,当然也不排除这次的BGA焊接有问题。到目前为止还没有发现原理性的错误,正在重新布局布线,原本采用4层现在改为6层。SDRAM也不是第一次用了,以前都还是比较顺利的,不过9G20倒是第一次用,没有找到原因就开始下一版,实在是有点心虚。

apad 发表于 2011-5-11 14:24:43

原理图都不传个清晰点的,这种烂图还怕抄啊

apad 发表于 2011-5-11 14:25:53

知道怎么测内存的时序吗,那是用眼图分析的

haeha 发表于 2011-5-11 16:30:14

你原来四层就能布下?我觉得9g20这么小的球距,四层板走两层信号线的话,sdram那些脚想完全扇出都很难阿。
我当时布线的时候,参考了老王的PCB,发现用了三层信号层。自己水平还不够,用了4层信号层才布下

hzd52044 发表于 2011-6-16 09:36:05

我做的9260的 4层板,刚刚完毕,看看BGA方面有没有可以取经的地方,也是参考了老王的板子

好人啊!   可能我们板子东西比较少吧,4层能布下,不知道运行怎么样

jinyi7016 发表于 2015-3-10 16:15:50

alan8918 发表于 2011-5-9 11:36
SDRAM部分原理图 (原文件名:SDRAM_YLT.JPG)

所有数据总线和地址总线加有27欧姆匹配电阻,通过示波器观察 ...

A10为什么接SDA10,而不是A10
这个SDA10是什么引脚
页: [1]
查看完整版本: 请教一下坛里的哪位搞过9G20,最近调试SDRAM出了点问题,目前为止没有解决?