Как стать автором
Обновить

Как сделать свой клон Arduino, и есть ли в этом смысл

Время на прочтение3 мин
Количество просмотров8.6K

Часто у начинающих ардуинщиков и более продвинутых пользователей возникает проблема: памяти микроконтроллера недостаточно или наоборот, слишком много. Основная часть моделей имеет объем памяти 32к или 256к. С портами ввода/вывода ситуация не сильно лучше. Конечно, есть расширители портов, но тогда придется менять логику программы. Одним словом тупик. И выход есть - создать свою копию Arduino на другом микроконтроллере.

Предупреждение

Перед использованием схем из этой статьи, проверьте, все ли в порядке. Я тоже могу допустить ошибку. Если вы это заметили, напишите в комментарии.

Выбираем микроконтроллер под свои задачи

Выбирая МК, нужно определить основные параметры:

  • Память Flash

  • Память SRAM

  • Память EEPROM

  • Кол-во линий ввода/вывода

  • Доступные интерфейсы

Большим плюсом при создании платы на базе официально не поддерживаемого МК, будет наличие загрузчика и ядра. Привожу некоторые МК, для которых есть ядро:

МК

Flash, k

SRAM, k

EEPROM, b

Порты

Интерфейсы

Корпус

Atmega16

16

1

512

32

SPI, I2C,UART

DIP40, TQFP44

Atmega32

32

2

1024

32

SPI, I2C,UART

DIP40, TQFP44

Atmega64

64

4

2048

53

SPI, I2C,UART x2

TQFP64

Atmega8

8

1

512

23

SPI, I2C,UART

DIP28, TQFP32

Atmega644

64

4

2048

32

SPI x3, I2C,UART

DIP40, TQFP44

Atmega128

128

4

4096

53

SPI, I2C,UART x2

TQFP64

Atmega640

64

8

2048

86

SPI x5, I2C,UART x4

TQFP100

Atmega1284

128

16

4096

32

SPI x3, I2C,UART x2

DIP40, TQFP44

Главное найти баланс: чтобы желаемого пункта хватало, но не в ущерб остальным характеристикам.

Немного о маркировке МК ATmega

Маркировка МК ATmega обычно интуитивно понятна, в качестве примера разберем маркировку чипа ATmega32l - 8AU. ATmega - семейство МК, 32 - flash память, l - пониженное напряжение питания. Буквы после модели я вынес в таблицу:

Буква

Значение

Нет

Напряжение питания от 4.5 до 5.5

L

Напряжение питания от 2.7 до 5.5

V

Напряжение питания от 1.8 до 5.5

U

Напряжение питания от 0.7 до 5.5

P

Потребление 100нА в режиме Power-down

A

Уменьшен ток потребления, перекрывается весь диапазон тактовых частот всех версий, напряжение питания 1,8 - 5,5 вольт

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

Тактирование

После выбора микроконтроллера под свои задачи можно переходить к проектированию схемы. Сначала находим пины XTAL1 и XTAL2. К ним мы подключаем кварц. Сейчас их достаточно много - есть и со встроенными конденсаторами внутри.

Обычный выводной кварц
Обычный выводной кварц

Для его работы требуется обвязка - два конденсатора на 22 пикофарада.

Схема подключения кварца, линии от X1 идут к XTAL1 и XTAL2
Схема подключения кварца, линии от X1 идут к XTAL1 и XTAL2

Также существуют другие варианты - со встроенными конденсаторами и в других корпусах, включая SMD. Если в кварце уже есть конденсатор, то дополнительные не нужны, подключаем напрямую к XTAL1 и XTAL2.

Далее гуглим "НАЗВАНИЕ_МК максимальная частота". Для примера я загуглил "Atmega32l-8au максимальная частота". Почти гарантировано вы увидите строчку:

В этом случае смысла во внешнем кварце нет, можно использовать внутренний генератор. В большинстве случаев частота работы 16 МГц, иногда 20 МГц.

Корпус

Здесь все сводится к размерам и удобству сборки. Некоторые МК выпускаются только в SMD - в основном из-за огромного количества портов. Самые крупные выводные МК обычно выпускаются в корпусе DIP-40. Те, которые имеют 100+ выводов, конечно, идут в SMD. Паяльником реально припаять корпус TQFP-44 - ATmega16/32. Больше - я не пробовал, если у вас есть опыт - отпишите в комментарии. Однако, китайцы, если заказать у них печатную плату, могут нам припаять МК хоть TQFP-100. Естественно, это недёшево, но когда очень большая партия - это единственный выход.

Прошивка

Если мы копируем Arduino, нам необходимо добавить возможность прошивки через бутлоадер - загрузчик, через разъем USB. Существуют специализированные микросхемы - CH340, FT232, CP2102. На оригинальных Arduino для загрузки прошивки используется отдельный камень - Atmega8u2/16u2 со своей прошивкой и аппаратным USB. Я сам использую чип CH340C. Некоторые на него жалуются, но у меня все достаточно хорошо. Прилагаю рекомендуемую схему подключения:

Итоговая схема

Итак, сложим все требования воедино. Я хочу Atmega32l на частоте 8МГц с прошивкой по USB. У меня получилось это:

Итоговая схема
Итоговая схема

Вывод

Создание своего клона Arduino имеет смысл, если вам не хватает мощности UNO, а MEGA использовать нецелесообразно, а также хочется иметь USB порт для прошивки.

Надеюсь, что статья была вам полезна, и вы узнали что-то новое. Если есть вопросы или замечания, напишите в комментарии, спасибо за дочитывание статьи, пока!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Была ли у вас проблема нехватки памяти/пинов?
50% Да29
29.31% Нет17
20.69% Не помню12
Проголосовали 58 пользователей. Воздержались 16 пользователей.
Теги:
Хабы:
Всего голосов 14: ↑4 и ↓10-4
Комментарии19

Публикации