[ZLG-ARM] 周工及各位大侠:lpc2214是否有uart0得 bug?

[复制链接]
6222|28
 楼主| alin_99 发表于 2007-7-5 09:47 | 显示全部楼层 |阅读模式
用lpc2214开发现目,发现了似乎是硬件bug,开发环境keil&nbsp;uvision&nbsp;3<br /><br />1&nbsp;用2214得eint2(p0.7)脚做中断,软仿真没问题,实际使用不能进入中断(硬件连接是通得),示波器中断电平正常,修改程序多次未果。<br />&nbsp;后来用eint0(p0.16)脚,仿真及运行完全正常。<br /><br />这个问题不知道如何解释,真得是硬件bug??<br /><br />2&nbsp;用uart0做串口通讯(fifo=8,条件115200&nbsp;8&nbsp;无&nbsp;1),&nbsp;下传8个数据用ulink监视发现数据下传到2214正常,原数据返回只有前面7个数据正常,最后一个总是不正常,进入正常使用后每次发送数据都不正常,但是出现错误是有规律得,如0xaa-》0xfa,&nbsp;&nbsp;0x10-》0x0a。。后来使fifo=1,结果是一样得还是不正常,但是数据和前面错误不一样(ulink监视2214的数据是完全正常的)。&nbsp;&nbsp;太怪了<br /><br />不知道&nbsp;大家是否碰到这样得问题,怎么解决?
 楼主| alin_99 发表于 2007-7-5 10:33 | 显示全部楼层

自顶一下

希望&nbsp;有人&nbsp;能够&nbsp;提供帮助,或者&nbsp;能提供&nbsp;正确的&nbsp;参考程序,谢谢各位浏览&nbsp;本帖
汽车电子 发表于 2007-7-5 10:40 | 显示全部楼层

看看堪误手册吧,我网上有串口例子

  
 楼主| alin_99 发表于 2007-7-5 11:02 | 显示全部楼层

谢谢楼上

  
 楼主| alin_99 发表于 2007-7-5 12:47 | 显示全部楼层

堪误手册上 没有 uart0啊 ,你的程序倒是找到了

  
avr32 发表于 2007-7-7 12:34 | 显示全部楼层

re

你怎么不怀疑串口软件的问题呢?我碰到了好几个软件有些是设置上的问题,有些软件就是做的不完善.
 楼主| alin_99 发表于 2007-7-7 13:17 | 显示全部楼层

哈哈

这个不是不能收到0x00的问题,何况我也试过了先打开超级终端,在开&nbsp;助手.<br /><br />收是没问题的,就是数据不对&nbsp;<br /><br />每次下传数据到&nbsp;串口正常.但是上传接受的数据就不对了.<br /><br />不知道各位&nbsp;&nbsp;一般用什么串口调试软件啊&nbsp;???
 楼主| alin_99 发表于 2007-7-7 14:15 | 显示全部楼层

换用 汽车电子兄 的 串口通v3.22还是同样的问题,郁闷

  
 楼主| alin_99 发表于 2007-7-7 20:54 | 显示全部楼层

看来只能明天把uart1整出来试了。这样的芯片整死人

  
armecos 发表于 2007-7-7 22:16 | 显示全部楼层

最好调试一下,

&nbsp;&nbsp;&nbsp;&nbsp;没有用过2214,我猜测很有可能是你的程序不正确。<br />&nbsp;&nbsp;&nbsp;&nbsp;1、eint2是不是引脚复用的,其他引脚干扰了它,仔细查看eint2和eint0的区别。<br />&nbsp;&nbsp;&nbsp;&nbsp;2、看样子是最后一个数据字节把前面的数据冲掉了,写入FIFO时是否判断FIFO满?<br />&nbsp;&nbsp;&nbsp;&nbsp;不一定正确,仅供参考!
heloo 发表于 2007-7-7 23:37 | 显示全部楼层

怎么判断发送fifo满了,好像没有这个标志位提示

  
 楼主| alin_99 发表于 2007-7-8 08:54 | 显示全部楼层

回armecos

&nbsp;1、eint2是引脚复用的,没其他引脚干扰了它,软仿真没问题,<br />eint0也是复用引脚啊,直接改成eint0没问题(现在&nbsp;这些单片机基本每个脚都是复用的了)<br />2&nbsp;写入的时候没满,写入前都要判断是否发送完,实验的时候我改得很简单的程序,还是不行
HQGBOY 发表于 2007-7-9 08:27 | 显示全部楼层

发送0X00发不出去.LPC2136芯片...

  
 楼主| alin_99 发表于 2007-7-9 14:30 | 显示全部楼层

楼上的问题看以前帖子是串口助手问题

说说我的问题把<br /><br />1&nbsp;用串口0和1都作过实验,&nbsp;&nbsp;用fifo=8,&nbsp;&nbsp;只开接受中断、.<br />&nbsp;接受的数据主程序中返回,正常(仅仅是简单的测试程序)<br />2&nbsp;用串口0.FIFO=14,&nbsp;开启接受中断(包括cti中断)和错误中断,<br />&nbsp;&nbsp;arm将&nbsp;接受到的数据原样返回,正常.(也是测试程序,只用了串口0程序)<br /><br />3&nbsp;开了定时器,串口0(设置同2),外部中断0(上升沿触发,完成数据解码功能)<br />&nbsp;&nbsp;程序设计为上电等待串口数据,收到数据返回14个0x00,返回正常.<br /><br />(多中断开启,低优先级的中断进入前都家了ENABLE.DISABLE中断嵌套宏,可以中断嵌套)<br />a&nbsp;进入正常的程序流程后.解码后的数据&nbsp;用ulink监视是正确的,但是上传的数据不正常,&nbsp;这是如果再次下传数据会出现&nbsp;&quot;rx线状态/错误&quot;中断,真实奇怪,这个问题是不是传说中的&nbsp;&nbsp;bug,&nbsp;设置了外部中断的模式(模式和极性)会引起&nbsp;外设时钟改变?????<br /><br />b&nbsp;不用ulink监视&nbsp;&nbsp;也同样在正常流程中&nbsp;上传数据出错..出错是重复有点规律的.<br /><br />zlg的人都跑到哪里去了.&nbsp;&nbsp;解释一下好吗???如果避免这个问题???
HQGBOY 发表于 2007-7-9 14:45 | 显示全部楼层

谢谢.看了一下以前的..

1&nbsp;重起电脑了不行.<br />2&nbsp;用超级终端也不行.<br />
 楼主| alin_99 发表于 2007-7-9 15:22 | 显示全部楼层

问题解决,是 2214的bug啊

勘误表上虽然只写了EINT1&nbsp;EINT2有bug<br />但是EINT0也有同样的bug<br /><br />是由于对中断的模式&nbsp;和&nbsp;极性进行写操作是会影响到vpbdiv积存器,<br /><br />解决办法<br />1&nbsp;读出vpbdiv的直保存,将其写入0<br />2&nbsp;设置好&nbsp;中断的模式&nbsp;和&nbsp;极性<br />3&nbsp;将保存直恢复到vpbdiv中.<br /><br />这么多bug的芯片&nbsp;还他吗的&nbsp;卖出来&nbsp;害人,<br />以后&nbsp;再不用nxp了.换&nbsp;st酸了
hqgboy 发表于 2007-7-10 09:59 | 显示全部楼层

真的是BUG???

  
 楼主| alin_99 发表于 2007-7-10 13:56 | 显示全部楼层

千真万确,太让我震惊了, 太多的bug了

  
hqGBoY 发表于 2007-7-11 08:46 | 显示全部楼层

产品买出去上千台了,现在新的也在用...

怎么办?我的看看他们的手册了...
zlgarm 发表于 2007-7-11 10:15 | 显示全部楼层

re

LPC2210串口的例子可以下载:<br />http://www.embedtools.com/download/downs.asp?ID=1539<br /><br />勘误表中有说到解决方法,可在www.zlgmcu.com查找下载:<br />http://www.zlgmcu.com/philips/arm/lpc2212/LPC2212_2214_err.pdf<br /><br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

262

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部