打印
[ZLG-ARM]

要说浮躁,没有谁比NXP更浮躁了!

[复制链接]
3844|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andrewpei|  楼主 | 2008-12-22 15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
NXP, AN, TI, TE, ce
最近作CAN的驱动,发现NXP的文档写得简直叫狗屎。
同样的CAN模块,同样的设计(我相信一定是相同的设计),三款芯片对于中断标志位IDI(ICR.8)的描述差别甚大:

LPC2292的:
ID Ready Interrupt -- this bit is set if the IDIE bit in 
CANIE is 1, and a CAN Identifier has been received.

LPC2917的:
IDIE R/W     ID ready interrupt enable
              1 An interrupt is generated if a CAN identifier has 
                been received in acceptance filter bypass 
                mode.
              0

LPC2378的最离谱,看完了搞不清楚到底是与发送有关还与跟接收有关
IDI  ID Ready Interrupt  0 (reset)
                         1 (set)
                 -- this bit is set if the IDIE bit in CANxIER is 1,
                    and a CAN Identifier has been received (a 
                    message was successfully transmitted or 
                    aborted). This bit is set whenever a message was 
                    successfully transmitted or aborted and the IDIE 
                    bit is set in the IER reg.


再看LPC2378的errate sheet,CAN的Data Overrun这个BUG描述也让人一头雾水。
Introduction: Each CAN controller provides a double Receive Buffer (RBX) per CAN channel to store incoming 
messages until they are processed by the CPU. Software task should read and save received data
as soon as a message reception is signaled.
In cases, where both receive buffers are filled and the contents are not read before the third mes-
sage comes in, a CAN Data Overrun situation is signaled. This condition is signaled via the Status
register and the Data Overrun Interrupt (if enabled).
Problem: In a Data Overrun condition, the CAN controller is locked from further message reception. 
Workaround: 1. Recovering from this situation is only possible with a soft reset to the CAN controller. 
2. If software cannot read all messages in time before a third message comes in, it is recommend
to change the acceptance filtering by adding further acceptance filter group(s) for messages, 
which are normally rejected. With this approach, the third incoming message is accepted and the 
Data Overrun condition is avoided. These additional messages are received with the correspond-
ing group index number can be easily identified and rejected by software.


这样的文档,对开发人员简直是智商的调戏。这个CAN,做的让人吐血。

接着再说LPC2000的VIC,一会儿用ARM的PL192,一会用ARM的PL197;再说EMC,一会自己搞一套,一会又用ARM的IP,NXP你能稳定一点不,不要来回折腾你的用户行不行。


回想NXP的LPC2000系列,从LPC2104开始就是一堆BUG,接着LPC22XX没有什么改进,一直做到LPC23XX时BUG才明显开始减少。达到ATMEL的SAM7的水平。

LPC2000啊,用得让人头疼!!

相关帖子

沙发
zlg_ltt| | 2008-12-22 18:41 | 只看该作者

那些英文描述很难理解吗?

这些来自不同CPU的描述,都说清楚了ID Ready Interrupt的两个产生条件。任何中断标志产生都需要先使能该中断类型、并且产生触发该中断的事件。
ID Ready Interrupt也是如此。从这一点出发去阅读,想必能分清楚细节和主干,并不难读懂。

您所引用的不同CPU的ID Ready Interrupt的描述文字,在具体细节补充上确实有所不同,但并没有什么根本抵触,也不至于会是调戏开发人员的智商吧。

如果仅是文档看不明白,您也可以考虑打电话给我司的CAN技术支持。

不过,我们会在把NXP 芯片用户手册变成教程的过程里,尽最大努力修改文档至简明易懂,尽量降低读者的阅读难度,所以读者可考虑优先阅读芯片相应的基础教程。谢谢提醒!

使用特权

评论回复
板凳
andrewpei|  楼主 | 2008-12-22 20:16 | 只看该作者

楼上,上述几个文档仅仅关天IDI位的描述就不一致!


LPC2378就与其它两个非常不一致。

先说LPC2378的IDI:
this bit is set if the IDIE bit in CANxIER is 1,  and a CAN Identifier has been received (a  message was successfully transmitted or  aborted). This bit is set whenever a message was  successfully transmitted or aborted and the IDIE bit is set in the IER reg.
根据上面的文字,你告诉我IDI究竟是接收相关的中断标志位还是发送相关的标志位。我看得一头雾水。好了,我又看LPC2292的,原来是与接收相关,我又看LPC2917,原来还得是在验收滤波机制旁路的情况下,接收到一个完整的消息ID才会有IDI置位。那我又有疑问了:到底LPC2292和LPC2917上谁说的更准确,究竟验收滤波器的旁路与否对IDI置位有没有影响。你不要告诉我这三款芯片在这里关于IDI的设计各不相同。我不接收这样的解释,如果是真的这样,NXP脑子进水。
LPC2378对于Data Overrun这个BUG的解决办法2在逻辑上根本无法理解。如果楼上能理解,我诚心诚意地洗耳恭听。
 
再放宽一点说:
1、为什么NXP与ATMEL和ST不一样,要选ARM7TDMI-S内核设计LPC2000。原因我想在于这个内核可综合,可以采用更好的工艺达到更高的主频。好了,问题来了,后来NXP发布的一系列的BUG手册都提到了内核的BUG,这下NXP没有办法了,它没有办法消除,因为这是ARM才有的权限,NXP没有权限。另外,ARM7TDMI-S内核用J-link仿真器不能全速仿真,用户又是一声叹息。
2、上面这条不算什么,用户忍忍,可以接受了。但是NXP在LPC2378的外扩总线中突然改用ARM的知识IP就有点不厚道。那原来LPC2200中的驱分理处不是得推倒重来?
3、再来一条:LPC21XX与LPC22XX中的VIC用的是ARM的PL192知识IP,只有16个优先级。后来发现不够用了,改用PL197了。好了,这下用户的老程序又得改。
4、其它的,LPC23XX之前,IO口是没有内置上拉电阻的,后来一看不行,又给加上了。是,是好事,可是你LPC2XXX出生之前,ATMEL早就在SAM7全系列实现这个了,连51单片机都有的东西,NXP竟然在LPC2XXX的早、中期视若不见。
 
审视一下LPC2XXX的发展情况,看看这个系列的芯片所发布的Errara Datasheet,才发现,LPC23XX后才算是一个比较成熟的东西,即使如此,文档仍然具有NXP(或Philips半导体)的光荣传统----业内大厂最差。看过TI、ATMEL、MAXIM、ANALOG、ST的文档,从来没有看过比NXP差的,粘贴复制的迹象非常明显,行文晦涩。
 
总的来说,对比其它大厂,用NXP的产品搞开发,相对更艰苦一些,有的时候,会搞得人很上火。今天发文的时候,如果它的产品经理在面前,说不定我会把芯片抠下来扔到他脸上去。
 
NXP还有一个短板,比较大的短板:软件支持差。看看STM32和流明,人家都已经提供成套的固件库了,NXP现在还停留在提供支离破碎、离快速实用差一大截子的Application Note。NXP早已不复51时代之勇。
 
不谈那么多了,一句话,浮躁之风,MCU这个领域内,现在的NXP真的难有人出其左右。

使用特权

评论回复
地板
sheepbaa| | 2008-12-23 09:03 | 只看该作者

对于NXP的东西只能说能用,还说不上好用

对于NXP的东西只能说能用,还说不上好用.
那些文档 还好周公翻译过,否则真是...
如果看不懂就打电话给周立功,我觉得也不是解决好办法,把文档些清楚点为好

使用特权

评论回复
5
wswh2o| | 2008-12-23 15:23 | 只看该作者

不知道为啥atmel的

arm比较少用

使用特权

评论回复
6
wlq_9| | 2008-12-23 15:40 | 只看该作者

atmel

用的也不少,三星的出货也很大。
不一定常在论坛问问题的ARM就用的得,只能说用这种ARM的小公司相对多一些。大公司的工程师一般都是闷声发财,大批量出货的公司开发有问题了也不会跑到论坛里面来问的。

使用特权

评论回复
7
wswh2o| | 2008-12-25 18:38 | 只看该作者

nxp不太不靠谱

不过没办法,上了贼船了

使用特权

评论回复
8
zlg315| | 2008-12-26 03:05 | 只看该作者

我用了三年时间,写作了《ARM嵌入式系统基础教程》(第二

    主要的问题已经全部讲清楚了,网友在上面提到的问题,我们在配套的开发板中也一并描述清楚了,这是其他任何半导体公司都做不到的本地化。
    最近我一直在为一个99元的EasyARM2103写作两本配套的图书,现在是3:10分钟才停止写作开始有空上网看这个贴子,可以说这套书比上面提到的第二版看起来还要好。我想大家不要灰心丧气!冬天即将过去,春天还会远吗?希望大家对我们多一点信心,对我们对一点支持和宽容,我们一定会做得更好,更大地回报大家的帮助。
    尽管遇到了很多问题,但我们从来没有放弃过,因为有你们的支持!上面这位网友提到的问题,其实也是对我们的支持,向我们反映问题以利于我们做得更好!
    谢谢!

使用特权

评论回复
9
zyok| | 2008-12-26 09:30 | 只看该作者

Cortex-M3不是很强吗?

LPC1xxx和LM3不是LPC21xx更有优势吗?
周工怎么还花大把精力在arm7上?

使用特权

评论回复
10
xusn| | 2008-12-26 12:13 | 只看该作者

出货量大呗

使用特权

评论回复
11
zlg315| | 2008-12-26 15:15 | 只看该作者

写ARM7的图书主要是方便教学与推广,ARM7还是占有主要市场。

    初学者的学习不一定要选用新核,8051不是一样用于教学和产品开发吗?ARM7的方便性在教学和自学还是有很大的优势所在。如作为开发人员调用API函数库没有问题,如果初学者一开始就从调用API函数库入门学习,将来肯定“武功”全废,特别是操作系统的学习使用ARM7更加方便。与此同时各位坚信ARM7所有型号将会全部淘汰吗?不可能。如果LPC2103有一天卖10元的话,我相信还是会有很多用户的。
    当然,我们也会推出很多好的Cortex-M3开发平台和配套图书的,希望大家多一点耐心!写好书需要时间,我们希望以后提供少产高质量的图书为初学者服务。

使用特权

评论回复
12
yongfei| | 2009-4-3 10:46 | 只看该作者

唉,难怪NXP要倒闭呀,

最近在用一款新单片机,发现老外的IC设计人员脑子也是会进水的,设计与实际应用脱节。这款单片机的UART的发送空闲中断设计的很难用,当发送缓冲区中的数据装入发送器后,发送缓冲区就空闲了,此时就立刻产生发送空闲中断,而TX管脚上的数据还正在发送,也就是说你无法知道TX管脚上的数据什么时间真正发送完,除非再额外使用定时器或软件延时,对于232倒无所谓,但对485就残了,发送和接收转换很难处理,难道这些老外就从不用485?

使用特权

评论回复
13
roger_lj| | 2009-4-16 09:05 | 只看该作者

把芯片具体型号报出来啊

把芯片型号说一下, 这样才好帮你一起解决问题啊.

使用特权

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

本版积分规则

9

主题

51

帖子

0

粉丝