Board logo

标题: 急问,版上有做过Nios开发用过SDRAM的吗? [打印本页]

作者: cad4201    时间: 2007-1-11 17:58     标题: 急问,版上有做过Nios开发用过SDRAM的吗?

小弟做课题,在做一个NiosII的开发板,调试SDRAM(IS42S16400)的时候出现问题:
跑LED循环点亮的小程序(200Bytes)可以下载验证通过运行,
但是跑几十K的程序时可以下载,验证错误不能运行。
本想加上SRAM或者On-Chip Memory对SDRAM进行读写测试其是否正确,
但是加上之后原来能运行调试程序的SRAM或者On-Chip Memory都验证错误
不能进行调试了。
SDRAM器件是照着DE2开发板选的,其控制器的时序参数设置也是沿用,应该没有问题。
SDRAM的时钟的PLL相移约设为-61度,大多数是这么设的,不知具体应如何设置?
以为是SDRAM器件的问题,但是换一块芯片,还是同样的问题。
现在怀疑是从SDRAM下面过的JTAG调试线对其的影响,但也不能确定。

哪位调试过有经验的大虾能给指条路或六个联系方式能交流一下?
万分感谢!

作者: cad4201    时间: 2007-1-12 11:18

自己顶一下,希望高手帮忙!
作者: caopengly    时间: 2007-1-12 12:02

cad4201,

你好,我以前也遇到过这种问题,你的sdram校验通不过有可能是

1。clk不对,在FPGA中有专业的pllout口资源。用它作输出clk波形很好,建议用示波器比较一下,这很重要哦。

2。clk在pll中有e口作外部输出,用c口没有e口输出好

3。在晶振输出接个小电阻可以很好滤波。

4。相移-20 到-75都可以,开始你可以将频率设小一些,这样相移因素就可以排除。

good luck

caopengly


作者: cad4201    时间: 2007-1-12 14:48

caopengly,

     非常感谢你的解答!

      SDRAM的时钟输入我用的就是PLLout口,而且示波器看过它们波形,有固定的相移;在我的Device(EP1C12)里很奇怪,e口的PLL不能用,在Fitting的时候会报错(SDRAM的时钟输出是PLLOUT2_P),所以一直没用e口;所以不知怎么解决好了?

      还有一个问题是调LED循环点亮程序时,会出现:

nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0
nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)

nios2-terminal: exiting due to I/O error communicating with target

      就是说出现I/O通信的错误!不知这是什么原因呢?    


作者: caopengly    时间: 2007-1-12 18:03

cad4201,

 事实上pll的e口就是对外输出的意思,你可以摸索一下,在pll的配置中。我曾经对比过c口的输出波形就是没有e口hao,而且我以前verify通不过就是这个原因。

debug时有通讯错误也是常有的,但还是可以调的。而且可以watch变量的值。如果不能watch,那就有问题了。

caopengly

[此贴子已经被作者于2007-1-12 18:03:21编辑过]


作者: cad4201    时间: 2007-1-13 20:39

caopengly,

    有可能真的是PLL的e口输出的问题吗?我的SDRAM的Clock引脚连接到了EP1C12的144引脚(PLLout1_p),但是不管如何配置PLL的参数除了EP1C12的38引脚(PLLout0_P)以外其他引脚均不能作为PLL的e口输出引脚?!

   在使用PLL的C口作为SDRAM的时钟输入口的情况下,我在片上ram(Onchip-Memory)中写了很小的(不超过1K的)程序对SDRAM的数据线、地址线进行读写测试,发现SDRAM完全是可以进行读写使用的!是不是可以说明SDRAM的时钟可用,且物理连接也无问题呢?

   而且我发现绝大多数情况下,可以进行下载验证通过的小程序(不超过1KBtyes),调试时总会出现I/O通信错误:

nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0
nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)

nios2-terminal: exiting due to I/O error communicating with target

   而对于大程序进行调试时,总出现下面的验证错误:

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Processor is already paused
Reading System ID at address 0x00005048: verified
Initializing CPU cache (if present)
OK

Downloading 01000000 ( 0%)
Downloaded 58KB in 0.7s (82.8KB/s)

Verifying 01000000 ( 0%)
Verify failed between address 0x1000000 and 0x100E4BB
Leaving target processor paused

   是不是JTAG口的问题呢?下载线已经用的是USB-Blaster了。还有什么其他可以考虑失败因素呢?期待解答,谢谢!

    cad4201


作者: sxtylailai    时间: 2007-1-18 15:23

小弟看着高手的交流真的学到了很多东西.
作者: caopengly    时间: 2007-1-18 17:19

cad4201

   不好意思,前几天有点事。现在才看到,如果你着急可以给我发个论坛内的message

   你做了测试程序,这是很好的测试方法。一下就能说明硬件问题,而且对写驱动也有好处。

能下载小程序说明不是连接的问题,有可能是sdram里的bank有部分问题。

你可以增加测试程序,比如循环写读数。或者换块sdram试试。

goodluck

caopengly

[此贴子已经被作者于2007-1-18 17:20:37编辑过]


作者: kzw    时间: 2007-1-18 19:30

你的程序稍微大点的在sram中运行的情况怎么样,正常否。先确保onchip和sram没有问题再来解决sdram。
作者: tangsh_02    时间: 2007-4-4 14:58

走过,路过,学习中~~
作者: dadaowai    时间: 2007-4-17 14:50

相移-20 到-75都可以,这一点刚学到!
作者: tianykun    时间: 2007-4-25 22:01

QUOTE:
以下是引用caopengly在2007-1-12 12:02:00的发言:

cad4201,

你好,我以前也遇到过这种问题,你的sdram校验通不过有可能是

1。clk不对,在FPGA中有专业的pllout口资源。用它作输出clk波形很好,建议用示波器比较一下,这很重要哦。

2。clk在pll中有e口作外部输出,用c口没有e口输出好

3。在晶振输出接个小电阻可以很好滤波。

4。相移-20 到-75都可以,开始你可以将频率设小一些,这样相移因素就可以排除。

good luck

caopengly

用PLL,是否就要用e口输出呢?觉的可以用C1口啊..我曾经用C0口,但是出来的结构是错误.

就是内存问题...


作者: tianykun    时间: 2007-4-25 22:04

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Processor is already paused
Reading System ID at address 0x00005048: verified
Initializing CPU cache (if present)
OK

Downloading 01000000 ( 0%)
Downloaded 58KB in 0.7s (82.8KB/s)

Verifying 01000000 ( 0%)
Verify failed between address 0x1000000 and 0x100E4BB
Leaving target processor paused

还是内存问题.

你应该是移相没搞好啊.

移相要看你的板子,给你的板子有关....






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0