打印

FPGA引脚输出电平过低

[复制链接]
6416|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwq030736|  楼主 | 2011-6-20 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用FPGA控制CY7C68013进行USB通信的时候,发现在往USB芯片写数据的时候,PC端收到的数据全为0.我固定写"FF00"进行测试用万用表测量的时候发现,逻辑都是对的,但是FD[15..0]这几个数据脚逻辑电平过低,逻辑为1的引脚电压只有1.5V。我管脚配置设置的是3.3VLVTTL,照道理应该VOH最低也有2.4V才对。不知道大家有没有碰到过这种情况?USB芯片的FD引脚是直接跟FPGA引脚相连的,中间没有接东西。
     希望有经验的高手能帮忙分析下到底是什么原因在下感激不尽啊~~开始我怀疑是由于频率很高,USB芯片管脚存在输入电容,驱动电流过小导致电压上升时间太长造成的。后来通过示波器观察发现数据信号是非常平整的方波,上升沿和下降沿都很直,看起来并不像是上升时间太长造成的。
    折腾了几天实在是黔驴技穷走投无路了~望高手指教啊:Q

相关帖子

沙发
mmax| | 2011-6-20 21:46 | 只看该作者
LZ用万用表来测总线?

使用特权

评论回复
板凳
lwq030736|  楼主 | 2011-6-20 22:00 | 只看该作者
我让他固定输出一个数值的时候是用万用表测的,变化的数据是用示波器看的,固定的我也用示波器看过,也是一条直线。

使用特权

评论回复
地板
mmax| | 2011-6-20 22:09 | 只看该作者
会不会FPGA输出给USB芯片。读写时序没有控制好,两个IC都输出?
没用过CY7C68013,它的总线是输入吗?

还有,可以就翘一个管脚,然后量FPGA的输出,是否3.3V。若是,就是我说的情况。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lwq030736 + 1
5
dqyubsh| | 2011-6-20 22:12 | 只看该作者
本帖最后由 dqyubsh 于 2011-6-20 22:39 编辑

个人理解,数据总线是三态的,只有在读写有效的时候你才可能量到正确的电平,其它时间,总线无效,量不到有意义的数据。

比如,你选定一个外设,控制总线/CS、/WR或者/RD有效时,数据线才有效,而且仅仅在这一时刻有效,控制总线过了读写的瞬时,数据总线呈现高阻,Z态,让给别的外设操作了。你在这些时候量数据总线,当然是毫无意义的。

出错最多的时候,就是没有正确地选中外设,没有正确地设定数据总线的时态。按照这个思路,68013是死的,一个外设芯片而已,那么,最大的可能是你的FPGA程序写的有问题。

我想知道,你做68013+FPGA,参照cypress的例子了没有,是不是闭门造车。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lwq030736 + 1
6
lwq030736|  楼主 | 2011-6-20 22:34 | 只看该作者
会不会FPGA输出给USB芯片。读写时序没有控制好,两个IC都输出?
没用过CY7C68013,它的总线是输入吗?

还有,可以就翘一个管脚,然后量FPGA的输出,是否3.3V。若是,就是我说的情况。 ...
mmax 发表于 2011-6-20 22:09

68013的数据口是个双向口,由sloe控制输出,SLWR控制输入。其他脚是正常的3.3V的输出,数据脚只有1.5V,会不会是被其他的地方拉低了?

使用特权

评论回复
7
lwq030736|  楼主 | 2011-6-20 22:36 | 只看该作者
个人理解,数据总线是三态的,只有在读写有效的时候你才可能量到正确的电平,其它时间,总线无效,量不到有意义的数据。

比如,你选定一个外设,/CS、/WR或者/RD有效时,数据线才有效,而且仅仅在这一时刻有效,控 ...
dqyubsh 发表于 2011-6-20 22:12

有可能。。。但是我没有手段来证实是否是这个原因。。。。只能通过仿真来观察时序,但是从时序上看又看不出什么问题。。。。我是参考赛普拉斯给的例程改的

使用特权

评论回复
8
mmax| | 2011-6-20 22:37 | 只看该作者
你总线上还挂其他设备了吗?

使用特权

评论回复
9
dqyubsh| | 2011-6-20 23:12 | 只看该作者
仿真不会解决数据总线的问题,我做CPLD译码的时候就没有仿真出子午卯酉,索性不用,直接写程序就搞定了。

68013+FPGA,要用三个月时间啃资料,除非你很幸运地借助CYPRESS的某篇**解决了问题。这篇**就是AN61345。

68013提供了GPIF master和slave fifo两种形式连接FPGA,都有完整的例子。它对USB2.0的支持是最好的,不断更新资料,更新驱动,可以解决你所有的疑问。这一点确实值得称道。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lwq030736 + 1
10
lwq030736|  楼主 | 2011-6-21 09:10 | 只看该作者
你总线上还挂其他设备了吗?
mmax 发表于 2011-6-20 22:37

没有,就接FPGA的引脚直接跟USB的FD15-0连了,没其他东西了。

使用特权

评论回复
11
lwq030736|  楼主 | 2011-6-21 09:14 | 只看该作者
仿真不会解决数据总线的问题,我做CPLD译码的时候就没有仿真出子午卯酉,索性不用,直接写程序就搞定了。

68013+FPGA,要用三个月时间啃资料,除非你很幸运地借助CYPRESS的某篇**解决了问题。这篇**就是AN6134 ...
dqyubsh 发表于 2011-6-20 23:12

      我是工作在SLAVE FIFO 模式下的。今天我把FPGA管脚配置统统改成默认的2.5V,又都好了,速度还有43MB/S。。。。:L虽然配置是2.5V但是实际上我连的IOBANK电压还是3.3V的。跟这会有什么关系吗?实在想不通了。
      不管怎么说总算能用了。目前碰到的新问题是我将模块加到NIOS II 系统里面之后又不行了。PC往下传是可以的。不知道是不是AVALON端口的信号配置有问题

使用特权

评论回复
12
lwq030736|  楼主 | 2011-6-21 10:57 | 只看该作者
问题已经解决了,原来是AVALON从端口这边endofpacket这个信号没处理好,在chipsilect片选信号使能的时候,write和read这两个信号还没有过来,会有一个延迟。我在判断write和read这两个信号的时候如果这两个信号都为0就将endofpacket置为1和waitrequest置为0,总线收到这两个信号后,就认为传输已经完成,然后将chipselect和其他使能信号都置为无效。因此USB这个控制核基本上一直没有工作。。。。。。。
     但是原来那个FPGA输出电压过低的问题还是不知道是怎么回事,为什么配置成3.3V输出就只有1.5V,都改成默认的2.5V就好了呢?

使用特权

评论回复
13
lwq030736|  楼主 | 2011-6-21 19:46 | 只看该作者
崩溃了。。。。上传好了,下传又不行了

使用特权

评论回复
14
lwq030736|  楼主 | 2011-6-25 10:30 | 只看该作者
大功告成!现在用NIOS控制读写都正常了~非常感谢大家的热心帮助,谢谢。

使用特权

评论回复
15
hzwhg001| | 2012-11-8 17:27 | 只看该作者
路过,学到不少,:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

651

帖子

2

粉丝