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 pocos 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 los dispositivos más grandes, que están más cerca de los paquetes de SoC, incluso el más pequeño es casi lo suficientemente grande a menos que esté planeando hacer algunos cálculos de números graves como el procesamiento de imágenes.
En un entorno profesional, la clave para elegir el microcontrolador correcto 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 función. Sabrá lo que se espera que haga el producto y, por lo tanto, tendrá una buena lista de características y podrá calcular de manera 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 inicio del proyecto cuando hay menos información disponible sobre el sistema) no es confiable en el mejor momento y solo los ingenieros muy experimentados, que han desarrollado una La base de datos de datos históricos en sus propias cabezas tendrá algún tipo de éxito en el uso de este método.
Muchas compañías han adoptado un enfoque 'Agile' para el software y el diseño electrónico, que implica la creación de una 'biblioteca' de tableros de características pequeños (p. ej. tableros RS-485, tableros ADC, etc.) junto con tableros de plataforma genéricos que aloje los microcontroladores, de forma similar al uso de un kit de desarrollo y complementos. Un producto puede ser prototipado rápidamente (en horas) seleccionando y conectando el conjunto de tableros necesarios para las características. El software se ensambla de manera similar a partir de los módulos de la biblioteca y se puede portar y probar rápidamente. Una vez que se conoce el tamaño de la parte del código específica del hardware, 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 big data o algoritmos muy complejos. Este método proporciona una metodología precisa, confiable y rastreable, utilizando datos reales de productos reales de trabajo, en lugar de suposiciones basadas en especificaciones esperanzadoras.
(Otra ventaja del enfoque Agile es que permite que el software y el desarrollo electrónico se realicen en paralelo, y el diseño electrónico es un ejercicio para integrar el conjunto de tableros de funciones y hacer el EMC relevante y otras cosas difíciles al mismo tiempo. Mientras se está desarrollando el software de la aplicación en los conjuntos de prototipos, todavía es necesario realizar algunas adaptaciones e integraciones, pero se hace cuando hay disponibles software y dispositivos electrónicos disponibles.)