hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4166回复:21

cpld有关问题

楼主#
更多 发布于:2004-12-03 09:31
我把程序通过电缆下载到cpld中后,拿示波器测cpld各管脚的信号时,把cpld给烧了。但不知道是什么原因引起的,怎么能检查出出错原由?是程序的问题还是其它原因?
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-03 20:41
你怎么能判断是用示波器测量时烧坏的呢? 也许你的CPLD内容与外围电路冲突, 下载完之后就电路冲突可能把器件损坏。 我们这儿就出现过这种情况,小伙子把两片CPLD顺序搞反了,结果把其中一片CPLD烧了。
示波器测量烧坏片子的可能性比较小。
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-06 10:15
后来我检查,我在maxplus里对cpld的管脚分配有一些错误,但都是一些全局信号的错误,和烧坏cpld的原因有关吗?就是在编译时,总有GLOBAL primitive on node '/RD' feeds logic-non-global signal usage may result的警告,而且我把全局时钟引脚分配给时钟输入,也有警告,我把全局选项取消后再编译,这些警告就没了,这样做,在往cpld中灌程序时有影响吗?
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-07 11:19
内部分配的错误无论如何都不会烧片子的。关键是和外部的电路有没有冲突,比如你定义某个管脚输出逻辑低电平,外部却接了电源直接上拉,或者你总线输出高电平,而外部总线是低电平,就有可能烧片子。
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-07 16:39
谢谢你的回答,但我检查了电路图,好像不存在这个问题
现在我们老师让我把这个已经烧坏了的cpld的各个管脚对地和对电源的电阻分别测出来,在把另一个好的cpld的各个管脚对地和对电源的电阻分别测出来,把两者的数据进行比较以找出原因。我现在已经测出来了,但我不知道,怎么利用这些数据找出错的原因
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-07 19:02
    这样量电阻顶多只能确认芯片是否坏了,怎么能找出原因呢? 偶看你们老师该下岗了(开玩笑了,你们老师一定是个老教授吧)。

    现在,你要做的是把坏片子吹下来,重新焊一块, 如果能连续两次下载(中间隔一会儿),就能说明不是CPLD管脚与外围电路冲突了。
    如果一定要怀疑是量信号时烧的片子,建议你查一下示波器的三相插头是否真正接地了。
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-08 09:15
那个老师的确年龄很大。要是重新旱一块的话,如果是外围电路的问题,那岂不又要烧坏一块cpld,老师肯定会骂我的,我不敢这么做。有没有什么办法能在减小再次烧坏的情况下检查出错误原因?这几天一直在为这个问题郁闷。
我这块板子用的是160脚的,我们教研室有一块己经做好了的板子,用的是100脚的cpld,两块板子的功能有相似之处。现在。老师让我分别量出它们的输入输出脚,控制信号所在脚,地址线所在脚等对地和电源的电阻,然后进行比较,来找出错误。这样做有用吗?
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-08 09:38
这样只能看看有没有短路的地方,你的代码能下载进去,说明不存在这个问题。
建议你先仔细查一下你的CPLD外围电路,可以先不焊CPLD量一下与CPLD连接的所有信号,再把他们与你的CPLD管脚定义和逻辑对一下,然后再焊上去重来。做硬件不烧片子怎么能成长呢(除非有人直接指导)
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-08 10:19
谢谢你的及时回答,您说的“先不焊CPLD量一下与CPLD连接的所有信号,再把他们与你的CPLD管脚定义和逻辑对一下”,不太明白,能否说的具体一些?谢谢你在百忙之中为我解答。
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-08 12:55
就是量一下与CPLD连接的所有信号啊,比如,你量到某个与CPLD连接的信号一直是低电平,而相应的CPLD管脚却分配成总线或输出高电平,就有冲突啊,就可能烧片子塞。
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-09 09:28
拿什么来测量呢?测量时用不用加电?是不是说,比如我把/RD分配给cpld的第18脚,我就测一下18脚对应的连线是低或高电平,若是高的话,就说明有冲突?
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-09 10:24
用示波器测啊。

冲突必定是两方面的事情,没有访问操作操作/RD自然为高电平,这怎能算冲突? 但如果你的CPLD对应的管脚定义为输出,那就冲突了。简单的说,信号的冲突指同时有两个输出相连(用三态控制的分时输出不算),具体到你这儿就是CPLD定义的输出与外围电路的输出可能相连。 所以你应该先查一下CPLD定义的输出信号,与外围电路核对一下。
    不幸的原因各不一样,烧片子的原因不只一种;偶不敢断定你的烧片子一定是信号冲突,但冲突是烧片子原因的一种。 如果你能连续两次下载程序,而且下载后摸芯片不太烫,就不应该是冲突引起的。
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-09 11:05
明白了,真是万分感谢!
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-12-09 12:20
呵呵,那就给5分吧 :)
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-12-14 11:11
还想再问一下,“应该先查一下CPLD定义的输出信号,与外围电路核对一下。”有必要用示波器测量吗?还是只看一下maxplus中cpld的输出管脚分配,是否与外围电路的输出管脚相连就行了?
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-12-14 11:14
还有,偶想问一下lllggg你的qq,能否发到我邮箱里shtok@263.sina.com?或是直接加我,我的是17148365
我想有问题能及时问你,谢谢!
guan_2000
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2011-08-18
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-12-14 17:46
我也罗嗦一下,我也不相信程序编错会烧芯片,但我前两天在调一程序时,烧过一片与程序编码有关.程序,和硬件都是成熟的在用东西,卡也是一个新卡,正常的.在程序里我试着用了一条这样的语句:
A = DFF(GND,C, ,C);结果芯片烧了!
A,C都是IO信号.大家有兴趣试试,我用的是7128STC100-10
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-12-15 20:09
呵呵,还是不要试吧。

(偶们公司用不了QQ,偶的QQ号也早忘乐, 是土了点哈:) )
(DEEP + BROAD + SIMPLE) & delicate
hanchong
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-12-16 11:02
还想再问一下,“应该先查一下CPLD定义的输出信号,与外围电路核对一下。”有必要用示波器测量吗?还是只看一下maxplus中cpld的输出管脚分配,是否与外围电路的输出管脚相连就行了?

这个问题你还没有回答我呢
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-12-16 12:38
一般而言,只在设计层面核对一下就可以了。但要注意双向信号,它们的使能和方向控制要实际量一下。
(DEEP + BROAD + SIMPLE) & delicate
上一页
游客

返回顶部