¿Cuál es el punto de corte real en términos de la compensación entre costo y rendimiento para seleccionar microcontroladores de 32 bits?
En otras palabras, con el auge y el dominio de las arquitecturas ARM, ¿por qué seguimos usando microcontroladores de 8 y 16 bits? ¿Siguen siendo mucho más baratos?
Entiendo que los dispositivos de gama baja no necesitan los recursos ofrecidos por arquitecturas más grandes y complejas. Sin embargo, ¿cuál es la verdadera motivación para seguir usándolos si los costos parecen converger hacia el mismo rango?
microcontroller
arm
cost
Bruno Morais
fuente
fuente
Respuestas:
Quizás hace un año, hubo una diferencia significativa entre los 8 bitters de gama baja y los microcontroladores más baratos de 32 bits. Ya no es el caso.
Según el precio a granel de Digi-Key, puede obtener un PIC10F200 de 8 bits por 35ȼ en cantidades de 2500 en un paquete SOT-23-6. Obtiene un CY8C4013SXI-400 (ARM Cortex-M0) de 32 bits para 36ȼ en 2500 cantidades en un paquete SOIC-8. (El precio a granel de Digi-Key no es realista en términos de lo que los fabricantes realmente pagan, lo que probablemente sea mucho menos, pero creo que es válido para una comparación aproximada de precios entre diferentes productos para cantidades similares).
Entonces el OP es correcto, están convergiendo.
Entonces, ¿por qué no se usan más los chips de 32 bits? Bueno, como dije en mi primer párrafo, esta paridad de precio y tamaño solo ocurrió en el último año o 18 meses. Y todavía tienen un largo camino por recorrer antes de que haya suficientes fichas para ser competitivos.
De los 6875 chips ARM disponibles de Digi-Key, solo hay cuatro en stock con precios por cantidad inferiores a un dólar. Cuatro . Mientras tanto, hay cientos de chips de 8 bits por debajo de un dólar para que los ingenieros elijan.
Pero digamos que había al menos unas pocas docenas de micros de 32 bits de gama baja disponibles. ¿Serían elegidos automáticamente sobre los de 8 bits?
En primer lugar, debe informar a los ingenieros sobre ellos. Siempre hay mucha resistencia al cambio. Nuevas cosas que aprender: desde el punto de vista del hardware, aprender a incorporar el nuevo chip en un circuito. Hay nuevas herramientas, como programadores en circuito, nuevos compiladores, etc. Para los ingenieros de firmware, aprender a usar un nuevo conjunto de periféricos y temporizadores (principalmente diseños de registro y significados de bits).
32 bits es bueno y todo eso, pero a menos que uno necesite hacer muchos cálculos pesados, ¿cuál es el punto? Si solo tiene cuatro pines GPIO, acceder a ellos internamente como un registro de 32 bits no ofrece ninguna ventaja sobre el uso de un registro de 8 bits.
Creo que el consumo de energía siempre va a estar a favor de los micros de 8 bits.
Por ejemplo, el PIC10F200 extrae 175 µA funcionando a 4 MHz y 2v y 100 nA en modo de suspensión. El CY8C4013SXI-400 extrae aproximadamente 800 µA funcionando a 4MHz y 2v y 1 uA en modo de suspensión. (La hoja de datos para el CY8C4013SXI no tenía números para 4 MHz o 2v, por lo que tuve que hacer algunas estimaciones; la hoja de datos dice que dibuja 2 ma @ 6 MHz y 3.3v).
Entonces, el BRAZO consume 4.5 veces más corriente cuando está despierto y 10 veces más cuando duerme. No parece mucho, pero es la diferencia entre correr en una celda de moneda durante 3 meses o durante un año. (Supongo que ambos microcontroladores están en su mayoría sincronizados, actualizando puertos, etc. y no haciendo cálculos realmente pesados. Si este es el caso, y el micro de 8 bits tiene que hacer una gran cantidad de aritmética de varios bytes durante un período prolongado con el tiempo, pierde parte de su ventaja).
Es interesante que el ARM dibuje aproximadamente cuatro veces más corriente que el 8-bitter, y a su vez tiene registros internos y rutas de datos que son cuatro veces más anchos. No creo que sea una coincidencia. Para CMOS, el consumo de energía es aproximadamente proporcional a la cantidad de transistores que se conmutan, y el ARM obviamente está haciendo mucho más por instrucción ejecutada.
A medida que más proveedores de ARM traigan chips de gama baja, no me sorprendería que proveedores como Microchip redujeran aún más sus precios. En cualquier caso, con los precios más o menos iguales, paquetes de tamaño similar, pero muchos menos chips de 32 bits para elegir, creo que los microcontroladores de 8 bits seguirán existiendo por un tiempo, especialmente porque has Decenas de miles de ingenieros se familiarizaron con ellos
fuente
Tres puntos principales:
50 ¢ cuando ordena 10,000 fichas es bastante dinero. Aún más cuando estás ordenando 100,000 chips.
Puede obtener chips de 8 bits considerablemente más pequeños que los chips de 32 bits, como el PIC10 que está disponible en un paquete SOT23-6.
Los chips de 32 bits, porque generalmente se sincronizan más rápido y hacen más, consumen mucha más energía que un pequeño chip de 8 bits. Las baterías se agotan más rápido, los sistemas de alimentación deben proporcionar más corriente (y, por lo tanto, ser más costosos), etc.
Después de todo, ¿por qué comprarías un gigante para tomar una taza de azúcar al lado?
fuente
Las aplicaciones uC que he desarrollado para productos comerciales casi nunca manejan tamaños de datos mayores a 8 bits; por lo tanto, incluso si los bitters de 32 bits fueran el mismo precio que los de 8 bitters, todavía no habría beneficio Como alguien más dijo, buscamos lo que es familiar, para poder resolverlo más rápidamente. Sin embargo, el último que desarrollé resultó llevar el PIC16 al límite en todos los sentidos, pero eso no fue por el tamaño de los datos. Si hago algo así, entonces realmente debería aprender ARM.
fuente
Esperaría que los chips ARM se hagan cargo de la mayoría de las funciones donde algo se comporta como una "computadora". Por otro lado, muchos microcontroladores de 8 bits se acostumbran a hacer cosas que podrían hacerse con un dispositivo lógico programable relativamente simple o un número moderado de compuertas, pero que en realidad pueden hacerse más baratos y / o con menos consumo de corriente usando un Micro de 8 bits simple. Cuando se diseñan aplicaciones más complicadas, a menudo es más fácil usar un micro de 32 bits que uno de 8 bits, pero si el propósito completo de un chip es, por ejemplo, observar y eliminar el rebote de una determinada entrada y, si sube, comenzar a generar 200 pulsa en una determinada salida a intervalos de 1 ms, luego 100 a intervalos de 2 ms, luego 100 a 3 ms, luego pausa durante 100 ms, y sigue haciendo eso hasta que la entrada baja, diseñar el código para eso en realidad puede ser más fácilen un micro de 8 bits que en uno de 32 bits. La diferencia de costo entre micros de 8 y 32 bits puede que ya no sea suficiente en muchos casos para justificar el gasto de un esfuerzo de ingeniería adicional para hacer que un proyecto "encaje" en un micro de 8 bits, pero en los casos en que una parte de 32 bits no No ahorre ningún esfuerzo de ingeniería, no hay razón para gastar ni un centavo extra.
fuente
Si bien estoy de acuerdo en que el costo de la CPU y el consumo de energía son las principales razones, una consideración más que no he visto enumerada aquí todavía es el espacio de PCB. Para muchos tipos de sistemas integrados, como, por ejemplo, una báscula de baño electrónica, no hay mucha necesidad de muchas E / S, no hay beneficio para un tamaño de bus más grande y ningún beneficio para un procesamiento más rápido. Sin embargo, no esun beneficio para un paquete más pequeño con menos pines porque hace que el diseño y el enrutamiento de una placa de circuito impreso sea más simple y, a menudo, más pequeño. Si una placa se puede diseñar como una placa de 2 capas en lugar de una placa de 4 capas, hay un considerable ahorro de costos, y los recuentos de clavijas más pequeños que a menudo vienen con procesadores de 8 bits tienden a facilitar ese ahorro más fácilmente que 32- procesadores de bits que generalmente tienen más pines y paquetes físicamente más grandes.
fuente
Incluso dentro del mundo de 8 bits, se sabe que los tipos más nuevos tardan mucho tiempo en hacerse cargo de los tipos más antiguos: vea que MCS51 sigue vivo en sus nichos y que MCS48 aún se encuentra en lugares inesperados.
En muchos casos, el cambio no ocurre porque no aporta ningún valor adicional y conlleva el costo de aprender una nueva tecnología que aún no ha demostrado estar allí para quedarse y / o se espera que siga siendo un objetivo en movimiento (lo que hace que ¡Es interesante para las personas que desean centrarse en la tecnología MCU pero molesto para las personas que desean centrarse en su aplicación y no constantemente reparar y volver a probar el software de producción para adaptar la cosecha ARM de este año!). Para algunos, un componente que ya no se desarrolla es obsoleto, para otros finalmente se ha vuelto estable , y aunque puede necesitar soluciones para corregir errores, al menos proporciona una plataforma estable para estos. El flujo de lava no siempre es el antipatrón por el que se rompe, tiende a hacer que las montañas se mantengan firmes.
fuente