¿Por qué los microcontroladores tienen tantas funcionalidades a la vez?

5

Siendo bastante nuevo en el campo de la electrónica, y como científico informático, me parece un poco extraño que casi todos los microcontroladores con los que me he topado hasta ahora estén equipados con:

  • Temporizadores múltiples, con múltiples modos de disparo
  • PWM multicanal
  • ADC multicanal
  • Varios protocolos de comunicación soportados por hardware
  • Varios pines de interrupción externos
  • EEPROM
  • A veces DAC y comparadores analógicos

Me parece, al menos para mí, un poco inútil atascar todo este equipo especializado (incluso a través del uso común) dentro del microcontrolador, si solo uso 1/50 de él. Incluso si quisiera, solo podría usar, por ejemplo, una décima parte, ya que los pines a menudo se asignan a muchas de estas funciones a la vez.

  • ¿Por qué están bloqueados, es decir, cuál es el argumento de no solo usar chips externos o incluso solo implementaciones de software?
  • ¿Hay chips de procesamiento tipo ATMega, es decir, chips con mucha potencia de procesamiento en lugar de PWM, ADC, etc.?
pregunta Skeen

4 respuestas

15

Esos periféricos son necesarios para la mayoría de las aplicaciones de microcontroladores en el mundo real, no todos, pero omitir cualquier subconjunto disminuiría el mercado para el microcontrolador. Por ejemplo, la familia de microcontroladores Scenix, que era muy rápida pero tenía periféricos duros muy limitados, fue un fracaso del mercado. Eso es realmente una mala noticia para aquellos de nosotros encargados de especificar los microcontroladores: un rediseño completo para mantener sus productos en marcha (bueno, tal vez sea una buena noticia si es que reemplaza a la persona que especificó el micro de bichos extraños y luego pagó para limpiar) A alguien el desastre que dejaron, pero eso tampoco es muy divertido). Gran parte del área en el chip está ocupada por la memoria y la almohadilla / controladores de unión y la CPU, por lo que esos pequeños periféricos de hardware son bastante menores.

Si necesita más capacidad de procesamiento, deje atrás el mundo de los micros de 8 bits y muévase a uno de los núcleos ARM de 32 bits que generalmente se utilizan en situaciones similares a los microcontroladores pero tienen más El área de chip dedicada al procesador y, a menudo, a la memoria. O un DSP o FPGA puede ofrecer órdenes de magnitud más poder de procesamiento, adecuado para procesamiento de video, audio de alta calidad, instrumentación de alto nivel y adquisición de datos, etc. Como es, la potencia de procesamiento de los micros modernos de 8/16 bits no es tan mala y, a menudo, lo "malgastamos" utilizando un lenguaje de alto nivel para obtener otras ventajas (desarrollo y creación de prototipos más rápidos, uso de bibliotecas disponibles comercialmente, como pilas de protocolos), en lugar del tedioso código personalizado hecho a mano en el ensamblaje.

    
respondido por el Spehro Pefhany
8

Creo que hay dos razones principales.

La primera razón es que el costo de desarrollo y prototipo de un microcontrolador es enorme, tanto que los miembros de gama baja de la línea de productos suelen ser el mismo hardware que los modelos de gama alta, solo con ciertas funciones desactivadas o no especificado. La mayoría de las veces es más económico hacer un chip que se dirija a muchos mercados en lugar de muchos que cada uno apunta a un mercado pequeño.

La segunda razón es que los microcontroladores están diseñados para control , no para procesar. Por lo general, lo que está controlando tendrá cierta capacidad de detección analógica y algún mecanismo de control analógico. Los sensores pueden conectarse a los ADC o (si tienen componentes electrónicos integrados) pueden comunicarse a través de SPI o I2C. El mecanismo de control podría ser accionado por un DAC o un PWM. Un paradigma popular en los sistemas de control, control distribuido , involucra a muchos sistemas de control pequeños que se comunican entre sí. Ahí es donde un protocolo de mayor alcance como CAN es útil. Finalmente, los temporizadores y las interrupciones externas son útiles para todo tipo de cosas, e incluso las computadoras de propósito general dependen en gran medida de ellas.

Los componentes externos costarían más, ocuparían más espacio en el tablero y serían menos convenientes desde el punto de vista logístico. También deberías preocuparte por la compatibilidad y la fiabilidad. La integración del sistema no es trivial. La emulación de estas funciones en el software (también conocido como "bit banging") no suele ser factible, ya que requeriría un procesador mucho más rápido, especialmente si desea utilizar más de una función a la vez. Eso significa más costo y más consumo de energía. Imagine intentar crear una función PWM de 1 MHz en una CPU de 50 MHz, por ejemplo. Después de la sobrecarga de la interrupción del temporizador y las ramas condicionales, tendrías suerte si te sobran más de un par de docenas de ciclos para hacer todo el trabajo.

Si desea un chip que esté más enfocado en la capacidad de procesamiento, pruebe un DSP o un microprocesador real.

    
respondido por el Adam Haun
5

Si está ejecutando un programa en la CPU, ¡ya está utilizando el 90% del chip!

Los contadores y UART / SPI, etc., son piezas de hardware relativamente triviales que ocupan muy poca área de chips. Los ADC y DAC tal vez un poco más, los PWM son solo contadores, por lo que está pagando precios de nivel de ruido para la mayoría de los periféricos.

Al menos, por su silicio. Los pines que usan son otra cuestión, así que elija el paquete de recuento de pines más pequeño que haga su trabajo.

    
respondido por el Brian Drummond
2

Maximiza la participación de mercado disponible para una parte al tiempo que minimiza el costo de desarrollo y soporte. Además, en términos relativos, un bloque I2C o SPI es un área bastante pequeña.

Es mejor para ellos poner a su equipo de desarrollo en una parte que incluya un montón de funciones que puedan adaptarse a todas las aplicaciones diferentes, que intentar hacer toneladas de partes con conjuntos de características muy específicas.

Mientras estás en el mundo de los microcontroladores, casi siempre verás el proceso acompañado de un "jazz" que encaja con el lugar donde creen que debería estar en el mercado. Comenzando con MCU de 8 bits y subiendo a los procesadores ARM de propósito general.

Una vez más, sin embargo, el área que ocupan esas funciones periféricas es pequeña en comparación con el área que ocupa el núcleo del procesador (bueno, quizás el ADC tenga algo de área). No es como si arrancaras esas secciones, entonces realmente podrías hacer procesadores más potentes.

    
respondido por el Some Hardware Guy

Lea otras preguntas en las etiquetas