Kinetis和STM32


8

我正在研究一个新的工业控制应用程序,通过搜索,我将其范围缩小到2个看起来很适合该应用程序的微控制器。STM32和Kinetis。他们俩似乎都很有能力胜任这项工作,而且我已经在其他不相关的应用程序中使用了STM32。我喜欢STM32系列,因为有如此广泛的配置选择,大部分都与引脚兼容。但是,对于降压处理器/内存,Kinetis似乎更具优势。

因此,对于那些有更多经验的人,我的问题是……每个家庭的优缺点是什么?

我敢肯定,对于我的应用程序,这里没有完全错误的选择,但是我想从飞思卡尔和ST以外的人那里获得更多细节。我意识到我的应用程序的细节可能是这里的一个因素,但是就功能而言,它是一个非常广泛的应用程序。促使我们转向其他控制器的最大限制是内存(〜16k RAM 256k闪存)。

任何见解将不胜感激。谢谢


STM32F4具有带浮点和DSP的Cortex-M4,以及高达1MB的闪存和192 kB RAM。便宜的板子有几种有趣的外设。
莱昂·海勒

配置(相同的引脚排列不同的内存和处理能力)和成熟.. STM32是要走的路..
KTC

两个进入...一个离开。
joeforker

Answers:


6

在STM32(意法半导体)和Kinetis系列(飞思卡尔)中,我只从事STM32系列处理器的工作,因此,我将能够详细介绍我在STM32上的经验,并希望其他人也能做到这一点。 Kinetis,因此您可以将两者进行对比。此列表可能不完整,仅基于我的经验。

优点:

  1. ST为您免费提供的每个处理器提供了大量的库。这些库包含执行与硬件的大多数基本底层接口所需的大量函数,并且可以使您的生活变得更加简单。

    例如void GPIO_Init(GPIO_TypeDef * GPIOx,GPIO_InitTypeDef * GPIO_InitStruct),这将根据GPIO_InitStruct中的指定参数初始化GPIOx外设。

    只需填充GPIO结构(有示例项目可以指导您完成此过程),然后调用GPIO_init函数。这省去了您查找至少4-5个寄存器并弄清每位应该是什么的麻烦。

  2. 他们的微控制器具有读保护功能,可以在某种程度上帮助您保护IP,即使不是完全的话。那里有大量的微控制器,实际上做得并不好。

  3. 他们拥有L1系列低功耗微控制器系列,具有各种不同级别的省电功能,可以在需要时打开/关闭它们。

  4. 尽管现在有许多制造商正在生产其版本的ARM CM3内核,但ST的F系列芯片已进行了一些修订,尽管并非完全没有错误,但它们现在已经相当成熟。

  5. 我研究过的几乎所有变体都有大量的计时器和其他外设,而您永远无法拥有足够的这些。:)

  6. 为了让您入门,他们有一些示例项目可以编程到评估板中,几乎总是免费提供给您。尽管我认为大多数其他制造商也会这样做。

缺点:

  1. 尽管上面提到的库肯定有很大帮助,但是某些函数名称并不直观,需要花费一些时间来熟悉它们的命名约定。对于整个库而言,情况并非如此,但是其中有相当一部分代码却未得到很好的注释,您实际上必须阅读它才能弄清楚它在做什么。

  2. 如果您正在使用他们的库,并希望为您的项目打开MISRA检查,您将收到大量错误/警告,因为他们的代码似乎不符合MISRA。您将需要找到一种从MISRA检查中排除其库的方法。可以通过多种方法解决此问题,但是这样做需要一些工作。

  3. 我从事的ST处理器文档很差。他们的数据表写得不太好。该信息不在一个中央/主文档中。他们有所谓的参考手册,大量的应用笔记和至少一个数据表。有时您必须仔细浏览这些文档才能找到所需的信息。

    它们通常描述GPIO端口,并且
    可能在50页之后描述其中一位的建议设置。

这就是我目前能想到的,希望它能使您对STM32产品有所了解。如果我能想到其他任何事情,我会加更多。

一个建议是为两种类型的微控制器(Kinetis一种和STM32一种)获得一个评估板,这些微控制器具有您所需要的外围设备,并且可以使用它们。

那会给您一种真正最适合您需求的感觉。


1
我希望制造商不要让他们的库为所有内容定义和使用自己的标识符。配置GPIO端口需要查找手册中的所有功能寄存器,以了解所有不同模式的含义。能够直接使用该信息编写代码比必须先检查库及其文档以了解其定义方式会更有帮助。
supercat 2014年

@supercat看一下英飞凌的DAVE IDE。基本上,您可以通过GUI添加他们所谓的“ APP”,而DAVE则为您处理代码生成。

3

K70的硅片非常容易出错。您所描述的外围设备通常仅具有精简功能。例如,最好将缓存与外部存储器一起使用,但是如果将此存储器与DMA一起使用,则需要手动刷新缓存。K70具有LCD控制器,但几乎不可能获得比480x272更好的分辨率,这并不比标准MCU更好。K70具有一个怪兽时钟发生器,但是只有少数外围设备可以使用它代替总线时钟。
最重要的是,我发现复杂的低功耗管理根本行不通!


2

我假设您正在将Kinetis与STM32F4 Cortex-M4处理器进行比较。我也没有实际使用过,但一直在研究它们是否可以在即将到来的项目中使用。TI-Stellaris还提供了M4设备系列,并已由Atmel和NXP宣布推出,其中许多包括浮点处理器,串行端口和计时器。

飞思卡尔为它们的零件提供了一个接口库和免版税的RTOS,因此对处理器(飞思卡尔和ST)的软件支持看起来不错。ST提供了一组接口库,这些接口库允许配置和使用其处理器和外围设备。

ST设备似乎使用(IIRC)宽闪存总线连接程序闪存,以168MHz的报价赢得了处理速度之战。这对您可能并不重要。

Kinetis部件已经成熟了近一年。结果,现在有大量带有各种接口和外围设备的设备投入生产。ST零件只用了大约一个月,尽管它们确实在宣布家族的同时释放了许多零件。它们的零件范围将以与其Cortex-M3系列相同的方式增加。


STM32是供2年以上。只有F4超出了几个月,但F1 / F2已在那里2年以上。我们正在使用它..
KTC

我很清楚,基于STM32 M3的处理器已经存在了很长时间。这个问题是基于Kinetis零件(基于M4)的,所以我在比较可用的M4处理器系列。
uɐɪ

的确如此。但是,如果将M4与M3进行比较,其余块的差异就很小,这给了我信心。无论如何,ARM都是手臂,哪个版本都没有关系,因为它将由ARM本身进行审查
Ktc 2012年

2

我对STM32和Kinetis K70的经验归结为在这些处理器上运行uClinux(有关这些uClinux端口的详细信息,请参见此处)。

如果您打算在应用程序中使用外部RAM,我认为K70是一个更好的选择。


为了进一步详细说明,K70具有两个8KB缓存,一个用于I / D总线(本质上用于可用于运行代码的内存区域),另一个用于系统总线(针对“非代码”内存) )。从我们在uClinux上下文中看到的情况来看,缓存以某种严肃的方式帮助提高了整个系统的性能。
vladimir khusainov 2012年

1

我最近正在回答与该线程密切相关的客户查询。希望这些评论会有用。

+++++++++++

要强调K70与STM32F2之间的区别:

  • K70是Cortex-M4,而STM32F2是Cortex-M3。换句话说,K70提供了片上硬件FPU和DSP单元。

  • K70可以在150MHz下运行Cortex-M内核(尽管当前可用的设备限于120MHz)。STM32F2限制为120MHz。

  • K70提供了片上DDR和NAND闪存接口,从而为外部存储设备提供了很高的密度。

  • K70具有片上高速缓存(用于I / D和系统总线的2个独立的8KB高速缓存)。这确实非常严重地影响了外部存储器的性能。

  • K70提供了各种安全机制,以确保不能使用外部工具(JTAG调试器等)复制软件。

  • K70具有集成的LCD控制器和集成的触摸界面。

  • 类似的一组I / O接口,但这需要根据特定应用程序的要求进行衡量。

总的来说,如果您在应用程序中使用外部存储器和/或需要GUI界面,那么K70无疑是赢家。同样,一般来讲,K70的性能更高。

+++++++++++


K7x具有带PGA的16位ADC,而非STM32具有。
Mehmet Fide 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.