sw笨笨的STM32学前班教程之一:为什么是它

koujuan   2009-1-30 21:47 楼主
经过几天的学习,基本掌握了STM32的调试环境和一些基本知识。想拿出来与大家共享,笨教程本着最大限度简化删减STM32入门的过程的思想,会把我的整个入门前的工作推荐给大家。就算是给网上的众多教程、笔记的一种补充吧,所以叫学前班教程。其中涉及产品一律隐去来源和品牌,以防广告之嫌。全部汉字内容为个人笔记。所有相关参考资料也全部列出。 

教程会分几篇,因为太长啦。今天先来说说为什么是它——我选择STM32的原因。

回复评论 (15)

为什么是它

我对未来的规划是以功能性为主的,在功能和面积之间做以平衡是我的首要选择,而把运算放在第二位,这根我的专业有关系。里面的运算其实并不复杂,在入门阶段想尽量减少所接触的东西。
不过说实话,对DSP的外设并和开发环境不满意,这是为什么STM32一出就转向的原因。下面是我自己做过的两块DSP28的全功能最小系统板,在做这两块板子的过程中发现要想尽力缩小DSP的面积实在不容易(目前只能达到50mm×45mm,这还是没有其他器件的情况下),尤其是双电源的供电方式和1.9V的电源让人很头疼。
后来因为一个项目,接触了LPC2148并做了一块板子,发现小型的ARM7在外设够用的情况下其实很不错,于是开始搜集相关芯片资料,也同时对小面积的AVR和51都进行了大致的比较,这个时候发现了CortexM3的STM32,比2148拥有更丰富和灵活的外设,性能几乎是2148两倍(按照MIPS值计算)。正好2148我还没上手,就直接转了这款STM32F103。
 
与2811相比较(核心1.8V供电情况下),135MHz×1MIPS。现在用STM32F103,72MHz×1.25MIPS,性能是DSP的66%,STM32F103R型(64管脚)芯片面积只有2811的51%,STM32F103C型(48管脚)面积是2811的25%,最大功耗是DSP的20%,单片价格是DSP的30%。且有更多的串口,CAP和PWM,这是有用的。高端型号有SDIO,理论上比SPI速度快。
 
    由以上比较,准备将未来的拥有操作系统的高端应用交给DSP的新型浮点型单片机28335,而将所有紧凑型小型、微型应用交给STM32。
——SW笨笨,2009年春节假期
点赞  2009-1-30 21:49

地址

笨笨的教程发布在三个地方,因为不会所以有错误是必然的,希望大家帮忙指正。

笨笨的QQ空间
http://user.qzone.qq.com/12180295/infocenter

StmFans思蜕盟论坛(豆皮的主站)
http://www.stmfans.com/bbs/frame.php?frameon=yes&referer=http%3A//www.stmfans.com/bbs/%3Ffromuid%3D3

21ic的ST MCU论坛
https://bbs.eeworld.com.cn/club/bbs/bbsView.asp?boardid=49
点赞  2009-1-31 11:02

期待

                                 期待
点赞  2009-3-17 10:44

支持

                                 也在弄DSP2812和STM32中,再问一下哥们什么专业啊,我是电子信息工程的。
点赞  2009-3-27 22:30

我选它就一个原因

cortex m3 集成了 硬件乘法器和除法器

仅此而已,因为要求实时性的算法。 DSP也不错,特别是28016,价格和性能都很好。不过,用习惯了IAR(51,avr,430,arm都用这一个平台),也就不想dsp了。 
点赞  2009-3-27 23:23
我的选择原因

国内使用它的人多,国内做STM32推广的公司多,技术支持好些,学习的资料多,ST官方提供权威的中文资料,可以看懂!!以上个人意见!
点赞  2010-2-24 17:29
                                 期待
点赞  2010-2-24 23:02
                                 相当期待
点赞  2010-2-24 23:13
                                 国内使用它的人多,国内做STM32推广的公司多,技术支持好些,
点赞  2010-4-10 15:00


DSP和M3是两种从构架和用途来讲都有很大差异的处理器,楼主能够用M3取代DSP的应用是因为对运算要求不高,是因为拿DSP去和M3的长处比较,是因为以前的设计使用了错误的器件。

M3擅长的,DSP基本都不擅长,DSP擅长的,M3也没法比,这里无所谓好坏,只看是否适合,楼主选M3的原因归结起来就一句话,并不是因为M3比DSP强,而是在楼主的应用领域,它比DSP更合适。STM32是MCU,关注控制,2811是DSP,关注运算。


也回一下6楼,虽然M3支持硬件除法和乘法,但只能说它有乘法和除法指令,并不能说它有硬件除法器和乘法器,此乘除法器和彼乘除法器是不同的,这种不同是在硬件逻辑上的实现而不是表现给用户的指令上的不同。学过计算机组成原理的都知道,所谓“硬件乘法器”和“硬件除法器”特指DSP中的那种矩阵式的乘除法器,其他的都是通过算法实现,即便是从硬件上实现,否则STM32就改叫DSP了,也就不卖这么便宜了。这种不同在处理大批量复杂运算上可以很明显的体现出来,这点对没有体验过DSP上FFT运算的人来说确实比较模糊。
点赞  2010-4-20 22:36

你说的两点有问题
1、
STM32是MCU,关注控制,2811是DSP,关注运算。
其实2811也不是纯粹的DSP,只是有DSP功能的MCU,我觉得它更像MCU多一些
2、你说M3没有硬件乘法器和除法器,只有指令,拜托你看看数据手册再来发言吧

上图来自周立功的“ARM白皮书——ARM Cortex-M3处理器简介”第六页

上图来自“Cortex-M3? Technical Reference Manual”31页
点赞  2010-4-21 10:42
11# kiton_law
你说的两点有问题
1、其实2811也不是纯粹的DSP,只是有DSP功能的MCU,我觉得它更像MCU多一些
2、你说M3没有硬件乘法器和除法器,只有指令,拜托你看看数据手册再来发言吧
22510
上图来自周立功的“A ...
拜托先学好英文再来,ARM白皮书里哪里说有“硬件除法器”了(不要和我说中文翻译的那个,我一般都不看中文的),白皮书里写的是“Hardware divide”---硬件除法,意思是M3核支持硬件做除法(而以前的ARM核除法是由软件实现的),但不代表它用的是“硬件除法器”,我前面说过“硬件除法器”“硬件乘法器”一般特指DSP中的硬件矩阵式乘除法单元。除此之外除法都是通过N位除算法实现的,而乘法是通过移位求和实现,这些算法可以在硬件内部完成,表现指令上还是单一的除法乘法指令,但这个就和DSP的硬件除法器完全不同了,不管是在结构上还是在运算能力上。

最直接的例子, DSP指令可以直接处理MAC类(求积并累加)操作,通常的微处理器不行吧,M3可以做单周期乘法指令,哇,猛然一看,好牛啊,单周期,但是我如果要写个矩阵相乘算法(大量连续求积求和),用M3实现,你还能说它的乘法牛吗?单周期,只是把其他所有东西都挡住然后看到的看上去很美的东西。

至于2811是不是纯粹的DSP,这个命题有点可笑,你觉得什么是纯粹的DSP?我认为包含了DSP的东西就能叫DSP。否则那我说白色的马不是白马,只能叫马,只不过它是白色的,是不是也可以?
点赞  2010-4-21 14:14
                                 不说别的,DSP有几条总线,M3有几条总线。
点赞  2010-4-21 14:50
拜托先学好英文再来,ARM白皮书里哪里说有“硬件除法器”了(不要和我说中文翻译的那个,我一般都不看中文的),白皮书里写的是“Hardware divide”---硬件除法,意思是M3核支持硬件做除法(而以前的ARM核除法 ...
你说的矩阵式乘法单元是乘法器和累加器的总和,我们说的只是乘法器,不要把硬件乘法器局限在DSP定义的范畴内,DSP内做的是乘法和累加两种运算,不要混淆概念,除了累加的部分,DSP内部的乘法器和m3的乘法器有区别吗,别跟我提FFT,我承认m3FFT算不过DSP
你举了白马和马的例子,我觉得你的逻辑有点可笑,按照你举的例子,白马应该是DSP,马是2811,因为DSP只是2811的一部分,我说马不都是白马有错吗?那么我说2811不是纯粹的DSP又哪里有问题
还有官方都说281x是DSC,你非说是DSP,又犯了马和马白的逻辑错误
点赞  2010-4-21 16:57

您还可以去TI的官网上看看,C2000系列是归在DSP分类下面还是MCU分类下
点赞  2010-4-21 17:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复