[ZLG-MCU] 注意!LPC9107的T1外部脉冲计数有问题

[复制链接]
4867|18
 楼主| yzgwxflove 发表于 2007-12-20 20:23 | 显示全部楼层 |阅读模式
先说第一个:<br />&nbsp;&nbsp;LPC9107的芯片,外部脉冲从T1(P0.7)输入&nbsp;(T1C/T&nbsp;=&nbsp;0),可是T1中并不计数,如果对PCLK计数(T1C/T&nbsp;=&nbsp;1),则T1计数正常,测试如下程序:<br /><br />//-------------------------------------------------------------------//功能:定时器初始化<br />//-------------------------------------------------------------------<br />void&nbsp;TimerInit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TMOD&nbsp;=&nbsp;0x51;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//T0为16位定时器&nbsp;T1为外部计数器<br />&nbsp;&nbsp;&nbsp;&nbsp;//TMOD&nbsp;=&nbsp;0x11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//T0为16位定时器&nbsp;T1为定时器<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TH1&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL1&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TR1&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ET1&nbsp;=&nbsp;1;<br />}<br /><br />//-------------------------------------------------------------------<br />//功能:管脚模式初始化<br />//-------------------------------------------------------------------<br />void&nbsp;IOInit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1M1&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1M2&nbsp;=&nbsp;0x07;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//P1.0&nbsp;P1.1&nbsp;P1.2推挽输出<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0M1&nbsp;=&nbsp;P0M1&nbsp;&&nbsp;0xd9;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0M2&nbsp;=&nbsp;P0M2&nbsp;|&nbsp;0x26;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;P0.7(T1)高阻抗输入<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KB5&nbsp;=&nbsp;0;<br />}<br />//-------------------------------------------------------------------<br />//<br />//-------------------------------------------------------------------<br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TimerInit();<br />&nbsp;&nbsp;&nbsp;&nbsp;IOInit();<br />&nbsp;&nbsp;&nbsp;&nbsp;EA&nbsp;=&nbsp;1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />//-------------------------------------------------------------------<br />//功能:对脉冲计数<br />//-------------------------------------------------------------------<br />void&nbsp;Timer1_interrupt(void)&nbsp;interrupt&nbsp;3&nbsp;using&nbsp;3<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TR1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH1&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL1&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TR1&nbsp;=&nbsp;1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;RxD&nbsp;=&nbsp;!RxD;;&nbsp;&nbsp;&nbsp;&nbsp;//闪烁指示进入中断<br />}<br /><br />谢谢大家看看,是不是别的原因造成的?
 楼主| yzgwxflove 发表于 2007-12-21 11:38 | 显示全部楼层

应该和KEIL没有关系吧

测试程序很小,仿真和看汇编没有什么问题,编译成HEX直接ICP到芯片后不能对T1输入的脉冲计数。<br />谢谢LS的提醒。
 楼主| yzgwxflove 发表于 2007-12-21 17:32 | 显示全部楼层

继续实验

安装多个版本的KEIL,都是同样情况。
 楼主| yzgwxflove 发表于 2007-12-21 17:42 | 显示全部楼层

继续

和周立功的工程师联系,把顶楼的测试程序发过去,他们说KEIL软件仿真很正常,我用软件仿真也没有问题,于是请他们做实物实验,由于当时他们手头没有9107,只能用936测试,结果没有问题,正好我手里也有936,搭好电路写入程序,测试OK。<br />一样的程序,9107不行,936可以,似乎可以说是9107的BUG了吧,ZLG能给个明确的说明吗?<br />已经做了200块电路板了,这下有我好看了,郁闷
 楼主| yzgwxflove 发表于 2007-12-21 17:48 | 显示全部楼层

补充

电路没有问题,外部脉冲已经送入T1(P0.7)管脚,在主循环中加入<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RxD&nbsp;=&nbsp;T1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />可以在RxD(P1.1)管脚上得到和T1同样的脉冲,说明脉冲已经被T1(P0.7)管脚接收到。<br />
zlgmcu 发表于 2007-12-21 22:30 | 显示全部楼层

您可以与当地的销售工程师联系,他们会安排人员为您解决问

  
 楼主| yzgwxflove 发表于 2007-12-22 09:14 | 显示全部楼层

re

zlgmcu,你好,我昨天和广州的工程师交流过,目前他们也没有明确的结论。
 楼主| yzgwxflove 发表于 2007-12-23 10:51 | 显示全部楼层

zlg还没有结论,我已经有了

昨天和武汉的zlg工程师联系了,电路图和测试程序发过去,他们也做了软件仿真,也说是正常的,我要求用9107实际的芯片测试一下,应该是很简单的事情,可是被告知没有9107,不能做测试,但是他们认为9107这么基本的功能应该没有什么问题,让我找硬件的问题,或者从T0的外部管脚输入脉冲测试一下。<br />硬件很简单,我有信心没有问题,于是将电路板上T1,T0的引线割断,交叉连线,将程序中T1/T0的输入输出关系修改一下(T0用作外部计数,T1用作输出),下载到9107,测试OK!!!!<br />请ZLG说说,这种情况是不是说明了T1的外部计数确实存在问题?
逐风 发表于 2007-12-23 21:14 | 显示全部楼层

如果没有做测试,又怎么能说明有问题呢?》

  
zlgmcu 发表于 2007-12-24 14:12 | 显示全部楼层

re

样片已到,将安排专人进行测试,如有问题,请直接与销售联系,将可以得到更快的答复.
 楼主| yzgwxflove 发表于 2007-12-24 18:56 | 显示全部楼层

re:逐风

我已做过9107的测试,同样的电路T0可以,T1不行。
 楼主| yzgwxflove 发表于 2007-12-24 19:00 | 显示全部楼层

re:zlgmcu

谢谢,我会继续与销售保持联系,期待有个结果。<br />不管是否存在问题,也算对9107的应用工程师是个提醒吧。<br />另:现在我的方案已经改动,由T0口计数了,只是做的PCB可能作废了。
zlgmcu 发表于 2007-12-24 23:01 | 显示全部楼层

re

非常感谢&nbsp;yzgwxflove先生对我们工作的支持.<br /><br />有消息后将马上通知您!<br />
逐风 发表于 2007-12-26 21:18 | 显示全部楼层

好像是行不通!

  
 楼主| yzgwxflove 发表于 2007-12-27 11:33 | 显示全部楼层

re:逐风

请问逐风:你也证实了T1外部计数有问题吗?
 楼主| yzgwxflove 发表于 2007-12-27 11:57 | 显示全部楼层

re

刚刚从武汉和广州ZLG获得消息,说是T1的问题已经被证实。<br />但是现在还没有解决方案。<br />郁闷啊,这么基本的功能都有问题,9107供货也有几年了吧,竟然还存在这么低级的问题,严重怀疑有没有测试就定型了。<br />建议:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、ZLG(或者说NXP)不要回避这个问题,尽快在文档上作出修正更改。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、完善技术支持的效率。
gx_huang 发表于 2008-1-16 18:44 | 显示全部楼层

同情

所以不管什么事情,先看数据手册,再实际认证才行。<br />你没有看见有些芯片显著位置写着:参考资料,仅供参考。<br />我以前选择LPC938做设计,有上下2组ADC,一组ADC作为ADC使用,<br />另外一组作为输入,嘿嘿,奇怪了,读入的电平永远是固定的,<br />不会变,问ZLG的技术支持,好长时间才给结果,原来ADC电路IC内部<br />设计错误。有一个寄存器的上下4位设置是颠倒的,但是无法通过设置解决。<br />还好,我改变了程序,用ADC采样输入电平来判断输入的高低,<br />就是软件麻烦许多。
mohanwei 发表于 2008-1-16 20:21 | 显示全部楼层

这样都行……把客户当测试部啊……

  
 楼主| yzgwxflove 发表于 2008-1-20 13:38 | 显示全部楼层

哈哈

顶这句:参考资料,仅供参考。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

179

帖子

1

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