ATMEGA328P-PU как замена Arduino

  • Цена: $20.08/10шт с панельками и кварцами

Раз уж Arduino стал практически мейнстримом, напишу обзор про микроконтроллеры ATMEGA328
Данный микроконтроллер является сердцем Arduino Uno, Nano, Pro Mini и ряда других плат.
Но Arduino — это слишком просто. Купил, подключил, загрузил программу и вот уже гордо мигает светодиод на плате. Мы же легких путей не ищем и программируем голые микроконтроллеры на ассемблере поэтому и куплены данные микросхемы. Тем кому интересно, прошу под кат.


Итак зачем все это нужно?
Ну во первых, это экономия в деньгах (Правда с ценами на Pro Mini очень сомнительная)

Во вторых, экономия места

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

В четвертых, проекты на Arduino весьма неопрятны из за мотка проводов вокруг платы. Микроконтроллеры же вполне можно паять на макетках или нормальных печатных платах.

Ну и в пятых, это ведь интересно и познавательно!

Заказал я данные микросхемы на Алиэксперсс. Лот состоит из 10 микроконтроллеров, 10 панелек для них, и 10 кварцевых резонаторов на 16МГц. Сейчас лот подорожал до $35 и купить за адекватную цену Atmegу можно разве что на Таобао.

Заказ шел целых 97 дней. Трек быстро отозвался в Китае и завис, не дойдя до России. Я успел пообщаться с продавцом, открыть спор и выиграть его, когда нежданно посылка нарисовалась в Москве. Деньги я вернул продавцу на PayPal, видимо у него где-то есть еще и магазин.
Итак все довольны — продавец получил заслуженную прибыль, а я долгожданный товар.

Подробное описание ATMEGA328 можно посмотреть на сайте atmel.com.
Буковка «P» в названии означает низкое энергопотребление, а PU-корпус DIP28, который удобно паять обычным паяльником.

Сам товар:




Контроллер с панелькой и кварцем


Как это все готовить?
Для программирования взят очень дешевый программатор USBasp за 3.14 (Пи?) баксов.
Для простоты, используем ICSP разъем стандартной Arduino UNO

В панельку Arduino вставляем наш микроконтроллер.

Далее качаем и устанавливаем драйвер для программатора. Запускам стандартную ArduinoIDE, выбираем в меню «Сервис->Программатор->USBasp», плату ArduinoUNO и нажимаем «Записать загрузчик». После окончания процесса загрузки мы получаем контроллер, такой же как и в UNO, в который можно уже в дальнейшем заливать программы через стандартный USB Ардуины.

Далее мне захотелось использовать встроенный кварцевый резонатор на 8МГц, чтобы иметь минимум деталей на плате.
Открываем файл с описанием микроконтроллера c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt
Копируем блок с Uno и правим в нм Фьюзы. Это специальные биты для настроки контроллера. Прочитать про них можно здесь. Сконфигурировать при помощи онлайн-калькулятора. Загрузив в калькулятор значения от UNO я устанавливаю стандартное значение с встроенным кварцем на 8МГц.
Затем заменяю значение в файле с описанием плат и получаю такое описание:
tmega328_8.name=Atmega328 (5V, 8 MHz internal) 

atmega328_8.upload.protocol=arduino
atmega328_8.upload.maximum_size=30720
atmega328_8.upload.speed=57600

atmega328_8.bootloader.low_fuses=0xE2
atmega328_8.bootloader.high_fuses=0xDE
atmega328_8.bootloader.extended_fuses=0x05
atmega328_8.bootloader.path=optiboot
atmega328_8.bootloader.file=optiboot_atmega328.hex
atmega328_8.bootloader.unlock_bits=0x3F
atmega328_8.bootloader.lock_bits=0x0F

atmega328_8.build.mcu=atmega328p
atmega328_8.build.f_cpu=8000000L
atmega328_8.build.core=arduino
atmega328_8.build.variant=standard

Затем в среде Arduino выбираю свой микроконтроллер и снова прошиваю загрузчик.
Все, я получил микроконтроллер, в который можно заливать скетчи на Arduino UNO плате, а затем использовать его без внешнего кварца.


Можно не прошивать контроллеру загрузчик, но тогда заливать в него программы всегда придется через программатор.

Чтобы не соединять самому 10пинвый разъем на USBasp к 6-ти пиновому ICSP на Arduino заказал такой переходник
Потом подумал, и заказал такой переходник для программатора, позволяющий обходится без Arduino Uno. Так что надеюсь, следующие микросхемы буду шить с большим комфортом.

Рекомендую ли я данные микроконтроллеры — скорее нет. При цене на Arduino Pro Micro — $2.88 это не особенно целесообразно. Сейчас я бы купил Atmega8 стоимостью около 1$ или Atiny, для проектов, где не нужно возможности Atmega328.

Где я все это планирую применять?
Хочу сделать сенсорные беспроводные выключатели света, вентиляторов и др. устройств, причем разместить их прямо в корпусах выключателей.
В люстрах, для получения радиокоманд от этих выключателей, а также для диммирования.
В миниатюрном погодном датчике на аккумуляторе за окном.
В контроллере управления вентилятором на кухне и в ванной.
Да мало ли сколько еще «нужных и полезных» устройств можно сделать?

А как же мозг не вскипел все это реализовывать?
Ну конечно же был помощник


Все статьи мои статьи можно найти в моем блоге samopal.pro
Планирую купить +81 Добавить в избранное +62 +124
+
avatar
  • reget17
  • 26 января 2014, 22:07
+4
Как же всё это круто!
+
avatar
  • baikot
  • 27 января 2014, 15:39
-1
Не это не круто, это МЕГАКРУТО! Мне не осилить!
+
avatar
  • fizpok
  • 26 января 2014, 22:15
0
Люто плюсую!
Сам задумывался об этом.
Хоть с ценами на микро уже не так актуально, но все равно очень полезно знать.
И ссылочки хорошие повесили.
Будет возможность найти и поиграть с восьмеркой для самых простых вещей — будет здорово!
+
avatar
+2
Потом подумал, и заказал такой программатор, позволяющий обходится без Arduino Uno. Так что надеюсь, следующие микросхемы буду шить с большим комфортом.

Не хотелось бы вас огорчать, но в данный переходник не влезает Atmega 328, только 16 и 32.Сам накололся.
+
avatar
0
И, как Вы подметили, это всего лишь переходник, а не программатор.
+
avatar
  • sav13
  • 27 января 2014, 05:11
0
Похоже что накололся :(
А для 28-пиновых микросхем таких не увидел в продаже
+
avatar
  • sav13
  • 28 января 2014, 05:42
0
В списке Atmega328 Не увидел. Подозревается, что она с 168-й полностью совместима?
+
avatar
  • rjbinaa
  • 26 января 2014, 22:17
0
Молодец, а где будете выкладывать свои проекты?
+
avatar
  • vanenzo
  • 26 января 2014, 22:22
+1
Надо stm32 переходить) никак вот себя не заставлю начать)
+
avatar
  • sav13
  • 27 января 2014, 04:55
0
А какой особый плюс у STM?
+
avatar
0
По одной и тойже цене получаете более напиханный контроллер, вместо 8 бит получите 32 бита, еще у стм на борту очень много различных интерфейсов
НО, так как они 32 битные, то программирование отличается от распространенных 8битных
Потому с ними сложнее, меньше инфы в инете, меньше знающих и способных помочь людей
Но они более навороченные =)
+
avatar
  • sav13
  • 28 января 2014, 05:19
0
А среда разработки есть для них? Очень мало инфы по ним нашел.
Arduino Due тоже 32 разрядный, только дорогой.
+
avatar
0
Maple-IDE — Аналог ардуиновской ide, только под stm
по функционалу конечно не подскажу, но вроде его по потихоньку допиливают
+
avatar
  • vanpi
  • 02 февраля 2014, 19:36
0
coocox ide. Неплохая бесплатная и простая среда. Ну или Eclipse и бубен.
+
avatar
  • vanenzo
  • 28 января 2014, 09:29
0
Собсна за меня уже все сказали )
Цена очень вкусная раз, мощность по сравнению с ардуино просто огромная(я на старшей меге упирался и в скорость и в память, когда рисовал только примитивное подобие GUI)? ну и ARM — за ним будущее… Что останавливает — это как раз переход на серьезное программирование, я эти Си и IDE все не люблю до ужаса
+
avatar
  • sav13
  • 28 января 2014, 09:58
0
Там же тоже Си, только еще все порты в графическом виде подтягиваются?
+
avatar
  • vanenzo
  • 28 января 2014, 10:15
0
в атмеле Си(avr команды), вот тока для ардуино придумали этот processing, и максимально упрощенную ide, с которой трудно слезть…
+
avatar
0
Даже за $3.5 — не особо дорого. В терраэлектронике — 176 р (от 10 шт), а в чип-дип вообще 220 р (от 3 шт). И это без доставки!
+
avatar
  • sav13
  • 27 января 2014, 06:00
0
Не особо дорого на ТаоБао за 9 юаней. Думаю, что там буду тариться в следующий раз
+
avatar
0
Главное, чтобы за 9 юаней не прислали просто корпус без кристалла ;)
+
avatar
  • sav13
  • 27 января 2014, 21:03
0
Ну на тао я не замечал кидал больше чем на Али. Они же на внутреннем рынке торгуют.
+
avatar
  • noss
  • 26 января 2014, 22:34
0
Продайте одну мегу328 :)
+
avatar
  • sav13
  • 27 января 2014, 04:56
0
Да не вопрос. Пишите в личку.
+
avatar
  • vp7
  • 26 января 2014, 22:39
+4
А можно за ~$2.9/шт заказать китайские «Arduino pro mini», распаянные на плате.
Сама платка всего в пару раз больше голой микросхемы в DIP корпусе, но на ней уже запаян кварц, стабилизатор питания, а в процессор уже залит бутлоадер для загрузки через UART.

Лично мне такой вариант показался более интересным… хотя и выходит чуток дороже.
Но в отличии от всяких «Arduino uno» мелкие «pro mini» уже можно (и, что самое главное — не жалко при такой-то цене) пихать во всякие мелкие самоделки.
+
avatar
0
А ещё у этих мелких на два АЦП больше.
+
avatar
  • sav13
  • 27 января 2014, 05:00
+1
Можно, только в свою печатную плату их не вставить.
Я вот думаю, на Тиньки нужно переходить. Для многих проектов вполне их хватит
+
avatar
  • bazis13
  • 27 января 2014, 12:22
0
почему не вставить? Они обычно приезжают с неприпаянными ножками. Вот под эти ножки наделать в плате дырок и припаять, а лишнее откусить.
Получится небольшая плата на стойках поверх большой основной.
Или вот такой пирог на разъемах

Интернет наше все, поэтому хочу подключать ардуины по ethernet. Чтобы и шить по сети можно было. И управлять с любого устройства отовсюду.
Даже скетчи писать предпочитаю тут codebender.cc/
+
avatar
  • sav13
  • 27 января 2014, 15:49
0
Интернет наше все, поэтому хочу подключать ардуины по ethernet. Чтобы и шить по сети можно было. И управлять с любого устройства отовсюду.
А что, уже есть платы, через которые Ардуины шьются?
Да и нет в них полноценного TCP. Все через одно место костылями работает.
+
avatar
  • bazis13
  • 27 января 2014, 16:08
0
Имел ввиду загрузку скетчей, а не прошивку бутлоадера по сети.
Еще сам не разобрался как, но раз кнопочка имеется, то и сделать как-то можно.

Цитата из блога
«together with an Ethernet shield flashed with a properly designed TFTP bootloader, you will be able to upload a sketch remotely, over the internet! „
+
avatar
  • sav13
  • 27 января 2014, 16:16
0
А плата Ethernet какая?
+
avatar
  • bazis13
  • 27 января 2014, 17:29
0
у меня самые обычные шилды aliexpress.com/snapshot/279708303.html
Сам еще не пробовал.
Но радиобрелки — это какой то прошлый век. Все должно уметь управляться с телефона, раз мы уж говорим об удаленном управлении
+
avatar
  • sav13
  • 27 января 2014, 21:02
0
Я немного по другому сеть строю:
Ардуины общаются между собой через NRF24L01+ или 433Мгц платами.
Одна работает как шлюз к Zyxel Keenetic, через него то и можно телефонами управлять. А витую пару тянуть к каждой ардуине — западло. WiFi шилды же стоят каких-то неправильных денег.
+
avatar
  • bazis13
  • 27 января 2014, 21:23
0
Скорей всего, у меня тоже парочку придется на радиоканал посадить.
Как с помехами на этих платах? Какая лучше?
Одна будет умирать от wifi и микроволновки, вторая от других 433Мгц пультов? )
В качестве wifi-клиента для ардуины наверняка можно использовать TP-LINK TL-WR702N pf 560р, но тоже дорого выходит.
+
avatar
  • sav13
  • 28 января 2014, 05:16
0
Сейчас стоят 433МГц. Много пакетов теряется, особенно, если одновременно идет передача от устройств. Протокола там нормального с помехозащитой нет, коллизии не обрабатываются. Стал на 2.4 переходить постепенно. Связь постабильнее, с микроволновкой и WiFi еще не определился.
Ротер использую какой есть для интернета.
+
avatar
  • bazis13
  • 28 января 2014, 11:27
0
Не, я предлагал к каждой ардуине приделать по такому роутеру, если бюджет позволяет.
Спасибо, удалю из корзины тогда 433 платы, и добавлю NRF24L01
+
avatar
  • nek
  • 26 января 2014, 22:40
0
вы очень дешево купили
у нас от 200 до 450 за 1 штуку кадетсья в дип корпусе. пластик
+
avatar
  • les3685
  • 26 января 2014, 22:44
+6
Напомнило

Да и кот такой же. :)
+
avatar
  • NeLeGal
  • 26 января 2014, 22:48
0
плюсик за обзор… особенно за программирование контроллеров на асме :)
приятно читать такие обзоры
+
avatar
+4
Вместо ATMEGA328 заказал платку, но сдругим сердцем ATMega 32U4, как немного продвинутей за $5,34 AUD (можно сказать аналог Arduino Leonardo).
И еще я себе такую штуку взял — STM8S105C6T6 за $9.20 — дешево и сердито, да и миниатюрная (вместо STM8S-Discovery).
+
avatar
  • Sanja
  • 27 января 2014, 00:24
+2
Спасибо за обзор.

Читателям ещё может помочь вот это вот руководство — jeelabs.net/pub/wk101/Overige%20docs/04%20-%20byoa.pdf — там более развёрнутый вариант сборки описан.
+
avatar
0
Советую свои проекты на хабрахабре выложить. Там есть нечно подобное в «промыщленных масштабах» на другом железе и по другим ценам. Хотелось бы глянуть ваш вариант (да и в комментариях много советов могут дать полезных))
+
avatar
  • sav13
  • 28 января 2014, 05:43
+1
Как будет что нибудь стоящее, обязательно выложу.
+
avatar
  • Faster
  • 30 января 2014, 07:03
0
За обзор плюсую как и обычно за тех кто делает руками…

В действительности я узнал о ARDUINO намного позже чем о контроллерах фирмы Atmel, вся соль в том что среда разработки для Arduino очень тяжёлая, и приложения написанные на ней получаются громоздкие и тормозные. Но все же я купил давно UNO чтобы оценить, и считаю что для начинающего это отличный вараинт, тем более что уже появились модификации среды даже под язык Basic, собственно практически для детей дошкольного возраста.

Теперь о программировании, в общем то штатаная среда разработки Atmel'а представляет на много больше удобства и возможностей нежели Арджуно… и советую вам её попробовать, тем более что программаторов для этого валом…

P.S. Если есть люди интересующиеся как начать что купить что делать… пишите в личку расскажу…
+
avatar
0
заказал такой переходник для программатора
а можно фотку и название по англ. этой штуки, а то ссылка сдохла и непонятно, что за переходник?
+
avatar
  • sav13
  • 30 июля 2018, 05:31
0
Давно использую Arduino Nano в качестве программатора
Все эти переходники лежат где-то в коробке как невостребованные
samopal.pro/avr-prog/
+
avatar
0
да я знаю, что можно всякие ардуинки для этого юзать. Просто интересно было, что за переходник такой.

ЗЫ.
Давно уже подписан на ленту на твоем сайте. И много статьи занесены в мои «заметки» (в проге outwiker).
+
avatar
  • kiv69
  • 07 ноября 2018, 19:02
0
При цене nano в 2$ смысл покупки отдельных микросхем стремится к нулю.
ru.aliexpress.com/item/nano-Mini-USB-Nano-3-0/32850536443.html