Задать вопрос
Rou1997
@Rou1997

Почему за основу для Arduino выбрали Atmega328P, когда STM32 и дешевле до двух раз, и лучше до двух раз?

В первую очередь, цена. На AliExpress:
Atmega328P (AVR) - 70-80 руб штука за штуку (от 100 шт)
STM32F030F4P6 (ARM Cortex M0) - 25-30 руб за штуку (от 100 шт)

Тактовая частота.
Atmega328P (AVR) - 20 МГц
STM32F030F4P6 (ARM Cortex M0) - до 48 МГц

ОЗУ (SRAM).
Atmega328P (AVR) - 2 КБ
STM32F030F4P6 (ARM Cortex M0) - 4 КБ

ПЗУ (Flash).
Atmega328P (AVR) - 32 КБ
STM32F030F4P6 (ARM Cortex M0) - 16 КБ.

Количество выводов GPIO.
Atmega328P (AVR) - 23
STM32F030F4P6 (ARM Cortex M0) - 15

Разрядность.
Atmega328P (AVR) - 8 бит
STM32F030F4P6 (ARM Cortex M0) - 32 бита

Архитектура.
ARM - более совершенен, чем AVR, кроме того, знание ассемблера ARM более применимо на практике.
Впрочем, это более субъективно.

Напряжение питания в этом вопросе не рассматривается, поскольку в обоих случаях все равно нужен стабилизатор, который составляет очень малую долю себестоимости компьютера.

Корпус - тоже.

Вывод: STM32 лучше, чем Atmega328P, по ряду важных характеристик, в первую очередь цена и быстродействие.

Уступает по объему ПЗУ, но можно использовать "облачное" хранилище с Ethernet shield или внешнее ПЗУ.

И немного уступает по количеству GPIO-выводов.

Но у STM32 есть еще одна модель - STM32F030K6, она не только не уступает "атмеге" по обоим характеристикам, но и слегка превосходит - 26, а не 23 GPIO.
При этом, по цене несколько дороже, но все равно дешевле, чем Atmega328P - 38-50 руб за штуку (от 20 шт)

Остается вопрос - почему в Arduino все-таки Atmega328P? Чего я не учитываю? Спорить не буду. Вопрос не для спора. Просто мне непонятно.
  • Вопрос задан
  • 6444 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 7
@rustler2000
погромист сикраш
Мега вышла сильно сильно раньше
Ответ написан
Комментировать
@Hoksmur
Я знаю две причины:
1) поинтересуйтесь годом выхода ARDUINO и выходом указанного STM. На тот момент продукция Atmel была сильно популярней, а значит и больше людей, кто мог заинтересоваться проектом.
2) первая ARDUINO на Mega8 принципиальна была разработана под одностороннюю плату и DIP, точнее trought-hole компоненты. Для повторения "на коленке".
Может были и другие соображения, но они оправдались, так как проект "взлетел".
Вот для справки: https://www.arduino.cc/en/Main/ReleaseNotes первая версия вышла ARDUINO 0001 - 2005.08.25, в случае с STM32 - www.compel.ru/lib/ne/2011/2/3-stm32-epoha-32-bitny... Компания ST одна из первых выпустила свои микроконтроллеры Cortex-M3 (2007 г.)
Ответ написан
Комментировать
Под stm32f103c8t6 есть загрузчик ардуино.
А вообще это скорее всего из разряда: так исторически сложилось.
Да и они в дип корпусах есть, что способствовало продвижению данных МК среди любителей.
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Потому что на STM долго небыло нормальных компиляторов. Не уверен что сейчас они нормальные есть...
Ответ написан
@LampTester
Простой ответ - потому что Arduino вышла раньше, чем контроллеры от ST обрели популярность. Про это уже говорили выше.

Если же подойти философски, то надо сказать, что "лучше" - понятие растяжимое. Да, у ST есть более производительные контроллеры за сравнимую цену, но это совсем не означает, что в этом применении они лучше. Как минимум, они сложнее, и, учитывая круг применения Ардуино, эта сложность не оправдает себя, как и расширенные возможности. Платформа Ардуино призвана прежде всего снизить порог вхождения, и AVR отвечают этой задаче лучше.
Ответ написан
Комментировать
@kalapanga
Есть и на ARM Arduino: Arduino Due
Ответ написан
@AnotherReality
Есть же Nucleo при том плата полностью ардуино-совместимая.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы