Geralmente, os fornecedores de microcontroladores colocam em seus dispositivos uma gama de memória adequada para aplicações típicas. Portanto, se você precisar apenas de alguns pinos de E / S e um SPI em um dispositivo pequeno, provavelmente não encontrará nada que seja fornecido com 500 kBytes de Flash e 64 kBytes de RAM. Com dispositivos maiores, que estão mais próximos dos pacotes SoC, até o menor é quase certamente grande o suficiente, a menos que você esteja planejando fazer um processamento sério de números, como o processamento de imagens.
Em um ambiente profissional, a chave para escolher o microcontrolador certo é usar dados históricos. Você terá um registro dos outros projetos que desenvolveu e saberá que memória e outros recursos de silício são necessários para implementar cada recurso. Você saberá o que o produto deve fazer e, portanto, possui uma boa lista de recursos e pode calcular com rapidez e precisão os recursos que o microcontrolador precisará fornecer. Tentar adivinhar os requisitos de recursos de uma especificação de projeto inicial (desenvolvida no início do projeto quando houver menos informações sobre o sistema) não é confiável o melhor dos tempos e apenas engenheiros muito experientes, que construíram uma ampla banco de dados de dados históricos em suas próprias cabeças, terá algum tipo de sucesso ao usar esse método.
Muitas empresas adotaram uma abordagem 'Ágil' ao design de software e eletrônico, que envolve a construção de uma 'biblioteca' de pequenas placas de recursos (por exemplo, placas RS-485, placas ADC, etc.) junto com placas de plataforma genéricas que hospedam os microcontroladores , de maneira semelhante ao uso de um kit de desenvolvimento e plug-ins. Um produto pode ser prototipado rapidamente (em poucas horas), selecionando e conectando o conjunto de placas necessário para os recursos. O software é montado de forma semelhante a partir de módulos de biblioteca e pode ser portado e testado rapidamente. Uma vez que o tamanho da parte específica do hardware do código é conhecido, geralmente é suficiente selecionar a menor parte que o conterá. A exceção é a mencionada acima, onde a funcionalidade do dispositivo envolve big data ou algoritmos muito complexos. Este método fornece uma precisão,
(Outra vantagem da abordagem Agile é que ela permite o desenvolvimento de software e eletrônico em paralelo, com o design da elctronics sendo um exercício para integrar o conjunto de placas de recursos e executar a EMC relevante e outras coisas difíceis ao mesmo tempo que o O software do aplicativo está sendo desenvolvido nos conjuntos protoype. Ainda é necessária alguma portabilidade e integração, mas isso é feito quando o software e a eletrônica de trabalho estão disponíveis.)