EDN首页   博客首页

日志档案

发表于 2008-7-22 0:51:55

75

标签: LPC  STM32  

[原创]STM32与LPC系列ARM资源之比较

 

由于有周立公开发板的影响,LPC系列的开发板在工程师心目中一般是入门的最好型号之一。这次刚好有STM32的竞赛,正好将两者的资源进行比较一下(LPC系列以LPC213X为例)。

LPC213X包括LPC213121322138等, 是基于一个支持实时仿真和跟踪的16/32 ARM7TDMI-STM CPU,并带有32kB64kB 512kB 嵌入的高速Flash 存储器。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 Thumb 模式将代码规模降低超过30%,而性能的损失却很小。

STM32 则大致分为两类,一种是基本型,一种是增强型。这同51内核的单片机有点类似,51系列的单片机也有普通型和增强型。基本型STM32系列ARM包括STM32F101x6STM32F101x8STM32F101xB等,它是32位基于ARM核心的带闪存微型控制器,有六个16位定时器、ADC7个通信接口;而增强型STM32系列的ARM包括STM32F103x6STM32F103x8STM32F103xB等,它是32位基于ARM核心的带闪存的、USBCAN总线的微控制器,它有七个16位定时器、2ADC9个通信接口。

内核方面,LPC213XARM7TDMI-S内核,而STM32 则是Cortex-M3?CPU

片内存储方面,LPC213X8/16/32kB 的片内静态RAM 32/64/512kB 的片内Flash 程序存储器。而STM32则有从32K字节至128K字节闪存程序存储器 ,从6K字节至16K字节SRAM

 

LPC有如下特征:

?? 通过片内boot 装载程序实现在系统编程/在应用编程(ISP/IAP)。单扇区或整片擦除时间为400ms

256 字节行编程时间为1ms

?? EmbeddedICE?RT 和嵌入式跟踪接口通过片内RealMonitorTM 软件对代码进行实时调试和高速跟

踪。

?? 1 个(LPC2131/2132)或2 个(LPC21388 10 位的A/D 转换器,共提供16 路模拟输入,每

个通道的转换时间低至2.44us

?? 1 10 位的D/A 转换器,可产生不同的模拟输出。(仅适用于LPC2132/2138

?? 2 32 位定时器/计数器(带4 路捕获和4 路比较通道)、PWM 单元(6 路输出)和看门狗。

?? 实时时钟具有独立的电源和时钟,可在节电模式中极大地降低功耗。

?? 多个串行接口,包括2 16C550 工业标准UART2 个高速I2C 接口(400 kbit/s)、SPITM 和具有

缓冲作用和数据长度可变功能的SSP

?? 向量中断控制器。可配置优先级和向量地址。

?? 小型的LQFP64 封装上包含多达47 个通用I/O 口(可承受5V 电压)。

?? 多达9 个边沿或电平触发的外部中断管脚。

?? 通过片内PLL100us 的设置时间)可实现最大为60MHz CPU 操作频率。

?? 片内晶振频率范围:130 MHz

?? 低功耗模式:空闲和掉电。

?? 可通过个别使能/禁止外部功能和外围时钟分频来优化功耗。

?? 通过外部中断将处理器从掉电模式中唤醒。

?? 单电源,具有上电复位(POR)和掉电检测(BOD)电路:

?? CPU 操作电压范围:3.0V3.6 V (3.3 V± 10)I/O 口可承受5V 的电压。

 

STM32有如下特征:

能够有单周期乘法和硬件除法

存储器

32K字节至128K字节闪存程序存储器

6K字节至16K字节SRAM

时钟、复位和供电管理

2.03.6伏供电和I/O管脚

上电 / 断电复位(POR / PDR)、可编程电压监测器(PVD)

内嵌416MHz高速晶体振荡器

内嵌经出厂调校的8MHz RC振荡器

内部40kHzRC振荡器

PLL供应CPU时钟

带校准的32kHz RTC振荡器

低功耗

睡眠、停机和待机模式

VBATRTC和后备寄存器供电

调试模式

串行线调试(SWD)JTAG调试接口

DMA

7通道DMA控制器

支持的外设:定时器、ADCSPII2CUSART

112位模数转换器,1us转换时间(16通道)

多达80个快速I/O

26/37/51/80个多功能双向5V兼容的I/O

所有I/O口可以映像到16个外部中断

多达6个定时器

多达316位定时器,每个定时器有多达4个用于输入捕获 / 输出比较 / PWM或脉冲计数的通道

216位看门狗定时器(独立的和窗口型的)

系统时间定时器:24位自减型

多达7个通信接口

多达2I2C接口(SMBus/PMBus)

多达3USART接口,支持ISO7816LINIrDA接口和调制解调控制

多达2SPI同步串行接口(18兆位/)

 

 

系统分类: 单片机   |   用户分类: STM32   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(3548)    回复(21)  

投一票您将和博主都有获奖机会!

最新评论

  • KFC

    2008-7-23 0:55:27

    嗯,总结得不错,呵呵。加油!

  • hgfhjkfg

    2008-7-24 8:54:38

    嗯,likee真不错,加油写更多的文章

  • kofsmugy

    2008-7-24 14:18:02

    据了解,似乎STM32已经有存储容量达到256K字节的产品出现! 另外,就二者做比较而言,楼主的意见是孰胜孰劣呢?

  • huanan_

    2008-7-24 15:28:51

    STM32内核是先进,但是其他方面就不见的了

  • likee

    2008-7-24 16:58:16

    增强型的STM32有,增强型的STM32有CAN总线,有USB,用于一些总线控制的场合还是相当好的。

  • likee

    2008-7-24 16:59:06

    STM32的价格不知道怎么样,我还没有买过。不过内部资料还是相当不错的。

  • chwb

    2008-7-25 21:42:18

    你知道的仅是皮毛!lpc系列最大的特点是是什么?你知道吗。且两者是不同的核,基本上没有什么可比性 !~

  • likee

    2008-7-26 0:00:27

    请问楼上,技术交流,并不需要动气。

  • likee

    2008-7-26 0:02:09

    LCP封闭小,功耗较低,可用于小型系统,也可以用于通信网关,低端成像等产品中,而多外部中断也适用于工业控制及医疗。但是不管外有何特点,都与内部资源有关的,不是吗?

  • likee

    2008-7-26 0:03:14

    不同核的内部资源也可以比较一下,并没有错。

  • zhangyz002

    2008-7-28 10:09:58

    chwb真没有道德。有本事你自己总结。技术创新是怎么 来的知道吗?

  • chwb

    2008-7-28 17:14:29

    你只不过是把2者的特征罗列出来,根本谈不上总结: cortex-m系列针对的对象是什么?arm7tdmi-s针对的又是什么?cortex-m3性能比arm7高,高在哪里?lpc内部的flash工艺是不是比较有特色?你可以回答这些问题吗? cortex-M针对价格敏感的应用场合,主要是replace 8/16bit的市场,性能大概是1.25MIPS/MHZ,arm7tdmi-s主要是老的核,且与stm32不同的架构,为0.95mips/mhz,为什么比较快?因为它是改进型的主要是低成本的32bit系统,V4的版本,现在优势已经不明显,你说你拿一个老家伙和一个年轻人比体力,有优势吗? 为什么呢?你自己可以去查,但是可以提醒你,因为cortex-m是改进型的哈佛结构,多了分支预测,在运行for等语句的时候有优势,故有一定的优势。 stm32与lpc213*系列除了核不同以外,还有一个问题,就是flash的读写速度是最快的,如果你有兴趣的话可以移植一下os,同样的代码,stm32比lpc213*要慢上0.6倍的时间,这个就是lpc arm的特点,记住一点:stm32运行于72mhz,lpc213*在60mhz,如果一样的速度,stm32更吃亏!暂时说这些! 回ls的,我在为国家的搞创新研究的时候,where are you?

  • likee

    2008-7-28 23:28:46

    chwb高手!很高兴得到你的指点。知识永无止境,我还需要不停地探索。 Thanks for giving me directions,I will try my best to study and study .

  • chwb

    2008-7-29 13:25:39

    You'r welcome!~I maybe give you some misapprehension ago. don't remember it !~ I have designed using ARM for more than 6 years .Thanks

  • likee

    2008-7-29 14:17:32

    HeHe,I contact C language only for about two years, do not mention ARM.

  • 摇篮325

    2008-7-29 23:24:37

    chwb确实是高手,开发ARM六年多!!!

  • zangzd002

    2008-8-2 18:44:11

    嗯,不过总结得还算好啦!

  • wgwork

    2008-9-13 20:29:05

    还有一个问题,就是lpc213*系列flash的读写速度是最快的--不敢苟同,目前地球人生产的nor型flash在小于24Mhz时的读写速度都是一样的,大于24Mhz时关键是缓冲如何处理,stm23也是有缓冲的, 同样的代码,stm32比lpc213*要慢上0.6倍的时间,我想这话您应该这么说就对了:同样的代码,stm32用的时间是lpc213*的0.6倍。arm公司的职员再不计也比您的6年使用arm的经验要强不止百倍。,不可能呢么多人鼓捣了这么长时间整出来的cortex-m3在操作系统代码的运行上还不如v4版本的arm7,即使他的flash缓存设计的好又怎么样啊,arm7的中断性能和cortex-m3相比差的不是0.6倍的关系,而是几个数量级,至于其他指令,随便举个整数乘除的例子,cortex-m3一个指令搞定,arm7就需要一大堆了,这样的例子对于这两个架构的arm的对比真是举不胜举,太多了。lpc的flash读写的特色是两个缓冲区轮番上阵,虽然》24Mhz是有等待周期,但基本上用不着等待,基本上是贼不走空,接近了在ram中执行的速度;而stm32的flash读写也有缓冲,但没有lpc设计的出色,72mhz是要设置2个时钟的等待,但也不是每次都等,就是恰好缓冲区中没有的时候,需要等待,综合说来在高时钟频率时,lpc和stm32到底谁更快,还真不好说,要看具体的应用。但是有一点是肯定的,就是stm32实时性无论在什么场合都要比lpc强多了。 另外还想说一点,时间不完全等于能力,路边的石头过了100年以后,他还是石头。

  • wgwork

    2008-9-13 20:30:25

    lpc213*系列flash的读写速度是最快的--不敢苟同,目前地球人生产的nor型flash在小于24Mhz时的读写速度都是一样的,大于24Mhz时关键是缓冲如何处理,stm23也是有缓冲的, 同样的代码,stm32比lpc213*要慢上0.6倍的时间,我想这话您应该这么说就对了:同样的代码,stm32用的时间是lpc213*的0.6倍。arm公司的职员再不济也比您的6年使用arm的经验要强不止百倍。,不可能呢么多人鼓捣了这么长时间整出来的cortex-m3在操作系统代码的运行上还不如v4版本的arm7,即使他的flash缓存设计的好