Как правило, производители микроконтроллеров помещают в свои устройства диапазон памяти, подходящий для типичных приложений. Таким образом, если вам нужно всего лишь несколько выводов ввода-вывода и один SPI на небольшом устройстве, вы вряд ли найдете что-либо, что поставляется с 500 кБайт Flash и 64 кБайт RAM. С более крупными устройствами, которые ближе к пакетам SoC, даже самые маленькие почти наверняка достаточно велики, если только вы не планируете делать какие-то серьезные вычисления, такие как обработка изображений.
В профессиональной среде ключом к выбору правильного микроконтроллера является использование исторических данных. У вас будет отчет о других разработанных вами проектах и вы узнаете, какая память и другие кремниевые ресурсы требуются для реализации каждой функции. Вы будете знать, что должен делать продукт, и, следовательно, будете иметь хороший список функций и сможете быстро и точно рассчитать ресурсы, которые потребуется предоставить микроконтроллеру. Попытка угадать требования к ресурсам из предварительной спецификации проекта (разработанной в начале проекта, когда доступно наименьшее количество информации о системе) ненадежна в лучшие времена, и только очень опытные инженеры, которые создали комплексную База данных исторических данных в собственных головах, будет иметь какой-либо успех в использовании этого метода.
Многие компании приняли подход Agile как к программному, так и к электронному проектированию, который включает в себя создание «библиотеки» небольших функциональных плат (например, плат RS-485, плат АЦП и т. Д.) Вместе с платами общей платформы, на которых размещены микроконтроллеры. , аналогично использованию dev-kit и плагинов. Затем можно быстро (в течение нескольких часов) создать прототип продукта, выбрав и подключив набор плат, необходимых для функций. Программное обеспечение аналогичным образом собирается из библиотечных модулей и может быть быстро перенесено и протестировано. Как только размер аппаратной части кода известен, обычно достаточно выбрать наименьшую часть, которая будет содержать это. Исключение составляет упомянутое выше, где функциональность устройства включает большие данные или очень сложные алгоритмы. Этот метод обеспечивает точный,
(Другое преимущество Agile-подхода заключается в том, что он позволяет выполнять разработку программного обеспечения и электроники параллельно, при этом дизайн elctronics представляет собой упражнение по интеграции набора функциональных плат и выполнению соответствующих EMC и других сложных задач одновременно с Прикладное программное обеспечение разрабатывается на сборках прототипов. Некоторое портирование и интеграция все еще необходимы, но это делается, когда доступно рабочее программное обеспечение и электроника.)