En general, los proveedores de microcontroladores colocan una gama de memoria en sus dispositivos que es adecuada para aplicaciones típicas. Por lo tanto, si solo necesita unos pines de E / S y un SPI en un dispositivo de tamaño reducido, es poco probable que encuentre algo que se envíe con 500 kBytes de Flash y 64 kBytes de RAM. Con dispositivos más grandes, que están más cerca de los paquetes de SoC, incluso el más pequeño es casi seguro que sea lo suficientemente grande, a menos que esté planeando hacer algunos cálculos serios como el procesamiento de imágenes.
En un entorno profesional, la clave para elegir el microcontrolador adecuado es utilizar datos históricos. Tendrá un registro de los otros proyectos que ha desarrollado y sabrá qué memoria y otros recursos de silicio se requieren para implementar cada característica. Sabrá lo que se espera que haga el producto y, por lo tanto, tendrá una buena lista de características y podrá calcular de forma rápida y precisa los recursos que el microcontrolador deberá proporcionar. Tratar de adivinar los requisitos de recursos a partir de una especificación de diseño inicial (desarrollada al comienzo del proyecto cuando la menor información sobre el sistema está disponible) no es confiable en el mejor de los casos y solo los ingenieros con mucha experiencia, que han desarrollado una solución integral La base de datos de datos históricos en sus propias cabezas, tendrá cualquier tipo de éxito en el uso de este método.
Muchas compañías han adoptado un enfoque 'ágil' tanto para el software como para el diseño electrónico, que implica la construcción de una 'biblioteca' de placas pequeñas y características (por ejemplo, placas RS-485, placas ADC, etc.) junto con placas de plataforma genéricas que alojan los microcontroladores , de forma similar al uso de un kit de desarrollo y complementos. Luego, se puede crear un prototipo de un producto rápidamente (en cuestión de horas) seleccionando y conectando el conjunto de paneles necesarios para las funciones. El software se ensambla de manera similar a partir de módulos de biblioteca y se puede portar y probar rápidamente. Una vez que se conoce el tamaño de la parte específica del hardware del código, generalmente es suficiente seleccionar la parte más pequeña que contendrá eso. La excepción es la mencionada anteriormente donde la funcionalidad del dispositivo involucra grandes datos o algoritmos muy complejos. Este método proporciona una precisa,
(Otra ventaja del enfoque ágil es que permite que el software y el desarrollo electrónico se realicen en paralelo, ya que el diseño electrónico es un ejercicio para integrar el conjunto de tableros de características y hacer la EMC relevante y otras cosas difíciles al mismo tiempo que el el software de aplicación se está desarrollando en los ensamblajes de prototipos. Todavía se necesita un poco de integración y portabilidad, pero se realiza cuando el software y la electrónica de trabajo están disponibles.)