Программатор своими руками для attiny2313

Содержание
  1. hardlock.org.ua
  2. USB программатор AVR910 на ATtiny2313 и FT232RL
  3. USB программатор AVR910 на ATtiny2313 и FT232RL
  4. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  5. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  6. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  7. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  8. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  9. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  10. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  11. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  12. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  13. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  14. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  15. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  16. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  17. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  18. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  19. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  20. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  21. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  22. Re: USB программатор AVR910 на ATtiny2313 и FT232RL
  23. Программатор своими руками для attiny2313
  24. Программатор своими руками для attiny2313
  25. Работа с голым камнем, ATtiny
  26. UART и ISP
  27. Подключение программатора
  28. Ставим “ядро”
  29. Программирование
  30. Проект на голом МК
  31. Перенос МК с Arduino на свою плату
  32. Видео

hardlock.org.ua

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама — буду решать я.

USB программатор AVR910 на ATtiny2313 и FT232RL

USB программатор AVR910 на ATtiny2313 и FT232RL

Cry Baby » 14 фев 2011 21:32

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

Iesaul » 14 фев 2011 23:03

Читайте также:  Хорошие ножны своими руками

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

serbin » 22 мар 2011 15:14

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

Cry Baby » 23 мар 2011 08:05

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

liprikon » 11 авг 2011 19:52

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

Cry Baby » 12 авг 2011 08:06

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

SabitofF » 08 ноя 2011 23:43

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

Cry Baby » 16 ноя 2011 06:57

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

stells47 » 08 дек 2011 15:47

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

hardlock » 08 дек 2011 17:20

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

stells47 » 08 дек 2011 17:42

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

hardlock » 08 дек 2011 17:46

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

stells47 » 08 дек 2011 18:24

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

hardlock » 10 дек 2011 00:09

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

Cry Baby » 14 дек 2011 06:45

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

stells47 » 15 дек 2011 14:57

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

SabitofF » 05 апр 2012 13:45

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

malok » 05 апр 2012 13:58

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

hardlock » 05 апр 2012 17:33

Re: USB программатор AVR910 на ATtiny2313 и FT232RL

olegkaras » 27 сен 2016 09:31

Источник

Программатор своими руками для attiny2313

Миниатюрный USB программатор AVR микроконтроллеров построен на микроконтроллере AtTiny 2313, содержит минимум элементов и позволяет работать в такими средами разработки как AVR Studio и AVRDUDE.
Есть две версии этого программатора, а именно USBTiny v1.0 и USBTiny v2.0. По порядку о каждой:

Схема отличается простотой и наличием малого количества компонентов. Печатных плат несколько.

Печатная плата от Дмитрия Шпака:

Скачать в формате layout: USBtiny.zip [21,86 Kb] (cкачиваний: 1135)

Печатная плата от Андрея Баранова:

Скачать в формате layout: usbtiny_a_baranov.zip [19 Kb] (cкачиваний: 1066)
И версия от mebadboy: USB-tiny-mebadboy.zip [22,5 Kb] (cкачиваний: 1063)

Печатная плата от автора:

Скачать в формате eagle: usbtinyisp20v1.020hw.zip [37,09 Kb] (cкачиваний: 895)
Прошиваем контроллер любым другим программатором(например 5 проводков и LPT), собираем устройство воедино и.
Вставляем его в USB порт компьютера, система найдёт новое устройство USBtinyISP AVR Programmer
Устанавливаем драйвер для своей ОС и пользуемся.

Драйверы и прошивки:
Драйвер Win x86: usbtinyisp-w32-driver-v1.12.zip [60,51 Kb] (cкачиваний: 1810)
Драйвер Win x64: usbtinyisp_libusb-win32_1.2.1.0.zip [225,83 Kb] (cкачиваний: 2012)
Прошивка v1.0 с исходником: usbtinyisp-v1.0-firm.zip [146,55 Kb] (cкачиваний: 1326)
(avr-gcc v3.4.6 + avr-libc v1.4.4 + Winavr-20060421)
Прошивка v1.4 с исходником: usbtinyisp20v1.0420firm.zip [146,63 Kb] (cкачиваний: 1639) последняя версия
(avr-gcc v3.4.6 + avr-libc v1.4.4 + Winavr-20060421)
hex файл в папке spi.

Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.

В отличие от первой схемы программатора, во второй версии добавлена буферная микросхема для согласования уровней.

Также изменена прошивка:
Прошивка v2.0 с исходником: usbtiny20v2.020firm.zip [116,66 Kb] (cкачиваний: 1164)
(avr-gcc v3.4.6 + avr-libc v1.4.4 + Winavr-20060421)
Драйверы подходят от первой версии.

Печатная плата от автора для второй версии:

Источник

Программатор своими руками для attiny2313

Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!

А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в прошлой статье мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора – USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!

Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка )

и схему USB программатора USBTiny

можно увидеть, что это одна и та-же схема. Различия незначительны – отсутствуют сигнальные светодиоды и несколько резисторов. Для того, чтобы преобразователь стал USB программатором нужно просто прошить микроконтроллер новой прошивкой и сделать кабель для подключения.

Теперь все по порядку.
1 Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
T2313-SMD-2 v2.0 — Рисунок печатной платы UART-USB на ATtiny2313
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен – можно варьировать).

2 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса – стоит отдельно).

usbtinyisp-T2313.hex v1.04 — Прошивка USBtiny программатора для ATtiny2313
T2313-FuseBit — Фьюз-биты ATtiny2313 для USBtiny
Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставяться инверсно.

3 Далее нам нужен шлейф для того, чтобы соединить программируемое устройство с нашим программатором. Все линии, необходимые для программирования находятся на одном разъеме.

Схема шлейфа проста.

Из особенностей – я вынес индикаторный светодиод и балластный резистор для него за плату на разъем – это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней – светодиод мигает прямо в разъеме ). Кроме того, линия Vcc отделена от общего разъема – это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой – до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель – так надежней. Вот мой готовый шнурок:

4 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:

4.1 Скачиваем драйвер, разархивируем его.
usbtinyisp w32 driver v1.12 — Win драйвер для USBtiny программатора
Если у Вас Винда 64 битная, Vista или Windows 7 нужно установить другой драйвер:
usbtinyisp_libusb-win32_1.2.1.0.zip — Драйвер USBtiny для х64, Vista или Windows 7

4.2 Вставляем наш программатор в USB порт.

4.3 В трее появится сообщение о том, что найдено новое устройство.

4.4 Запустится мастер нового оборудования

4.5 Указываем в окошке «место поиска» папку с драйвером.

4.6 Пройдет процесс установки драйвера. Появится окошко сообщающее о том, что драйвер установлен. Чтобы проверить, что мы там наустанавливали — заходим в «Мой компьютер/Свойства/Оборудование/Диспетчер устройств» и находим там наш программатор

Винда увидела новое устройство и готова с ним работать.

USBtiny программатор поддерживается AVRDude, а это значит, что многие среды программирования будут с ним работать без проблем. Еще одним достоинством работы с AVRDude является то, что для работы с AVRDude существует множество оболочек GUI из которых можно выбрать подходящую именно для Вас (но об этом в следующей статье).

ДОПОЛНЕНИЯ.
1 Дмитрий Шпак сделал довольно удачную разводку программатора. Программатор получился небольшого размера, имеет стандартный разъем для программирования и, я считаю, будет удобен в работе. Плата двусторонняя.

USBtiny.lay — Разводка USBtiny от Дмитрия Шпака

2 Еще один вариант разводки от Андрея Баранова (Andru_48)


USBtiny.lay — Разводка USBtiny от Андрея Баранова

3 Вариант от mebadboy
Доброе время суток.
Новую печатку я не собирал. Я просто исправил старую — Дмитрий Шпак . Там минимум исправлений – одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.
USB-tiny-mebadboy — Печатка USBtiny от mebadboy
Вот лог dmesg при подключении под linux:
usb 4-2: new low speed USB device using uhci_hcd and address 2
usb 4-2: New USB device found, idVendor=1781, idProduct=0c9f
usb 4-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 4-2: Product: USBtiny

Источник

Работа с голым камнем, ATtiny

Внимание! Данный урок опирается на информацию из предыдущего урока о программаторах. Обязательно изучите сначала его. В прошлом уроке я рассказывал о том, как загрузить прошивку в Ардуино, используя внешние устройства: USB-TTL преобразователь и ISP программатор. Как нетрудно догадаться, при помощи этих же инструментов можно загрузить прошивку и в голый чип, будь то ATmega328 или ATtiny85. МК серии ATtiny являются младшими братьями АТмег, у них меньше ног, меньше памяти, меньше интерфейсов и таймеров, но зато они дешевле и хорошо подходят для мелких проектов. Давайте сравним несколько популярных МК:

МК/spec ATmega328 ATtiny85 ATtiny13
Flash 32k 8k 1k
SRAM 2k 512b 64b
EEPROM 1k 512b 64b
Цифр. Ног 23 6 6
Аналог. Ног 8 4 4
Таймеры 3 2 1
SPI + +
UART +
I2C + +
Цена 95р 70р 20р

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

UART и ISP

Для подключения прошиваторов к голому чипу нам нужно будет изучить распиновку (pinout) на нужный микроконтроллер. Распиновки бывают цветные и красивые (часто с ошибками), а бывают более серьёзные и правильные. Лучше всего открыть даташит на нужный МК и на второй же странице найти 100% правильную распиновку. Например для ATmega328, ATtiny85 и ATtiny13:

На данных “схемах” подписаны все функции пинов МК. Чтобы загрузить прошивку через USB-TTL, то есть при помощи “живущего в памяти” загрузчика (bootloader), МК должен иметь на борту аппаратный UART, то есть пины RX и TX. Если таких пинов нет – прошивку можно загрузить только через ISP программатор. Вы спросите, а как же Digispark? Там стоит МК ATtiny85, у которого нет UART, но прошивка загружается через USB! Верно, но там хитрые разработчики сделали не менее хитрый загрузчик, который имитирует USB, и прошивка на Digispark загружается при помощи специальной программы, которая запускается в фоне, когда вы нажимаете кнопку “Загрузить” в Arduino IDE. Резюмируя для общего случая:

  • Если в МК прошит загрузчик (bootloader) и на борту имеется аппаратный UART (пины RX TX), прошивку можно загрузить через USB-TTL “загружатор”, также через него можно заниматься отладкой кода при помощи Serial.
  • Если в МК нет пинов RX TX, значит прошивку можно загрузить только при помощи ISP программатора, да и о загрузчике в целом можно забыть, не нужен он. Отладкой всё ещё можно пользоваться, подключив USB-TTL и подняв на МК “программный” UART. Например в ядре для ATtiny85 (об этом ниже) уже идёт встроенный SoftwareSerial и можно им пользоваться.

Подключение программатора

Программатор, или Ардуину в качестве программатора, подключить очень просто. Смотрим распиновку и подключаем:

  • Шину ISP: пины MOSI, MISO и SCK. Они есть на всех МК
  • Сброс RST
  • Землю GND. Любую из имеющихся, они соединены внутри МК
  • Если МК не питается от своего источника, подключаем заодно VCC

Например ATmega328p подключаем к USB ASP (обсуждали в прошлом уроке) 6-пин вот так: Примечание: да, другие компоненты не нужны. Новый (из магазина) МК тактируется от внутреннего генератора на 8 МГц и может без проблем прошиваться прямо так как на схеме выше. Тиньки к тому же USB ASP подключаются так: Для удобства я использую макетку-дигиспарк, на которой разведены пины как раз под ISP 6-пин хэдер: втыкается выпирающим “ключом” в сторону МК. В плате выведены 8 пинов, нам нужны верхние 6 (на фото видно не запаянные пины ниже штекера). Купить можно тут. Также можно прошивать МК через Arduino (Arduino as ISP, обсуждали в прошлом уроке). Схема для ATtiny85: Примечание: конденсатор нужен обязательно! Подключили. Что дальше? Дальше мы уже можем работать с фьюзами через программу avrdudeprog (обсуждали в прошлом уроке), выбрав в списке соответствующий программатор и в списке МК – соответствующий МК. Также через эту программу можно загрузить скомпилированный “бинарник” – файл прошивки. Но нас всё-таки интересует работа через Arduino IDE.

Ставим “ядро”

Для того, чтобы работать с Attiny через Arduino IDE, нам нужно установить так называемое ядро, или как оно называется в самой IDE – плату. Для ATmega328 у нас уже есть стандартное ядро, например плата Arduino NANO. Но тут есть нюанс: внутренние настройки “платы” NANO рассчитаны на работу с загрузчиком (bootloader) и с внешним тактированием 16 Мгц, то есть лучше не рисковать и установить ядро, которое поддерживает работу без загрузчика и с возможностью выбора частоты, чтобы иметь полный контроль над платой. Могу посоветовать вот эти:

  • GyverCore – ядро для ATmega328, которое разработали мы с коллегой. Лёгкое и быстрое, возможность работы без загрузчика и широкий выбор вариантов тактирования. Ссылка для менеджера плат: https://alexgyver.github.io/package_GyverCore_index.json
  • MiniCore – ядро для поддержки и расширенной настройки МК ATmega328, ATmega168, ATmega88, ATmega48 и ATmega8. Ссылка для менеджера плат: https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  • ATTinyCore – ядро для поддержки и расширенной настройки МК ATtiny 441/841, 44/84, 45/85, 461/861, 48/88, 828, 1634, 87, 167. Ссылка для менеджера плат: http://drazzy.com/package_drazzy.com_index.json
  • MicroCore – ядро для поддержки и расширенной настройки МК ATtiny13, ATtiny13A и ATtiny13V. Ссылка для менеджера плат: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
  • megaTinyCore – ядро для поддержки и расширенной настройки МК ATtiny 3217, 1617, 817, 417, 3216, 1616, 816, 416, 1614, 814, 414, 214, 412, 212, 1607, 807, 1606, 806, 406, 1604, 804, 404, 204, 402, 202. Новые модели шьются по UPDI, по этой теме читайте отличную статью на русском языке. Можно сделать программатор из обычной Ардуины – читай тут. Данное ядро можно установить через менеджер плат, ищите по названию Arduino megaAVR board package, никаких ссылок вставлять не нужно.
  • MightyCore – ядро для поддержки и расширенной настройки МК ATmega8535, ATmega16, ATmega32, ATmega164, ATmega324, ATmega644 и ATmega1284. Ссылка для менеджера плат: https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
  • MegaCore – ядро для поддержки и расширенной настройки МК ATmega64, ATmega128, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90CAN32, AT90CAN64 и AT90CAN128. Ссылка для менеджера плат: https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json

Как установить ядро: идём в Файл/Настройки и вставляем ссылку в окно дополнительных ссылок для менеджера плат Далее идём в Инструменты/Плата/Менеджер плат… и находим нужное ядро. Устанавливаем После этого в списке плат появится новое семейство плат/МК на выбор. Я буду работать с ATtiny85 Нас интересует меню Clock – тактирование. ATtiny85 интересна тем, что может тактироваться от внутреннего источника на 8 МГц, но также может его “умножить” на 2 и получится 16 МГц, этот вариант называется 16 MHz (PLL). Это очень круто, потому что голый чип будет работать с почти максимальной скоростью, что делает его ничуть не хуже той же Arduino Nano. Выбираем программатор из списка (я буду прошивать при помощи USB ASP). Однократно выполним Инструменты/Записать загрузчик, чтобы применить настройки тактирования: Про остальные менюшки и варианты можно догадаться из их названия, или почтить подробное описание на GitHub по ссылкам выше.

Программирование

Итак, что же даёт нам ядро помимо выбора настроек МК? Можно программировать МК всё теми же командами, что и раньше! Мигать светодиодами через digitalWrite, измерять напряжение через analogRead и прочее прочее. Давайте напишем классический Blink:

PB3 – это номер пина, прямо как на распиновке. Всё! Осталось загрузить прошивку. Для этого нажимаем Скетч/Загрузить через программатор: Я подключил светодиод через резистор на 220 Ом и он мигает два раза в секунду, всё как написано. Что следует помнить при работе с тиньками: у них мало памяти, а все вот эти Ардуино-функции являются кошмаром индуса и занимают очень много места в памяти. Если тини85 ещё как-то переживёт такие издевательства и сможет уместить в себе вполне интересный проект из Ардуино-функций, то в тини13 уже сложно уместить что-то серьёзное. Напомню: всего 64 байта оперативной памяти и 1 кб флэша!

Важный момент по работе с ядрами для других МК, у которых больше 8 ног. Для сохранения удобства работы с IO функциями ядра (digital/analog/Read/Write) к пину можно обращаться как PIN_ + имя_ноги на распиновке, например подадим высокий сигнал на пин PC3: digitalWrite(PIN_PC3, HIGH); . Все остальные нюансы расписаны на странице ядер по ссылкам выше.

Я думаю вы поняли, что в целом работа с голыми МК не особо то и отличается от работы с обычной платой Arduino, и теперь можно переходить к сложным самоделкам на базе своей платы, в центре которой будет стоять микроконтроллер. Давайте поделюсь парой советов по минимальной обвязке.

Проект на голом МК

Зачем делать проект на своей плате и голом микроконтроллере?

  • Конечно же размер, своя плата получится компактнее в большинстве случаев.
  • Энергопотребление. Ни для кого не секрет, что всякие удобные штуки на плате ардуино потребляют огромный по меркам энергосбережения ток, и для автономного устройства лучше взять голый камушек.
  • Работая с голым камнем мы можем выбрать микроконтроллер под свои задачи. Например для мелкого проекта необязательно брать 328 мегу, если с задачей справится аттини13, которая стоит 20 рублей.
  • Возможная экономия. Ардуино нано стоит условно 170 рублей без доставки. Голая 328 мега на том же алиэкспресс – 100 рублей. Если брать десяток. В дорогущем российском чип и дип – 190 рублей. То есть если очень приспичит – можно и тут купить без особых потерь, потому что оригинальная нано стоит 3 тысячи рублей в том же ЧИДе.
  • Удобство разводки платы. Микросхема в корпусе под поверхностный монтаж находится на одном слое и не мешает дорожкам на другом слое.
  • Удобство монтажа. Даже если делать свою плату прототип лутом, то припаять на неё чип в 100 раз удобнее и быстрее, чем сверлить три десятка отверстий под ардуину, а потом их запаивать.
  • Мелкосерийное производство готовых или почти готовых плат, для себя если нужно несколько или на продажу. На том же jlcpcb можно заказать изготовление плат с распайкой внимание smd компонентов. То есть ардуину вам никто не припаяет, а вот ту же 328 мегу припаяют за 100 рублей, тиньку 13ю – за 35 рублей, а чем больше партия – тем дешевле. К этому вопросу мы вернёмся ближе к концу этого урока.

Итак, я на личном опыте убедился, что МК способен работать вообще без какой-либо обвязки. Это был проект “Читалка файлов с SD карты” на базе ATmega328. Проект достаточно непростой: МК читал текстовые файлы с карты памяти microSD и выводил их на OLED дисплей. Никаких лишних компонентов на плате нет, МК тактируется от внутренних 8 МГц и всё работает отлично. Даже карта памяти подключена напрямую к МК =) Но в надёжных устройствах делать так не рекомендуется! Минимальная обвязка для МК и полезные советы:

Соединять все ноги питания (GND, VCC) максимально толстыми и короткими дорожками между собой:

  • GND обычно делают полигоном на всю поверхность платы
  • Я где то читал, что VCC рекомендуется соединять дорожками “внутри шелкографии”, то есть под МК. Оно и логично, так они получатся короче всего

Поставить керамический конденсатор

100 нФ/nF (0.1 мкФ/uF) по питанию МК: между VCC и GND для сглаживания микропульсаций напряжения

  • Располагать максимально близко к пинам питания МК
  • Также параллельно ему можно поставить электролит (алюминиевый цилиндр) или танталовый конденсатор (компактный SMD чип) на 10-47 мкФ/uF, для сглаживания более серьёзных пульсаций напряжения. Особенно если МК питается от одного источника с другими потребителями, или используется некачественный источник питания.

Если нужна кнопка сброса (reset), подключаем её к RST и GND, т.е. кнопка должна подать на RST низкий сигнал. Внутри МК уже присутствует подтягивающий резистор на пин RST

  • При наличии кнопки и дорожки от пина RST рекомендуется подтягивать пин к VCC резистором на 10 кОм, потому что внутренний подтягивающий резистор имеет довольно большое сопротивление и наведённые на дорожку помехи (она выступает в роли антенны) могут привести к сбросу МК

Если нужен внешний тактовый генератор – подключаем его между пинами XTAL1 и XTAL2 (см. распиновку своего МК), и оба пина подключаем к GND через керамические конденсаторы на 18-22 pF/пФ. Более точный номинал конденсатора можно узнать из даташита на генератор, но в 99% это 22 пФ

  • Существуют генераторы со встроенными конденсаторами, например вот такие. На принципиальной схеме эти конденсаторы видно
  • Не забываем в настройках платы или напрямую во фьюзах поставить внешнее тактирование. ВНИМАНИЕ! Если фьюзы настроены на внешнее тактирование и внешний генератор не подключен к пинам – вы не сможете прошить МК даже при помощи ISP программатора!

Если нужна удобная прошивка по ISP – выводим штекер для подключения. Вот тут можно открыть мой модуль такого штекера для EasyEDA

Если нужна прошивка по UART – выводим RX, TX, GND. Для автоматического сброса МК перед началом прошивки у USB-TTL преобразователя должен быть выведен пин DTR. Его подключаем к RST через конденсатор на 0.1 мкФ. Также подключаем, VCC если нужно запитать МК от UART преобразователя. Прошивать можно любым USB-TTL преобразователем с выходом DTR. В показанной схеме подключение к преобразователю будет RX->TX, TX->RX!

Я думаю теперь вы готовы к созданию проекта на своей плате!

Перенос МК с Arduino на свою плату

Напомню, что источник тактирования играет важную роль при загрузке прошивки. Микроконтроллер может быть настроен на тактирование от внутреннего генератора на 8 МГц, либо на тактирование от внешнего.

  • При работе от внутреннего генератора МК запускается и работает просто при подаче напряжения, готов прошиваться как через UART (при наличии загрузчика), так и через ISP.
  • При настройке на работу от внешнего генератора МК сможет работать и прошиваться только при подключении внешнего генератора. То есть если генератор физически не подключен к МК – его нельзя будет прошить даже через ISP.

Это же касается переноса микроконтроллера с платы Ардуино на свою плату: на Ардуино стоит кварц. Если на вашей плате есть кварц для МК – всё будет работать сразу. Если на вашей плате нет кварца – перепаянный с Ардуино МК не будет работать и прошиваться. Для переноса МК с платы Ардуино на свою плату (без кварца) нужно настроить МК на внутреннее тактирование, об этом мы говорили в прошлом уроке. Для этого нужно подключить к плате программатор (USB-ASP или Arduino as ASP) и прошить фьюзы

  • Вручную через Avrdudeprog, выставив нужное во встроенном калькуляторе фьюзов.
  • Вручную через Arduino IDE, сконфигурировав и выставив фьюз-байт вручную в boards.txt.
  • Автоматически через конфигурацию ядра. Для Arduino Nano это может быть GyverCore или miniCore, там в меню платы есть пункт Clock -> Internal 8 MHz. В Arduino IDE жмём “Записать загрузчик” и прошиваются новые фьюзы, после чего можно выпаивать МК и запускать/прошивать его уже без кварца.

Видео

Источник

Оцените статью