Kinetis 与 STM32

电器工程 微控制器 控制系统
2022-01-15 02:57:36

我正在研究一种新的工业控制应用程序,从我的搜索中我将其范围缩小到 2 个看起来非常适合该应用程序的微控制器。STM32 和 Kinetis。他们看起来都非常有能力完成这项工作,我已经在另一个有点不相关的应用程序中使用了 STM32。我喜欢 STM32 系列,因为有如此广泛的配置可供选择,而且大部分都与引脚兼容。然而,Kinetis 看起来更适合降压处理器/内存。

所以我对任何对此有更多经验的人的问题是……每个家庭都有哪些优点和缺点?

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

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

4个回答

在 STM32 (ST Microelectronics) 和 Kinetis 系列 (Freescale) 中,我只研究过 STM32 系列处理器,因此,我将能够详细介绍我使用 STM32 的经验,并希望其他人也能为Kinetis,因此您可以将两者进行对比。此列表可能不完整,仅基于我的经验。

优点:

  1. ST 为您免费获得的每个处理器提供大量库。这些库包含大量与硬件进行基本低级接口所需的函数列表,可以让您的生活变得更简单。

    eg 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 一种)获取评估板,它们具有您所追求的外围设备,并与它们一起玩。

这会给你一个非常好的感觉,哪个最适合你的需要。

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

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

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

ST 设备似乎以 168MHz 的引用速度赢得了处理速度之战,使用 (IIRC) 到程序闪存的宽内存总线。这对您来说可能重要也可能不重要。

Kinetis 零件更加成熟,已经上市将近一年。因此,现在有相当多的设备系列正在生产,具有广泛的接口和外围设备集。ST 零件才推出了大约一个月,尽管他们确实在宣布该系列的同时发布了许多零件。他们的零件范围将以与 Cortex-M3 系列相同的方式增加。

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

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