Kinetis vs STM32

8

Estoy buscando una nueva aplicación de controles industriales, y de mis búsquedas la he reducido a 2 microcontroladores que parecen ajustarse bien a la aplicación. El STM32 y el Kinetis. Ambos parecen muy capaces de hacer el trabajo y ya he usado el STM32 en una aplicación diferente, un tanto no relacionada. Me gusta la familia STM32, ya que existe una selección tan amplia de configuraciones que son compatibles con la mayoría de las partes. Sin embargo, el Kinetis parece ser un poco más para el procesador / memoria inteligente.

Entonces, mis preguntas a cualquier persona con un poco más de experiencia con estas preguntas son ... ¿Cuáles son algunas de las ventajas y desventajas de cada familia?

Estoy bastante seguro de que no hay una opción incorrecta aquí para mi aplicación, pero me gustaría obtener más detalles de alguien que no sea Freescale y ST. Me doy cuenta de que los detalles de mi aplicación pueden ser un factor aquí, pero es una aplicación muy amplia en cuanto a funcionalidad. Nuestro mayor límite que nos ha empujado a cambiar a un controlador diferente es la memoria (~ 16k RAM 256k flash).

Cualquier información sería muy apreciada. Gracias

    
pregunta radix07

5 respuestas

6

Del STM32 (ST Microelectronics) y la familia Kinetis (Freescale), solo he trabajado en la familia de procesadores STM32 y, por lo tanto, podré detallar mi experiencia con el STM32 y espero que alguien más pueda hacer lo mismo. Lo mismo para el Kinetis, así que puedes contrastar los dos. Es posible que esta lista no esté completa y simplemente se base en mi experiencia.

PROS:

  1. ST proporciona un conjunto masivo de bibliotecas para cada uno de sus Procesadores que obtienes gratis. Estas bibliotecas contienen una masiva Lista de funciones requeridas para hacer la mayor parte del nivel básico bajo. interactuando con el hardware y puede hacer su vida mucho más simple.

    e.g void GPIO_Init (GPIO_TypeDef * GPIOx, GPIO_InitTypeDef * GPIO_InitStruct) Esto inicializa el periférico GPIOx de acuerdo con Los parámetros especificados en el GPIO_InitStruct.

    Simplemente rellene la estructura GPIO (y hay proyectos de ejemplo para guiarlo a través de este proceso), y llame a la función GPIO_init. Esto le ahorra tener que buscar al menos 4-5 registros y calcular a cabo lo que cada bit debe ser.

  2. Sus microcontroladores tienen la funcionalidad de protección de lectura, que puede ayudarlo a proteger su IP hasta cierto punto, si no completamente. Hay toneladas de microcontroladores por ahí, que realmente no hacen esto muy bien.

  3. Tienen una familia de microcontroladores de baja potencia, su L1 serie, que tienen varios niveles diferentes de características de ahorro de energía que se puede activar / desactivar cuando sea necesario.

  4. Aunque hay muchos fabricantes que ahora están haciendo su En las versiones de los núcleos ARM CM3, los chips de la serie F de ST han tenido algunos Revisiones y aunque no están completamente libres de errores, ahora son bastante madura.

  5. Casi todas las variantes en las que he trabajado tienen toneladas de temporizadores y otros periféricos y nunca podrás tener suficiente de esos. :)

  6. Para comenzar, tienen algunos proyectos de ejemplo que se pueden programar en Sus tableros de evaluación, casi siempre te dan de forma gratuita. Aunque pienso la mayoría de los otros fabricantes harían lo mismo.

CONS:

  1. Aunque las bibliotecas antes mencionadas definitivamente ayudan mucho, Sin embargo, algunos de los nombres de funciones no son intuitivos y se necesita una mientras que para obtener su cabeza alrededor de sus convenciones de nombramiento. Esto no es Es cierto para toda la biblioteca, pero hay un poco de código, que no está bien comentado, y realmente tendrás que leerlo para figurar lo que está haciendo.

  2. Si está utilizando sus bibliotecas y desea activar MISRA revisando su proyecto, obtendrá toneladas de errores / advertencias como su código no parece ser compatible con MISRA. Necesitaras encuentre una manera de excluir sus bibliotecas de su cuenta MISRA. Hay maneras de evitar esto, pero requieren un poco de trabajo para hacerlo.

  3. La documentación de ST para los procesadores en los que he trabajado es una poco pobre Sus hojas de datos no están muy bien escritas. los La información no está en un documento central / principal. Ahi tienen lo que ellos Llame a un manual de referencia, toneladas de notas de aplicación y al menos una ficha de datos. Tienes que realmente rastrear a través de estos documentos a veces para encontrar la información que buscas.

    A menudo describen los puertos GPIO y una configuración recomendada para uno de los bits
    tal vez descrito 50 páginas más tarde.

Eso es todo lo que puedo pensar en este momento, espero que esto te dé una idea de los productos STM32. Agregaré más, si puedo pensar en otra cosa.

Una sugerencia sería obtener una placa de evaluación para ambos tipos de microcontroladores (Kinetis one y STM32 one), que tienen los periféricos que busca y juegue con ellos.

Eso te dará una muy buena idea de cuál se adapta mejor a tus necesidades.

    
respondido por el IntelliChick
3

K70 tiene silicio muy defectuoso. A menudo, los periféricos que ha descrito solo tienen funcionalidad lite; por ejemplo, es bueno usar la memoria caché con memoria externa, pero si usa esta memoria con DMA, deberá vaciar la memoria caché manualmente. K70 tiene un controlador LCD, pero es casi imposible lograr una resolución mejor que 480x272, lo cual no es mejor que con MCU estándar. El K70 tiene un generador de reloj monstruo, pero solo unos pocos periféricos pueden usarlo en lugar del reloj del bus.
¡Lo más importante es que he encontrado que la administración complicada de bajo consumo de energía simplemente no funciona!

    
respondido por el Vittorio Iovannelli
2

Supongo que está comparando el Kinetis con los procesadores STM32F4 Cortex-M4. En realidad, tampoco he usado, pero los he estado buscando para un posible uso en un proyecto que se avecina. También hay familias de dispositivos M4 disponibles de TI-Stellaris y anunciadas por Atmel y NXP, muchas de las cuales incluyen el procesador de punto flotante, cargas de puertos serie y temporizadores.

El soporte en términos de software para los procesadores (Freescale y ST) se ve bien con Freescale que proporciona una biblioteca de interfaz y un RTOS libre de regalías para sus partes. ST proporciona un conjunto de bibliotecas de interfaz que permiten la configuración y el uso de sus procesadores y periféricos.

Los dispositivos

ST parecen ganar la guerra de velocidad de procesamiento con una velocidad cotizada de 168MHz usando (IIRC) un bus de memoria amplia para el programa flash. Esto puede o no ser importante para usted.

Las partes Kinetis son las más maduras, ya que han estado disponibles durante casi un año. Como resultado, ahora hay una gran familia de dispositivos en producción con una amplia gama de interfaces y conjuntos periféricos. Las partes ST solo han estado disponibles durante aproximadamente un mes, aunque sí lanzaron varias partes al mismo tiempo que anunciaban a la familia.   Su gama de piezas aumentará de la misma manera que su familia Cortex-M3.

    
respondido por el uɐɪ
2

Mi experiencia con STM32 y Kinetis K70 se reduce a ejecutar uClinux en estos procesadores (información detallada sobre estos puertos uClinux disponibles aquí ).

Si pretende utilizar RAM externa en su aplicación, K70 sería una mejor opción, en mi opinión.

    
respondido por el vladimir khusainov
1

Hace poco respondí a una consulta de un cliente estrechamente relacionada con este hilo. Con suerte, estos comentarios serán útiles.

+++++++++++++

Para resaltar las diferencias entre K70 con STM32F2:

  • K70 es Cortex-M4, mientras que STM32F2 es Cortex-M3. En es decir, K70 proporciona FPU de hardware en el chip y Unidades DSP.

  • K70 puede ejecutar el núcleo Cortex-M a 150MHz (aunque los dispositivos disponibles actualmente están limitados a 120MHz). STM32F2 está limitado a 120MHz.

  • K70 proporciona interfaces DDR y NAND Flash en el chip, permitiendo densidades muy altas para dispositivos de memoria externos.

  • K70 tiene caché en chip (2 cachés de 8 KB separados para I / D y Sistema de autobús). Este rendimiento realmente de arranque externo Recuerdos de una manera muy seria.

  • K70 proporciona varios mecanismos de seguridad para garantizar que el software no se puede copiar utilizando herramientas externas (los depuradores JTAG, etc).

  • K70 tiene un controlador LCD integrado, así como integrado interfaz táctil.

  • conjunto similar de interfaces de E / S, pero esto debe medirse contra los requisitos de aplicación específica.

En general, si está utilizando memoria externa en sus aplicaciones y / o necesita una interfaz GUI, K70 sería un claro ganador. También, K70 es más performante, en términos generales.

+++++++++++++

    
respondido por el vladimir khusainov

Lea otras preguntas en las etiquetas