orbita
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:2701回复:3

ISP1582应用的一点体会,愿与大家分享

楼主#
更多 发布于:2008-04-24 14:49
        前段时间一直专注于USB从机ISP1582的调试,看了说明书后,感觉和ISP1581比较类似,认为程序只要作点修改就可以兼容,无耐事与愿违,无论从硬件和软件上,在调试时都发现许多的问题,现在在此作一个简单的说明,希望各位朋友以后在用这款芯片时,少走些弯路,同时也欢迎各位朋友的指正:

1)硬件方面:
    相信许多朋友都会和我一样,在看硬件手册的时序图时,只是关注是否是Intel的8080模式,而没有关注里面一些关键信号的时序,这让我在硬件设计时吃了点小亏,大家在用这款芯片时,时序图里特别强调了一个时间参数,那就是OE要比CS延时至少2个ns,否则芯片工作会不正常,表现为你在读写寄存器时,全部都正常,但是如果你想读fifo时,会发现读的数据都是一样的,感觉fifo指针是不会自动增加的,后来咨询了周立功的大虾后,才知道这个问题,所以如果大家在用通用的CPU来接ISP1582时,请注意OE信号的处理,可以在外面加些逻辑电路比如7404芯片连续反两次,产生一些延时,可以解决这个问题,如果是用SOC作为CPU的朋友,可以在FPGA里,使OE延时一个时钟也行,这个这个问题就解决啦~~。
    硬件方面第二个问题就是这个芯片的封装比较特别,是HVQN系列,焊接时,不容易手工焊,因为在做硬件设计时,没有见到实物,所以不知道它长什么样,等实物回来时,发现要做钢网,后来老板不舍得这个钱,我们就手工焊,找个焊接高手来焊,有时也会出现短路的现象,因此,大家在用这个芯片时,最好先知道它的实物,衡量一下这个封装是否合适,再用它。
   硬件的第三个问题就是在使用时发现这个芯片的ESD方面有点弱,表现为有些芯片在使用过程中,有时会莫明其妙的就坏了,用BUS HOUND看不到数据,后来在VBUS/D+/D-上加了ESD保护芯片,情况就得到比较好的改善,ESD芯片请选择低容值的。

2)软件方面:
    在软件调试时,请大家要注意使用芯片里的那个解锁寄存器,我的程序在进入中断的时
候,如果不写这个解锁寄存器,有时程序运行会不正常,因此,推荐大家在进入中断后,先操作这个寄存器;然后另外一个问题就是注意读写fifo时,要注意判断奇偶字节,不要读错了,多读了,或少读了,也许都会出现一些你意想不到的错误,希望大家在编写程序时,要特别的注意;另外,中断程序内容尽量少,能出中断后处理的尽量在中断外处理,表现为有些数据包处理时间过长,导致PC机发包后出现timeout现象,也就是从机没有给应答,不过这种现象可以通过加快CPU的处理速度加以解决。

    上述的一些意见是我在调试ISP1582时遇到后提出的,希望能给大家一点点帮助,同时也希望大家在使用该芯片时,把遇到的问题都提出来,供大家参考,让大家都少走些弯路。
                                                                                                  Orbita AKK
                                                                                                                  email: liaohua_3001@hotmail.com
imazy
驱动牛犊
驱动牛犊
  • 注册日期2006-11-18
  • 最后登录2010-01-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望26点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-05-04 21:59
请问你用的什么ESD保护芯片?
能告知型号吗?
还不知道哪款能芯片用于HS USB的ESD保护:)
orbita
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-05-13 10:54
srv05-4
e_zhui
驱动牛犊
驱动牛犊
  • 注册日期2002-08-10
  • 最后登录2012-07-30
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望96点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-09-24 18:21
我也在调试ISP1582这颗芯片,楼主的问题我这都碰到了,尤其是那个2ns的问题,差点被搞死,以前也做过1581,感觉还比较顺利,没想换成1582这么难搞。
 
调到现在还有一个问题,就是有时候我在写一个IN端点(比如EP2 IN)的时候,会收不到ACK的中断,结果程序就死在那里,搞不清是什么问题。有点像是信号质量比较差的问题,因为我现在是把USB线剪短直接焊在板上的,要是用长点的USB线根本不能工作。而且发现这颗芯片对异步读写的时序很敏感,稍微改一下CS的有效时间,寄存器就有可能读错,所以我又有点怀疑是不是写IN端点的时候压根就没有设置对INDEX寄存器,晕死

总之是问题N多,不知道仁兄有没有什么建议?感激不尽!
游客

返回顶部