打印
[ZLG-MCU]

注意!LPC9107的T1外部脉冲计数有问题

[复制链接]
3328|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzgwxflove|  楼主 | 2007-12-20 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先说第一个:
  LPC9107的芯片,外部脉冲从T1(P0.7)输入 (T1C/T = 0),可是T1中并不计数,如果对PCLK计数(T1C/T = 1),则T1计数正常,测试如下程序:

//-------------------------------------------------------------------//功能:定时器初始化
//-------------------------------------------------------------------
void TimerInit(void)
{
    TMOD = 0x51;        //T0为16位定时器 T1为外部计数器
    //TMOD = 0x11;        //T0为16位定时器 T1为定时器

    TH1 = 0xff;
    TL1 = 0x00;    

    TR1 = 1;
    ET1 = 1;
}

//-------------------------------------------------------------------
//功能:管脚模式初始化
//-------------------------------------------------------------------
void IOInit(void)
{
     P1M1 = 0x00;
     P1M2 = 0x07;             //P1.0 P1.1 P1.2推挽输出

     P0M1 = P0M1 & 0xd9;
     P0M2 = P0M2 | 0x26;    // P0.7(T1)高阻抗输入

     KB5 = 0;
}
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
void main(void)
{
    TimerInit();
    IOInit();
    EA = 1;

    while (1)
    {
              ;
    }
}
//-------------------------------------------------------------------
//功能:对脉冲计数
//-------------------------------------------------------------------
void Timer1_interrupt(void) interrupt 3 using 3
{
    TR1 = 0;
    TH1 = 0xff;
    TL1 = 0x00;    
    TR1 = 1;

    RxD = !RxD;;    //闪烁指示进入中断
}

谢谢大家看看,是不是别的原因造成的?

相关帖子

沙发
bagdmu| | 2007-12-21 08:48 | 只看该作者

可能是你的KEIL没装好吧

使用特权

评论回复
板凳
yzgwxflove|  楼主 | 2007-12-21 11:38 | 只看该作者

应该和KEIL没有关系吧

测试程序很小,仿真和看汇编没有什么问题,编译成HEX直接ICP到芯片后不能对T1输入的脉冲计数。
谢谢LS的提醒。

使用特权

评论回复
地板
yzgwxflove|  楼主 | 2007-12-21 17:32 | 只看该作者

继续实验

安装多个版本的KEIL,都是同样情况。

使用特权

评论回复
5
yzgwxflove|  楼主 | 2007-12-21 17:42 | 只看该作者

继续

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

使用特权

评论回复
6
yzgwxflove|  楼主 | 2007-12-21 17:48 | 只看该作者

补充

电路没有问题,外部脉冲已经送入T1(P0.7)管脚,在主循环中加入
    while (1)
    {
       RxD = T1;
    }
可以在RxD(P1.1)管脚上得到和T1同样的脉冲,说明脉冲已经被T1(P0.7)管脚接收到。

使用特权

评论回复
7
zlgmcu| | 2007-12-21 22:30 | 只看该作者

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

使用特权

评论回复
8
yzgwxflove|  楼主 | 2007-12-22 09:14 | 只看该作者

re

zlgmcu,你好,我昨天和广州的工程师交流过,目前他们也没有明确的结论。

使用特权

评论回复
9
yzgwxflove|  楼主 | 2007-12-23 10:51 | 只看该作者

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

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

使用特权

评论回复
10
逐风| | 2007-12-23 21:14 | 只看该作者

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

使用特权

评论回复
11
zlgmcu| | 2007-12-24 14:12 | 只看该作者

re

样片已到,将安排专人进行测试,如有问题,请直接与销售联系,将可以得到更快的答复.

使用特权

评论回复
12
yzgwxflove|  楼主 | 2007-12-24 18:56 | 只看该作者

re:逐风

我已做过9107的测试,同样的电路T0可以,T1不行。

使用特权

评论回复
13
yzgwxflove|  楼主 | 2007-12-24 19:00 | 只看该作者

re:zlgmcu

谢谢,我会继续与销售保持联系,期待有个结果。
不管是否存在问题,也算对9107的应用工程师是个提醒吧。
另:现在我的方案已经改动,由T0口计数了,只是做的PCB可能作废了。

使用特权

评论回复
14
zlgmcu| | 2007-12-24 23:01 | 只看该作者

re

非常感谢 yzgwxflove先生对我们工作的支持.

有消息后将马上通知您!

使用特权

评论回复
15
逐风| | 2007-12-26 21:18 | 只看该作者

好像是行不通!

使用特权

评论回复
16
yzgwxflove|  楼主 | 2007-12-27 11:33 | 只看该作者

re:逐风

请问逐风:你也证实了T1外部计数有问题吗?

使用特权

评论回复
17
yzgwxflove|  楼主 | 2007-12-27 11:57 | 只看该作者

re

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

使用特权

评论回复
18
gx_huang| | 2008-1-16 18:44 | 只看该作者

同情

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

使用特权

评论回复
19
mohanwei| | 2008-1-16 20:21 | 只看该作者

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

使用特权

评论回复
20
yzgwxflove|  楼主 | 2008-1-20 13:38 | 只看该作者

哈哈

顶这句:参考资料,仅供参考。

使用特权

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

本版积分规则

16

主题

179

帖子

1

粉丝