打印
[ZLG-ARM]

请高手确认:LPC22xx系列的CPU是否有缺陷

[复制链接]
1786|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a_bb|  楼主 | 2007-5-9 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我提出过在LPC2214上设置外部中断极性会影响系统时钟的问题
https://bbs.21ic.com/club/bbs/list.asp?boardid=39&page=1&t=2520047&tp=%u7CFB%u7EDF%u65F6%u949F%u53D8%u5316%u4E4B%u8FF7

为了确认问题,我们在周工的开发板上做了实验:
开发板easyArm2200(LPC2210),IDE ADS1.2 +EASYJTAG 1.05
实验程序:第3章第20个实验 SendStr_c
为方便观察现象,我将串口速率改为9600 即 #define UART_BPS 9600

主程序如下:
int  main(void)
{  PINSEL0 = 0x00000005;            // 设置I/O连接到UART0
   
   UART0_Ini();
   while(1)    
   {  UART0_SendStr(SEND_STRING);
      DelayNS(10);
   }
   return(0);
}
显然没有设置、开启如何中断。
一切正常,串口得到9600速率的Hello World!

更改如下
int  main(void)
{  PINSEL0 = 0x00000005;            // 设置I/O连接到UART0
   
   UART0_Ini();
   EXTMODE = newvalue;                         
   while(1)    
   {  UART0_SendStr(SEND_STRING);
      DelayNS(10);
   }
   return(0);
}
当newvalue = 0xff,0x01,0x04,0x08时,正常
但当newvalue = 0x02时,串口速率为19200。2倍!


再更改如下
int  main(void)
{  PINSEL0 = 0x00000005;            // 设置I/O连接到UART0
   
   UART0_Ini();
   EXTPOLAR = newvalue;                         
   while(1)    
   {  UART0_SendStr(SEND_STRING);
      DelayNS(10);
   }
   return(0);
}
当newvalue = 0xff,0x01,0x04,0x08时,正常
但当newvalue = 0x02时,串口速率为19200。2倍!

确实速率加倍只是表象,实质是时钟频率加倍了,
但我不清楚是改变了pll还是pclk


从现象看,我认为LPC2200系列是存在某种设计缺陷的,
我请周立功公司的各位老师也仔细研究一下,看看是我使用得
不正确,还是确实有缺陷,感谢你们的答复。

相关帖子

沙发
wlq_9| | 2007-5-9 15:46 | 只看该作者

恭喜你

看看勘误表,刚好有这一项.
当你设置EXTMODE or EXTPOLAR时,VPBDIV的值可能会被改变.

使用特权

评论回复
板凳
a_bb|  楼主 | 2007-5-10 16:17 | 只看该作者

以前从没看过勘误表,以为说的是一些文字上的错误,
看过才发现2214有如此多的缺陷存在,这样的产品他们
竟还敢生产!既然发现了这些缺陷,为何在现批次的产品
中就没有改正呢?

使用特权

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

本版积分规则

35

主题

98

帖子

0

粉丝