完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Cortex-M3是新兴起来的一种ARM7的核,而ARM7TDMI是一种传统的经典的ARM内核。我们就抛开这一切,来比较一下两则的异同。 我们就在以下平台上比较吧: STMicoelectronics:STM32F101 36M极限频率,6到16K SRAM,32到128K flash , 1*12位ADC , 80个快速IO口。 NXP:LPC21303 ,、,70MHz, 8K SRAM, 2 UART , 2 I2C , 8*10位ADC ,32k FLASH。 而且价格上STM32要比NXP系列要贵。 这样看来是不是NXP2103占据一定的优势呢?它便宜,更快,有更多的AD转换,但是我们下面将从另外的方面来比较一下,看看NXP的优势真的是不是那么明显? 我们再比较一下ARM7TDMI同ARM Cortem-M3,我们将发现以下有趣的现象: Cortex-M3主要针对价格第三的应用场合,主要是代替性能强大的8位或者十六位微控制器的市场。 最值得注意的地方是整数运算,Cortex是运行在 1.25 DMIPS/MHz,而ARM7TDMI则是在0.95(在thumb指令下是0.74)DMIPS/MHz,如果我们再交以 DMIPS/MHz写入,则会从ATM7TDMI得到66.5 DMIPS,而从Cortex得到62.5 DMIPS,如果ARM7需要运行在thumb模式(如果代码空间有限的话),ARM7TDMI仅仅才51.8 DMIPS,使Cortex运行显得更快了(如果代码空间足够的话就显现不出来)这就算两则打平了。 第二是看两则的电源管理和功耗。ARM7TDMI内核有0.28mW/MHz,而Cortex是0.19 mW/MHz,在片内,LCP2103在1.8V的时候是转换到了50mA,(如果我的排除一切外围电路,只留PLL工作),在Cortex内核中我们得到的是更小的电流。 第三,在内核结构方面,NXP是冯诺依曼结构,而Cortex则是哈佛结构,它将代码区和数据区分开了,多了分枝预测,在运行for等语句的时候有优势,故有一定的优势。而且,Cortex支持一些比如位翻转的DSP指令,这在运行比如DFT的时候显得无比的有用。Cortex还包含了分枝结构,较大地减少了中断等等时间(比ARM7TDMI改进了2.5倍),这无疑Cortex占据了优势。 还有一些其它的方面值得注意,比如:Cortex有一些片内集成的模块,但这些在LPC芯片上要在外围另外接。比如:LDO,片内温度传感器等,这些功能看起来不怎么样,但是如果我们的PCB板面积有限的话,为节省外部的空间,这些功能就很重要了。第二,频率也显得比较重要,Cortex提供了50M频率输出,但是LPC的PCC只能够提供内部时钟倍频。 结论:两则还是各有千秋,所以,我们在选择型号的时候还得慎重。 NXP的东西在汽车上用的很多。我从毕业就在车载行业混。车上用的东西,飞思卡尔的最多,英飞凌那是车厂级别的采用,就是所谓的前装标准.汽车收音机出了ST的TDA7540外,最大的还是NXP的、 ST的东西才是有不少BUG。比如STM32刚出来的时候,为了快速抢占市场,那些芯片问题很多的,只是说现在好很多。ST最成功的还是STM8 深圳车载行业以前用的MCU都8位的,厂家有很多,松下,瑞萨,东芝、、、、、自从STM8出来以后已下子都“叛变了”转投ST阵营。 我09年开始玩STM32,后来,用STM32的64脚,100脚的做了几个应用。感触如下:《仅个人之言。》 1.开发容易,借助于那个让人“爱”有让人“恨”的库,开发周期比较快。 2.管脚分配比较灵活。映射考虑的很周全。不像我现在用的NXP LPC1768那样,AD和UART放在同一个引脚上,只能选其一,我很想骂人。 明说8路AD,结果能真正用的只有4路,被占了4路。 3.STM32的很多功能都是好靠软件去实现的。比如:RTC时钟的日历功能,只能用户自己算。LPC1700的直接将年,月。日,星期写进去就行,硬件自己算。精度也很高、相当于DS1302那样。比较爽。LPC1700的UART带FIFO,数据量很大,也不会死。 4.I2C的控制,LPC1700做的很好。STM32的早期库有些问题,但是库的升级真的很麻烦。 5.LPC1700直接操作寄存器。这点很好,效率高,而且有助于我们深刻理解原理。 6.源于ARM V7的第二代内核,速度有了大幅提升,100M,关键是分开的内核总线,跑起来,不会有速度瓶颈。 7.LPC1700最复杂的地方就是时钟控制这一块,搞的像X86的时钟一样,有PLL0.PLL1,还有转给USB时钟的,但是这样也带来一个好处,待机功耗可以做的更低。 睡眠模式-----------》深度睡眠----------------》掉电模式----------------》深度掉电模式 10mA 0.45mA------------------>150uA------------------>470nA <实际测试的数据,可能有误差> 8.个人感觉STM32的AD精度还是不错的,LPC1700的AD很依赖PCB布局和走线,STM32的相比之下,比较随便。误差不是很大。 9.USB的开发,目前只能依赖STM32的库,要做的东西很多。速度也不是很快。LPC1700的快多了,速度快些,更重要的是升级固件的时候,很方便,不需要任何工具,会在系统下模拟一个U盘,然后将要升级的BIN文件,拖进去,然后重启就可以。ST的要搞得DFU的玩意。有时候还老是刷不成功。 10,最后感叹下STM32超强的定时器功能,做电机控制首先。 总结下:追求性价比的,上手快的,使用的外设要求多的,比如5个UART的,选STM32。 选择工业控制,外设使用不是特别多的,可靠性高的,找LPC1700 不要喷我啊 要是有什么不到位的地方 欢迎指出来 |
|
相关推荐
2 个讨论
|
|
只有小组成员才能发言,加入小组>>
1906个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
605浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
796浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:19 , Processed in 1.140827 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号