搜索
bottom↓
回复: 89

透露某些 USB-Blaster 在NIOS调试的时候报警告的秘密,附制作USB-Blaster的辛酸历程

[复制链接]

出0入0汤圆

发表于 2010-10-9 13:52:51 | 显示全部楼层 |阅读模式
nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0
nios2-terminal: Warning: The JTAG cable you are using is not supported for Nios
nios2-terminal: II systems.  You may experience intermittent JTAG communication
nios2-terminal: failures with this cable.  Please use a USB Blaster revision B
nios2-terminal: cable or another supported cable.

上面这个警告,相信很多人都见到过,呵呵。我之前也一直不知道具体的原因。

最先在网上看到USB-Blaster的制作资料,就是在ourdev上面,里面CPLD的代码都有,于是照着做,结果是失败,坛子里有的人做成功了,但是失败的也不在少数。我搞了一个多月,也没搞定。

后来又看到了用68013做的USB-Blaster的资料,那时候的还只有JTAG模式。照这个资料做,成功了,后来又根据CPLD的代码加入了AS、PS模式。然后才发现,其实CPLD的代码时序是有问题的,即TCK与其他信号在同一个时钟变化,输出去之后因为路径延迟的差别,肯定会有先有后,以至于有人成功有人失败,而我向来运气不好,所以也就失败了,呵呵。不过也好,让我有机会发现这个bug,后来增加了一个状态,让TCK先变化,再是其他信号,然后就一切正常了。

调试NIOS的时候,用68013做的版本就出现上面这个警告了,百思不得其解,因为也可以正常调试,只是开始有这个警告而已。于是上网找,USB-Blaster,A、B、C各版有什么差别。最后的结果就是,没什么太大差别,只是换了换排线插头,C版就加了一个74LV244。仍然是一头雾水。

这样糊涂了很久,又一次,公司坏了一片Cyclone III的芯片,用原装的RevC下载线都无法识别了。于是这片尸体被我顺回了家,呵呵。回去我用68013做的USB-Blaster,竟然把它识别出来了,竟然还可以用!这个时候,我又想起了NIOS问题,怀疑是时序冗余不够。所以把慢速的USB-Blaster搞去试了一下,还是不行,然后再代码里面加了无数个NOP,增加时序冗余,还是不行!

论坛上有人说,这个是ALTERA公司专门为了打击盗版而做的手脚,不是原装的就让你不爽。这个说法似乎很有道理,但是不能明确具体是什么手脚,呵呵。

后来发现在68013的代码中有一段是注释掉的,是在响应一个Vender Request,在读取EEPROM里面的东西,这里作者(后来知道是引入者)注释掉了,并给了说明,说直接回应00,下载线一样可以用,所以没有模拟EEPROM的内容读取。将这段改回德国人的原版,EEPROM的内容直接把REV.B的写进去,后面再试,就不出现警告了!

总结下来,其实就是Quartus读取了EEPROM的内容,从这里了解了下载线的版本,如果不是REV.B或者更新的版本,就会提示这个警告,因为A版时序冗余是不够的。而用68013模拟FT245BL的版本,因为之前去掉了EEPROM的内容,所以...

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2010-10-9 13:58:43 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2010-10-9 13:59:09 | 显示全部楼层
哦.原版在哪里呢

出0入0汤圆

发表于 2010-10-9 14:57:06 | 显示全部楼层
LZ精神可嘉……

出0入0汤圆

发表于 2010-10-9 15:40:03 | 显示全部楼层
探索技术,赞!

出0入0汤圆

发表于 2010-10-9 15:41:35 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-10-9 15:48:58 | 显示全部楼层
楼主应该很有成就感,没有什么可辛酸的啊

出0入0汤圆

发表于 2010-10-9 15:57:40 | 显示全部楼层
NIOS调试,MARK

出0入0汤圆

发表于 2010-10-9 15:59:25 | 显示全部楼层
学习.原来看到这段代码就疑惑过.....不过我只是调CPLD.所以没出这个警告.

出0入0汤圆

发表于 2010-10-9 19:14:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-9 19:30:38 | 显示全部楼层
Y(^_^)Y

出0入0汤圆

发表于 2010-10-9 19:35:40 | 显示全部楼层
精神可嘉!!顶你一下

出0入0汤圆

发表于 2010-10-9 21:29:29 | 显示全部楼层
这个要顶一下。

出0入0汤圆

 楼主| 发表于 2010-10-9 22:13:46 | 显示全部楼层
电子爱好者嘛,过程中总有不少的成就感和挫折感,这是电子的魅力

出0入0汤圆

发表于 2010-10-9 22:14:57 | 显示全部楼层
应该顶!!!!

出0入0汤圆

发表于 2010-10-9 22:19:13 | 显示全部楼层

出0入0汤圆

发表于 2010-10-10 07:46:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-10 21:23:57 | 显示全部楼层
lznb,顶

出0入25汤圆

发表于 2010-10-10 22:25:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-11 16:57:50 | 显示全部楼层
http://fpga4u.epfl.ch/images/4/45/FX2_USB_Blaster.pdf
楼上的eeprom的这个有

出0入0汤圆

发表于 2010-10-15 16:11:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-17 10:30:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-31 07:19:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-31 09:34:26 | 显示全部楼层
mark

出10入10汤圆

发表于 2010-10-31 10:58:49 | 显示全部楼层
好!我们就需要这样的究根刨底的精神,这样技术才能不断提高。

出0入0汤圆

发表于 2010-11-2 13:32:03 | 显示全部楼层
楼主强悍啊。这个都能发现。真是下了一番功夫的。

出0入0汤圆

发表于 2010-11-23 09:46:02 | 显示全部楼层
mark

出50入0汤圆

发表于 2010-11-23 09:53:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-23 13:07:47 | 显示全部楼层
楼主应该很有成就感,没有什么可辛酸的啊

出0入0汤圆

发表于 2010-11-23 13:39:48 | 显示全部楼层
很不错啊,刻苦专研,发现并解决了问题。

出0入0汤圆

发表于 2010-11-23 15:01:59 | 显示全部楼层
标记

出0入0汤圆

发表于 2010-11-23 15:25:57 | 显示全部楼层
很不错呵呵

出0入0汤圆

发表于 2010-11-23 16:17:40 | 显示全部楼层
不错,mark一个。。

出0入0汤圆

发表于 2010-11-23 20:31:54 | 显示全部楼层
支持楼主

出0入0汤圆

发表于 2010-11-24 20:26:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-25 16:16:06 | 显示全部楼层
坛子里有USB-Blaster的制作资料?怎么没见过恁?

出0入0汤圆

发表于 2010-11-25 17:28:14 | 显示全部楼层
lz很有钻研精神啊,肯定

出0入0汤圆

发表于 2010-11-25 18:58:21 | 显示全部楼层
我现在用的就是从楼主那里买的,楼主真厉害

出0入24汤圆

发表于 2010-12-22 10:14:11 | 显示全部楼层
Mark!
学习

出0入0汤圆

发表于 2010-12-23 21:16:46 | 显示全部楼层
楼主这个问题我也遇到过的,两三天才解决想起来真的很费神,不过现在想起来nios核学的没什么用,我先在搞ARM去了。

出0入0汤圆

发表于 2011-2-21 15:19:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-21 18:27:40 | 显示全部楼层
LZ精神可嘉……

出0入0汤圆

发表于 2011-4-7 11:07:31 | 显示全部楼层
--------让我有机会发现这个bug,后来增加了一个状态,让TCK先变化,再是其他信号,然后就一切正常了。

楼主是否能提供代码参考下 以免后面的同志走弯路!!谢谢

出0入0汤圆

 楼主| 发表于 2011-4-8 10:46:30 | 显示全部楼层
源代码论坛里很多,问题点在下面这个地方:

IF state = bits_set_pins_from_data THEN
        B_TCK <= ioshifter(0);
        B_TMS <= ioshifter(1);
        B_NCE <= ioshifter(2);
        B_NCS <= ioshifter(3);
        B_TDI <= ioshifter(4);
        B_OE  <= ioshifter(5);
        ioshifter <= "000000" & B_ASDO & B_TDO;
END IF;

这里TCK和TMS,TDI是同时变化的,如果这几个信号的延迟路径相同,是最大建立时间的设计
但是不容易控制的是,假如TCK的路径延迟略大于TDI和TMS,此时TCK发生变化的话,极有可能把一个不确定的值写入到JTAG链路
所以我在bits_set_pins_from_data状态之前加入了一个set_TCK_from_data
让TCK先一个时钟周期变化,这样就避免了不确定状态.
当然如果走极端,TCK的路径延迟比其他信号大一个时钟周期以上,就还是会出问题.

出0入0汤圆

发表于 2011-4-20 09:52:51 | 显示全部楼层
楼主强大呀

出0入0汤圆

发表于 2011-4-20 13:03:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-20 14:39:33 | 显示全部楼层
很强悍

出0入0汤圆

发表于 2011-4-20 15:02:23 | 显示全部楼层
马克之

出0入0汤圆

发表于 2011-4-20 16:26:23 | 显示全部楼层
经常遇到这样的问题,高手啊。

出0入0汤圆

发表于 2011-4-26 08:54:09 | 显示全部楼层
“而我向来运气不好,所以也就失败了”

这个跟我很像。。。。

出0入0汤圆

发表于 2011-5-16 16:59:44 | 显示全部楼层
精神可嘉!!  mark

出0入0汤圆

发表于 2011-8-11 09:27:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-11 09:58:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-12 12:44:45 | 显示全部楼层
马克思........

出0入0汤圆

发表于 2011-12-14 13:28:15 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2011-12-15 21:39:49 | 显示全部楼层
小白求楼主改过的那段代码。谢谢

出0入0汤圆

发表于 2011-12-15 21:44:25 | 显示全部楼层
mark!!!

出0入4汤圆

发表于 2011-12-15 21:59:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-16 10:16:05 | 显示全部楼层
谢谢分享,项一下!!!

出0入0汤圆

发表于 2011-12-16 19:26:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-16 22:55:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-16 23:08:49 | 显示全部楼层
经验之谈

出0入0汤圆

发表于 2012-2-27 22:10:27 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-28 00:23:05 | 显示全部楼层
标记

出0入0汤圆

发表于 2012-2-28 00:23:24 | 显示全部楼层
标记

出0入0汤圆

发表于 2012-2-28 08:31:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-28 09:27:28 | 显示全部楼层
mark,支持

出0入0汤圆

发表于 2012-2-28 11:13:55 | 显示全部楼层
mark,支持

出0入0汤圆

发表于 2012-2-29 13:49:01 | 显示全部楼层
记号

出0入0汤圆

发表于 2012-2-29 19:08:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-11 00:07:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-11 14:26:22 | 显示全部楼层
赞钻研探索

出0入0汤圆

发表于 2012-8-30 19:33:00 | 显示全部楼层
顶楼主一个。。。。

出0入0汤圆

发表于 2012-9-1 10:37:22 | 显示全部楼层
楼主的精神值得学习啊

出0入0汤圆

发表于 2012-9-1 12:46:24 | 显示全部楼层
坛子里的附有CPLD源码的UB我也山寨了一个,用洞洞板搭的,信号线的时序由于洞洞板走线的原因没得保证,将原理图上CPLD的时钟降到6Mhz 时工作正常,原来要求是24Mhz的。记得刷FT245BL的EEP时 也是要改模板文件的,否则会报找不到芯片的错误。

出0入0汤圆

发表于 2012-9-17 19:26:37 | 显示全部楼层
这个必须顶

出0入0汤圆

发表于 2012-9-18 10:26:46 | 显示全部楼层
向楼主学习!

出0入0汤圆

发表于 2013-2-18 14:09:20 | 显示全部楼层
xiaobenyi 发表于 2011-4-8 10:46
源代码论坛里很多,问题点在下面这个地方:

IF state = bits_set_pins_from_data THEN

楼主能否指点一下,到底怎么改呢?
代码注释说:“The host will send us 64 times "0" to move……”,如果改成5bit,则可能软不兼容,按这个注释的意思。
现在用了4bit的状态机,16个状态全部用了。

出0入0汤圆

 楼主| 发表于 2013-2-18 22:14:39 | 显示全部楼层
陈年老帖了,还有同学在关注,还有人想看怎么改的,看附件吧
附件上除了改掉TCK这个问题,还加了时钟的部分,利用内部的反相器,外接一个电阻和无源晶振,做了个振荡器,免得用很贵的有源晶振了,另外做了个分频器,分出了6MHz给FT245,就不用两个晶振了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-2-18 22:15:19 | 显示全部楼层
xiangxiadage 发表于 2013-2-18 14:09
楼主能否指点一下,到底怎么改呢?
代码注释说:“The host will send us 64 times "0" to move……”, ...

16个状态全用了,你可以把状态机增加一位啊

出0入0汤圆

发表于 2013-2-19 18:18:13 | 显示全部楼层
xiaobenyi 发表于 2013-2-18 22:15
16个状态全用了,你可以把状态机增加一位啊

谢谢!
这个我是明白,就是看到那段注释说,host发送64个时钟。如果增加状态,则就不止64个时钟了。

出0入0汤圆

 楼主| 发表于 2013-2-19 22:31:33 | 显示全部楼层
xiangxiadage 发表于 2013-2-19 18:18
谢谢!
这个我是明白,就是看到那段注释说,host发送64个时钟。如果增加状态,则就不止64个时钟了。

你好好学学硬件吧.跟这个没啥关系

出0入0汤圆

发表于 2013-2-20 09:29:18 | 显示全部楼层
mark,thanks for your share.

出0入0汤圆

发表于 2013-2-20 09:42:51 来自手机 | 显示全部楼层
谢谢分享!!

出0入0汤圆

发表于 2013-2-20 13:38:33 来自手机 | 显示全部楼层
mark。。。。

出0入0汤圆

发表于 2013-2-22 17:17:05 | 显示全部楼层
楼主强悍,肯定

出0入0汤圆

发表于 2013-4-21 19:16:05 | 显示全部楼层
USB-BLASTER制作,收藏
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 12:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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