Attiny13 программатор: Чем программировать ATTINY13A-PU DIP-8? — Хабр Q&A

Содержание

Arduino ISP программатор для ATtiny, Минимальная Arduino, DIY

Arduino это просто, быстро, а самое главное удобно для реализации идей. Но когда всё отлажено и схема, и код настает момент, когда избыточность плат просто не нужна. Идею то можно реализовать значительно дешевле и компактнее. Без горы проводов. Для того чтобы избавиться от ненужных примочек в готовом устройстве предлагаем прошить ваш код непосредственно в микроконтроллер. Ниже описан пример, где в качестве программатора используется Arduino Nano, а прошивать будем микроконтроллер ATtiny13 на котором, кстати, собран набор RDC1-0004, Управление вентиляцией.

Распакуйте архив attiny13.zip. В папке со скетчами создайте папку «hardware». Размещение папки со скетчами можно узнать, выбрав «Файл – Настройки».

Из распакованного архива скопируйте папку «attiny13» в папку «hardware». Должно получиться примерно так: «C:\Users\имя пользователя\Documents\Arduino\hardware\attiny13».

Перезапустите Arduino IDE.

Если сделали все правильно, в списке плат появиться строка «ATtiny13(ATtiny13a)».

В списке Frequency можно выбрать нужную частоту работы микроконтроллера.

Чтобы запрограммировать микроконтроллер, нужен программатор. Программатор можно сделать из Ардуино Нано. Для этого в нее нужно загрузить скетч ArduinoISP из имеющихся примеров.

Внимание! Если для ATtiny13 будет выбрана частота менее 1,2 МГц, пример ArduinoISP нужно изменить.

Строку

#define SPI_CLOCK (1000000/6)

нужно заменить на

#define SPI_CLOCK (128000/6)

Подключите Arduino Nano к ПК. В Arduino IDE выберите плату Arduino Nano, процессор ATmega328, нужный COM-порт.

Выберите «Скетч – Загрузка». Начнется загрузка программы.

Дождитесь окончания загрузки. Программатор готов.

Подключите программируемый микроконтроллер к Ардуино, как показано на рисунке.

Теперь в Arduino IDE выберите программируемый микроконтроллер, нужную частоту, COM-порт остается без изменений. Выберите используемый программатор, в нашем случае «Arduino as ISP».

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

Теперь в микроконтроллер можно загружать «рабочую» программу. Откройте скетч, который хотите загрузить, и выберите «Скетч – Загрузить через программатор». Начнется загрузка. Дождитесь окончания загрузки программы.

Если для вашего проекта вы выбрали другой контроллер из семейства ATtiny, тогда загружайте и распаковывайте в папку hardware дополнительные файлы описания.

tiny.zip

tiny Chip_Dip.zip

Схема подключения для ATtiny в корпусе DIP14:

Делаем из Arduino программатор ISP для Attiny 13, 13а, 85 (видео)

 Arduino весьма привлекательная и функциональная платформа, она способна на многое…. Именно многозначительностью слова «многое» я хотел сказать о том, что сам не в состоянии выжать из нее все то, на что она способна! Однако при всех ее преимуществах, есть и минусы. Когда дело дойдет до минимализма размеров, ограниченности функциональности и низкого бюджета проекта, то нет смысла «лепить» столь «мощный» контроллер как в Ардуино в грошовые поделки.  Здесь самые младшие контроллеры будут куда уместнее и кстати. Скажем Attiny 13, 13а, 85. Все они в состоянии работать как генераторы, как управляющие «ключи» для низких сигналов по прописанным критериям. Все это лишь подводит к мысли о том, что если сделать из Ардуинки программатор для микроконтроллеров, то в принципе его можно вполне применять для реализации поделок на этих микроконтроллерах. Именно о таком программаторе в этой статье.

Принцип заливки кода в Аttiny

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

Заливаем в Ардуинку скетч микроконтроллера

Делается это так. В меню среды Ардуино выбираем  Файлы=> Примеры=> Arduino ISP. После этого открывается скетч в новом окне, его и заливаем на подключенную плату Ардуино.

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

Подключение (схема) Attiny к Arduino

В моем случае я сделал это подключение на монтажной плате, которая вставляется в стандартные ножки Ардуино, при этом микроконтроллер тоже вставляется в монтажную колодку для заливки программы. Также есть светодиоды на плате, чтобы можно было проверить самые простые скетчи на месте. Общий вид платы получился следующим.

Плата была прорисована так, чтобы было все не только функционально, но и привлекательно!

Ну и тут же ссылка на архив со слоями, чтобы можно было заказать плату у производителей плат (pcb) скачиваем архив, а также сам проект под бесплатную программу прорисовки плат FreePCB

Сама плата вставляется в Ардуино UNO, без каких либо паек, доработок и всего прочего, что очень удобно! Вот так!

Плату можно заказать на сайте и после использовать для программирования микроконтроллеров

Итак, как подключение осуществлено, то пора заливать в среду Ардуино, то есть в программку еще одну плату.

Установка дополнительной платы Attiny в среде Arduino

Для этого просто скачиваем архив и распаковываем его туда, где и лежат платы, это папка hardware. У меня путь такой…, смотрите на картинке.

Все теперь при очередном открытии среды мы увидим, что появились новые платы Attiny13 (если не открывается, то проверьте чтобы архив был сразу в корне папки, а не лежал в «подпапках глубже»), именно их и выбираем, когда хотим залить скетч в микроконтроллер на надстройке, а не в платформу Ардуино. Теперь вы можете реализовывать самые простые проекты и придумывать сами себе задачи и решать их с помощью электронных помощников! Один из первых моих проектов для машины это реализация микроконтроллера для стоп-сигнала или указателя поворота «бегущие огни».

056-USB-программатор-легко! (USBTiny) — GetChip.net

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

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

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

 

и схему USB программатора USBTiny (домашняя страница)

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

Теперь все по порядку.

1  Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
055-T2313-SMD-2.zip (24038 Загрузок)
Если интересно — вот статья о преобразователе USB to UART.
В собранном виде преобразователь выглядит так:


Есть вариант платы на обычных-ТН компонентах — смотрим в конце статьи о преобразователе.

2 Немного модифицируем плату
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен — можно варьировать).

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


056-usbtinyisp-T2313.zip (15434 Загрузки)
056-fuse.png (7866 Загрузок)
Для Algorithm Builder и UniProf галочки ставятся как на картинке.

Для PonyProg, AVR Studio, SinaProg галочки ставяться инверсно.
Как правильно прошить AVR фьюзы

Наверно не нужно говорить о том, что для прошивки микроконтроллера Вам понадобится программатор. На скорую руку можно собрать LPT программатор и прошить при помощи UniProf.

 

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


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

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

 

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

5.1 Скачиваем драйвер, разархивируем его.
Страничка с драйверами


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

 


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

 


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

 


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

 


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

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

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

Я с USBTiny до этого не работал, но отзывы о нем в сети положительные (отличается надежностью и быстротой программирования) — мои тестовый прошивки это подтвердили. ATtiny2313 прошивается за 10 секунд (это вместе с проверкой). Микроконтроллер определяется и программируется надежно — не было ни одной ошибки во время моих тестов. Приятный в использовании программатор!

 

Смотрим также:
Программируем AVR-микроконтроллеры USBtiny + AVRdude + SinaProg. (в процессе написания)
055-UART to USB – простой преобразователь на ATtiny2313 (Версия 2). — преобразователь USB to UART из которого мы сделали преобразователь.
053-Практичный шнур для применения в электронных проектах. — Как сделать шлейф для программатора.
041-UART to USB – простой преобразователь на ATtiny2313. — Первый вариант платы USB to UART. В статье есть рисунок платы для для TH-компонентов.
Домашняя страничка преобразователя USB to UART
Домашняя страничка программатора USBtiny

 

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

 

USBtiny.zip (Одна Загрузка)

 

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

usbtiny_a_baranov.zip (5603 Загрузки)

 

3 Вариант от mebadboy
Доброе время суток.

Новую печатку я не собирал. Я просто исправил старую — Zalognikа. Там минимум исправлений — одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.

Вот лог 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

4 Вариант от Time191  (Владимир, г. Саратов).
Получилось начертить и развести в Протеусе плату программатора.
Делал под себя, под свой ISP-разъем.
Программировал прямо в плате, джампером соединив Reset c ISP.
Все заработало сразу — большое Вам спасибо!
056-usbusbtinytime191.zip (4759 Загрузок)
В приложении есть фото готового устройства, файл в Протеусе и в печатка в ARES. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.

(Visited 61 814 times, 6 visits today)

Программатор USBASP v2.0 для микроконтроллеров AVR + шлейф

Подключается  к  USB  порту  персонального  компьютера,  имеет  возможность  подачи  питания  на  программируемое  устройство. Может запитать программируемую плату напряжением 3,3В или (имеет встроенный регулятор напряжения 3,3В). Есть возможность  выбора  частоты  программирования,  работоспособен  под  управлением  операционных  систем  Linux,  Mac  OS  X  и  Windows.

Программатор удобен при работе на ноутбуках, поскольку не требует кабеля для подключения.

Список  поддерживаемых  микроконтроллеров:

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535


Tiny серия

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313


Серия Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535


CAN серия

AT90CAN128


PWM серия

AT90PWM2 AT90PWM3

Использование этого устройства и функции внутрисистемного программирования: SPI — System Programming Input, программирование через персональный компьютер (дословно), даёт возможность быстро и многократно программировать Ваше микропроцессорное устройство в собранном виде, не отключая его питания. При этом процесс отладки программного обеспечения радиолюбительского устройства заметно упрощается, сокращается затрачиваемое на это время.

Технические параметры:

ОС: Windows NT/2000/XP/VISTA/WINDOWS 7 (Linux/MacOS X)

Совместимость: большое количество AVR микроконтроллеров через SPI интерфейс (внутрисхемное программирование ISP)

Подключение: USB (не требуется COM-порт!)
Питание: программатор запитан от USB

Скорость программирования: до 5кБайт/сек

Индикация: светодиоды состояния работы программатора и обмена данными

Потребляемая мощность: не более 2,5 ВА 
Температура окружающей среды: -40…+50С

Разъём программатора:

1 — MOSI
2 — +5V
3 — не используется
4 — GND
5 — RESET
6 — GND
7 — SCK
8 — GND
9 — MISO

 

Делаем простой USB программатор USBTinyISP – RoboCraft

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». Здесь очень хорошо описаны мучения. Конечно, самый простой вариант «5 проводков» — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой». Что же делать? Естественно, на сцене появляется вездесущий USB.

Да, готовый программатор для AVR легко можно купить. Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с нормальными ценами. Только придется прилично подождать. Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек 🙁
Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».

Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.

Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу avrdude. Изначально я рассматривал для повторения самый «примитивный» вариант. Дальнейшие поиски меня привели к — USBTinyISP!!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.

Схема осталось оригинальной, за исключением перемычки для программирования (мне эта «фишка» абсолютно не нужна). А вот печатку я переделал под свои нужды.

(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)

Нам понадобится:

— кусок текстолита 63х33 мм
— МК Attiny2312 с колодкой под нее
— Разъем USB (тип B)
— Разъем 10х2 (как он правильно называется ???? Не знаю..)
— 4 резисторa 1.5 кОм (smd, маркировка 152)
— 1 резистор 1.5кОм (выводной 0.125Вт)
— 2 резисторa 33 Ом (smd, маркировка 330)
— 1 резистор 10к (smd, маркировка 103)
— 2 стабилитрона на 3.6В
— 2 конденсатора 22 pF (smd)
— 1 конденсатор 0.1 мF (smd)
— 2 светодиода (зеленый и красный)
— кварц на 12Mhz
— электролитический конденсатор 100x16V
— самовосстанавл. предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на http://www.ladyada.net/ так и сделали).
— два штырька для перемычки

Естественно, ЛУТ.

После ЛУТа

После травления:

Мой любимый сплав Розе

Паяем SMD элементы

Теперь перемычки и оставшиеся элементы

Готово!

Небольшое лирическое отступление. Давным давно,в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут…. И так замкнутый круг.

Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер….т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько:
— берем пиво и навещаем приятеля с программатором 🙂
— ищем компьютер с LPT-портом и паяем «5-проводков»
— нету LPT, но есть COM? Прекрасно, делаем программатор Громова!
— есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку»
— другие варианты

У меня ситуация более, чем шикарная — у меня уже был программатор AVR910. Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware).

avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):

avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex  -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:

avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.

Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей. И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера. Они сложены в архиве в папке usbtinyisp w32 driver v1.12.

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

Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!!
Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.

Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]

Жмем [Сервис]->[Записать загрузчик]

Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!! Все готово. Получите, распишитесь 🙂


А теперь небольшой БОНУС, расширяющий область применения нашего программатора. А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):

Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный FUSE Doctor :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.

Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!

Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта 🙂

Приклеиваем (для удобства) соответствующие надписи:

И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье.
Весь материал (печатку, прошивку,драйвера и фото) для повторения можно забрать одним архивом тут.

заливаем собственную прошивку в фонарик / Лайв им. SinuX / iXBT Live

Наверняка у многих имеются фонари фирмы Convoy, они давно зарекомендовали себя как недорогие и качественные источники света. Но мало кто знает, что с помощью программатора за $3 и клипсы за $3 можно залить в некоторые фонари кастомную прошивку, которая будет иметь больше функций или будет удобнее в использовании. Сразу оговорюсь, что в статье речь пойдет о прошивке фонарей с драйверами на базе микроконтроллера Attiny13a, такие драйвера стоят во всех конвоях S серии (кроме нового S9), а так же в Convoy M1, M2, C8. Многие другие производители так же ставят в свои фонари драйвера с Attiny, к ним данный мануал тоже применим, но следует уделять внимание фьюзам и используемым портам Attiny.

Краткий ликбез

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

  • Кнопка выключения — у «тактических» EDC фонариков типа Конвоев обычно располагается в хвосте
  • Аккумулятор — обычно это Li-ion банка
  • Драйвер — самая важная часть фонаря, его мозги
  • Светодиод — говорит сам за себя

Драйвер и светодиод

 

Из всего этого безобразия нас, как вы уже поняли, интересует в первую очередь драйвер. Он отвечает за работу фонаря в различных режимах яркости, запоминание последнего включенного режима и прочую логику. В одноаккумуляторных фонарях чаще всего встречаются ШИМ-драйвера. В качестве силового ключа в таких драйверах обычно используется либо полевой транзистор, либо куча линейных регуляторов AMC7135. Например, так выглядит довольно популярный драйвер Nanjg 105D:

Микроконтроллер Attiny13a содержит в себе прошивку, которая определяет логику работы фонаря. Далее я покажу, как можно залить в этот микроконтроллер другую прошивку, чтобы расширить функционал фонаря.

Предыстория

Сейчас на рынке представлено поистине огромное количество карманных EDC фонариков, и, что характерно, каждый производитель норовит изобрести свою собственную прошивку с собственным уникальным™ управлением. Из всех существующих решений мне больше всего нравилась прошивка, с которой до недавних пор поставлялись фонари Convoy с драйвером Nanjg 105D. Она имела 2 группы режимов (1 группа: Мин-Средний-Макс, 2 группа: Мин-Средний-Макс-Строб-SOS). Смена групп в ней осуществлялась интуитивно просто: включаем минимальный режим, спустя пару секунд фонарь моргнёт — кликаем кнопкой, и группа режимов переключена. С недавних пор Convoy начал поставлять свои фонари с новой прошивкой biscotti. Она имеет больше возможностей (12 групп режимов, возможность включения-отключения памяти последнего режима, запоминание режима в выключенном состоянии (т.н. off-time memory)), но у нее есть несколько жирных минусов, которые лично для меня перечеркивают все достоинства:

  • Сложное управление. Чтобы сменить группу режимов нужно помнить наизусть шаманскую последовательность кликов кнопкой
  • Off-time memory не работает при использовании светящихся кнопок (например, таких)
  • Много бесполезных групп режимов, отличающихся лишь порядком следования

Когда у меня накопился приличный зоопарк фонарей с разными прошивками, но одинаковыми драйверами, я решил унифицировать их, залив всем одну и ту же прошивку. Все бы ничего, но нельзя просто так взять и перешить Nanjg 105D на старую добрую прошивку с двумя группами, потому что в свободном доступе ее нет, и производитель установил запрет на считывание дампа памяти микроконтроллера, т.е. оригинальную прошивку взять неоткуда. В репозитории прошивок для фонарей аналога данной прошивки нет, поэтому у меня остался один выход — написать все самому.

Встречайте Quasar v1.0

Взяв за основу прошивку luxdrv 0.3b от DrJones, я сваял собственную с блекджеком и лунапарками. Я постарался сделать ее максимально похожей на стоковую прошивку Nanjg 105D и более масштабируемой. Что может мой Quasar:

  • 2 группы режимов: (Минимальный — Средний — Максимальный — Турбо) и (Минимальный — Средний — Максимальный — Турбо — Строб — Полицейский строб — SOS)
  • Строб злой (частота вспышек около 12Гц)
  • Новый режим — полицейский строб — делает прерывистые серии по 5 вспышек, режим может быть полезен велосипедистам, т.к. повышает заметность
  • Переключение групп осуществляется как в заводской прошивке: включаем первый режим, ждем пару секунд, кликаем сразу после того, как фонарь моргнет
  • Путем модификации исходников можно добавить до 16 групп, в каждой группе можно задать до 8 режимов
  • Используется традиционная on-time память, можно использовать светящиеся кнопки без потери функциональности
  • При разряде аккумулятора ниже 3В фонарь начинает сбрасывать яркость, но полностью не отключается — используйте аккумуляторы с защитой, если боитесь их убить.
  • Удобная фича для проверки текущего уровня аккумулятора: в любом режиме делаем 10-20 быстрых полу-нажатий  кнопкой до тех пор, пока фонарь не перестанет включаться. После этого фонарь сделает от 1 до 4 вспышек, каждая вспышка означает уровень заряда соответственно < 25%, < 50%, < 75% и < 100%.

Исходники, скомпилированный бинарник с двумя группами режимов и проект для Atmel Studio вы можете найти на моем гитхабе. Помните, что исходники распространяются под лицензией CC-BY-NC-SA, и прошивку вы используете на свой страх и риск без каких-либо гарантий.

Принадлежности

Для заливки кастомной прошивки нам понадобятся:

  • SOIC клипса Купить
  • Любой клон Arduino Nano 3.0 для использования в качестве программатора Купить
  • Arduino у меня уже была, поэтому я решил завести отдельный самостоятельный девайс для прошивки фонарей и купил USBISP программатор Купить
  • Dupont провода для подключения клипсы к программатору Купить

 

Подготовка программатора

 

Для прошивки драйвера подойдет обычная Arduino Nano 3.0 с залитым скетчем ArduinoISP, но я решил завести отдельный программатор, поэтому купил USBISP. Он имеет форм-фактор флешки в алюминиевом корпусе:

Из коробки этот программатор определяется на компе как HID устройство и работает только с китайским кривым софтом, чтобы использовать его с avrdude можно перепрошить его в USBASP. Для этого нам, как ни странно, понадобится другой рабочий программатор. Здесь нам поможет Arduino Nano, подключаем её к компьютеру, открываем Arduino IDE и открываем стандартный скетч ArduinoISP:

Раскомменчиваем строку #define USE_OLD_STYLE_WIRING:

И заливаем скетч в Nano. Теперь у нас есть AVRISP программатор, которым можно перепрошить наш USBISP в USBASP. Для этого нам в первую очередь понадобится avrdude, он лежит в папке установки Arduino IDE по пути \hardware\tools\avr\bin. Для удобства советую добавить полный путь к avrdude.exe в переменную окружения PATH.

Теперь нам необходимо открыть USBISP и перевести его в режим программирования, установив перемычку UP:

Вот так:

Заодно убеждаемся, что на плате распаян Atmega88 или 88p, как в моем случае:

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

Теперь внимательно смотрим на распиновку USBISP программатора, нанесенную на его алюминиевом корпусе, и подключаем его к Arduino Nano:

  • VCC и GND к VCC и GND сответственно
  • MOSI к D11
  • MISO к D12
  • SCK к D13
  • RESET к D10

У меня не оказалось Female-Female проводов, поэтому я заюзал мини-макетку:

Следующий шаг — скачиваем прошивку usbasp.atmega88-modify.hex, подключаем Arduino к компу, запускаем консоль и переходим в папку с сохраненной прошивкой. Для начала выставим фьюзы командой:

avrdude -p -m88 -c avrisp -b 19200 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m

Затем заливаем прошивку командой:

avrdude -p m88p -c avrisp -b 19200 -U flash:w:usbasp.atmega88-modify.hex

После этого убираем перемычку на USBISP, подключаем его к компьютеру, и если все сделано правильно, — на нем загорится синий светодиод:

Теперь у нас есть полноценный компактный USBASP программатор в удобном металлическом корпусе.

SOIC клипса

Программировать микроконтроллеры можно и без клипсы, подпаивая каждый раз проводки к соответствующим контактам, но это настолько рутинный процесс, что лучше все же не пожалеть денег на клипсу. Первое, что нужно сделать после получения клипсы, — это «распушить» контакты, поскольку из коробки они расположены слишком близко друг к другу, и к ним невозможно нормально подпаять провода:

Подключаем контакты клипсы к программатору в соответствии с распиновкой микроконтроллера:

Для большей надежности я припаял провода к клипсе и затянул все это термоусадкой:

Заливаем прошивку в фонарь

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

Крепим клипсу, соблюдая ориентацию. Ориентир в данном случае — кругляш на корпусе микросхемы, он обозначает первый её пин (RESET в нашем случае):

Смотрим, чтобы все пины клипсы утопились в корпус. Подключаем программатор к компу, теперь дело осталось за малым — нужно залить прошивку) Для этого идем на гитхаб, качаем бинарник quasar.hex, запускаем консоль, переходим в папку с бинарником и выполняем команду:

avrdude -p t13 -c usbasp -u -Uflash:w:quasar.hex:a -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m

Если все нормально, то пойдет процесс загрузки прошивки, в этот момент ни в коем случае нельзя трогать клипсу, лучше вообще не дышать) При успешной прошивке в конце вывода будет примерно следующее:

Просто, да? А вот нифига, с вероятностью 90% вместо загрузки прошивки вы увидите это:

Причина чаще всего кроется в том, что у новых моделей драйверов замкнуты пины 5 и 6 (MISO и MOSI), что делает невозможным программирование. Поэтому если avrdude жалуется на target doesn’t answer, то первым делом вооружаемся скальпелем и внимательно смотрим на плату. Нужно перерезать дорожку, как показано на картинке:

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

Модификация прошивки

Скомпилированная прошивка на гитхабе посути является чуть более продвинутым аналогом оригинальной прошивки, поэтому куда интереснее собрать собственную версию прошивки со своими группами и режимами. Сейчас я расскажу, как это сделать. Первым делом качаем и устанавливаем Atmel Studio с официального сайта. Потом скачиваем все файлы проекта (кто умеет в git — могут просто клонировать всю репу) и открываем Quasar.atsln через установленную студию:

Перечислю наиболее интересные места в коде:

#define LOCKTIME 50

Задает время, через которое текущий режим будет сохранен. Значение 50 соответствует 1 секунде, соответственно поставив 100 можно получить интервал ожидания в 2 секунды

#define BATTMON 125

Задает критический уровень напряжения на аккумуляторе, при достижении которого фонарь начнет сбрасывать яркость. У стандартного Nanjg 105D величина 125 соответствует примерно 2.9 вольтам, но все зависит от величин резисторов делителя напряжения на плате. Если удалить эту строку целиком — фонарь не будет следить за напряжением аккумулятора.

#define STROBE        254
#define PSTROBE       253
#define SOS           252

Определения режимов-мигалок, цифровые значения трогать не следует, если не нужен какой-либо режим — соответствующую строку можно удалить, не забыв после этого поправить объявления групп режимов в массиве groups.

#define BATTCHECK

Включает режим индикации уровня аккумулятора после 16 быстрых кликов. Можно удалить, если эта функция не нужна.

#define MEM_LAST

Задает запоминание последнего режима. Возможны следующие значения: MEM_LAST — фонарь включается в последнем включенном режиме, MEM_FIRST — фонарь всегда включается в первом режиме, MEM_NEXT — фонарь всегда включается в следующем режиме.

#define MODES_COUNT     7
#define GROUPS_COUNT    2

Задают количество режимов в группе и количество групп соответственно. Тесно связаны со следующим массивом groups:

PROGMEM const byte groups[GROUPS_COUNT][MODES_COUNT] = {{ 6, 32, 128, 255, 0, 0, 0 },
                                                        { 6, 32, 128, 255, STROBE, PSTROBE, SOS }};

Здесь перечислены сами группы режимов работы. Числа 6, 32, 128, 255 — значения яркости, STROBE, PSTROBE, SOS — обозначения специальных режимов. Нулевые значения яркости игнорируются, поэтому в разных группах можно задавать разные количества режимов (в данном случае в первой группе 4 режима, во второй — 7).

Например, если вы хотите оставить один единственный режим работы со 100% яркостью, то сделать это можно так:

#define MODES_COUNT     1
#define GROUPS_COUNT    1
PROGMEM const byte groups[GROUPS_COUNT][MODES_COUNT] = {{ 255 }};

Если вам нужны 3 группы режимов без мигалок и с обратным следованием (от максимального к минимальному), то можно сделать так:

#define MODES_COUNT     4
#define GROUPS_COUNT    3
PROGMEM const byte groups[GROUPS_COUNT][MODES_COUNT] = {{ 255, 0, 0, 0 },
                                                        { 255, 64, 6, 0 },
                                                        { 255, 128, 32, 6 }};

При таком раскладе в первой группе всего один режим со 100% яркостью, во второй — 3 режима, в третьей — 4 режима с более плавным уменьшением яркости. Легко и просто, правда? Остается лишь скомпилировать исходник в hex файл с помощью студии, для этого выбираем «Release» в диспетчере конфигураций и жмем «Запуск без отладки»:

Если нигде в коде не накосячили, то в папке проекта появится директория Release, а в ней — hex файл, который остается залить в драйвер описанным в предыдущем разделе способом.

На этом все, надеюсь сей мануал будет кому-нибудь полезен. Если у кого возникнут вопросы — милости прошу в комменты)

Ни слова о работе: Arduino Uno

Что-то не удалось мне настроить Arduino IDE 1.6.5 — там появился Board manager, и с ним я что-то недопонял.

Поэтому, не упираясь в IDE 1.6.x, я поставил старенькую Arduino IDE 1.0.5. О том как прошивать ATtiny13 на Arduino информации много, но всё-таки мне пришлось собирать её из разных источников.


На всякий случай: у меня Ubuntu 14.04 LTS 64-bit, хотя это и не принципиально.

Понадобятся

  1. ATtiny13 — собственно, его и программируем. Мой — ATtiny13A-PU (см. datasheet). PU — это DIP-корпус.
  2. Arduino UNO — это будет наш программатор.
  3. Breadboard.
  4. Провода для breadboard.
  5. Конденсатор 10 мкФ или больше.
  6. Для проверки наших трудов на скетче blink из Arduino IDE дополнительно понадобятся светодиод и резистор 250 Ом к нему.

Шаг 1

Превращаем Arduino UNO в программатор:


  1. Запускаем Arduino IDE 1.0.5.
  2. Убеждаемся, что:
    Tools => Board => Arduino UNO,
    Tools => Serial Port => что-то там,
    Tools => Programmer => AVRISP mkll
  3. Открываем скетч программатора:
    File => Examples => ArduinoISP
  4. Загружаем ArduinoISP в Arduino UNO.
Шаг 2
Собираем такую схему:
Конденсатор предотвращает автоматический перезапуск микроконтроллера после заливки нового скетча.
Резистор и светодиод для программирования ATtiny13 не нужны. Они понадобятся только для демонстрации результата на примере скетча blink.
Шаг 3

Подготавливаем Arduino IDE 1.0.5 к работе с ATtiny13:

  1. Загружаем ZIP-файл с настройками для ATtiny13 из этого репозитория (кнопка «Download ZIP»).
  2. Распаковываем каталог «attiny» из архива в каталог <каталог ArduinoIDE>/hardware. Там теперь должно быть 3 каталога: arduino, attiny, tools.
  3. ВАЖНО для работы функций delay, millis — редактируем файл <каталог ArduinoIDE>/hardware/arduino/cores/arduino/wiring.c. Ищем текст:
    #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    и дописываем в конец » || (__AVR_ATtiny13__)»:
    #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || (__AVR_ATtiny13__)
  4. Перезапускаем Arduino IDE.
Шаг 4
Заливаем пробный скетч в ATtiny13:
  1. Открываем в Arduino IDE скетч blink (File => Examples => 01.Basics => Blink).
  2. Заменяем в скетче значения 13 (пин со светодиодом) на 4.
  3. Устанавливаем опции меню:
    Tools => Board => ATtiny13 (internal 9.6 MHz clock),
    Tools => Serial Port => что-то там,
    Tools => Programmer => Arduino as ISP
  4. Заливаем скетч как обычно File => Upload (Ctrl+U).
Любуемся мигающим светодиодом.

Как запрограммировать ATTINY13A с помощью Arduino Nano | Антонио Манкузо

В этом посте описаны шаги, необходимые для программирования микроконтроллера ATTINY13A с помощью Arduino Nano.

В нем описывается, как запрограммировать Arduino Nano в качестве ISP-программатора, как добавить определение ATTINY13 в диспетчер платы Arduino IDE и как загрузить простую программу (мигание светодиода) в микроконтроллер.

ATTINY13A DataSheet определяет его как 8-битный микроконтроллер с 1 КБ флэш-памяти, 64 байтами EEPROM и 64 байтами ОЗУ (да, вы правильно прочитали: 64 байта ОЗУ) 🙂 подходит для любого типа приложений.Он сияет и очень полезен в приложениях, где требуется небольшая площадь и низкое энергопотребление (вы можете питать его от батареи CR2032).

Отличительной особенностью Arduino IDE является функция Board Manager, которая позволяет использовать IDE для платформ, отличных от Arduino.

Серия микроконтроллеров ATTINY является одной из таких платформ и полностью поддерживается Arduino IDE.

На изображении выше показана распиновка ATTINY13A. Контакты 1, 5, 6, 7 имеют особое значение, поскольку они используются для программирования микроконтроллера или, другими словами, используются для передачи программы во флэш-память для выполнения.

Ниже приведена подробная распиновка разъема ISP, доступного на плате Arduino Nano

Пришло время углубиться в детали и посмотреть, как правильно подключить ATTINY13A к плате Arduino Nano

Соединить ATTINY13A и Arduino Nano, как показано на рисунке ниже.

Обратите внимание на ориентацию ATTINY13A и найдите крошечную точку на верхней поверхности микроконтроллера. Он представляет собой положение вывода №1 на микросхеме.

Примечание : Обратите внимание, что резистор и светодиод НЕ нужны для программирования ATTINY13A.Я добавил их только в целях тестирования (см. видео ниже)

Ниже некоторые детали разводки, которую я выполнил на макетной плате.

Обратите внимание, что я следовал цветовому коду проводов, чтобы читателю было очень просто правильно их подключить.

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

Показано, как запрограммировать Arduino Nano в качестве ISP-программатора, как добавить определение ATTINY13 в диспетчер платы и как загрузить простую программу (мигание светодиода) в микроконтроллер.

Примечание : URL-адрес менеджера платы, используемый в видео: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

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

Как мне запрограммировать ATTINY13A? – Gzipwtf.com

Как запрограммировать ATTINY13A?

Для этого нужно выполнить два шага: во-первых, перейдите в Tools-Board и выберите ATtiny13, а во-вторых, нажмите кнопку «Записать загрузчик» в нижней части раскрывающегося меню инструментов.Обратите внимание на версию ATtiny, перейдите в Tools-Processor Version и выберите ATtiny13 или ATtiny13a в зависимости от вашего чипа.

Как добавить ATTINY13A в Arduino IDE?

Выберите «Arduino as ISP» в раскрывающемся меню Programmer. Выберите правильный порт. Выберите «ATtiny13A standalone 4.8Mhz» в раскрывающемся меню «Плата». Откройте скетч, который хотите загрузить на attiny13a, и загрузите код, нажав кнопку загрузки.

Как мне запрограммировать мой ATtiny85 Arduino?

2.Запрограммируйте ATtiny85 с помощью Arduino

.
  1. Войдите в IDE Arduino в меню Tools > Board.
  2. Выберите вариант под надписью ATtiny25/45/85.
  3. В разделе Инструменты выберите Процессор: ATtiny85 и Часы: Внутренние 1 МГц.
  4. Измените настройку программатора на USBtinyISP.
  5. Когда вы будете готовы к загрузке, подключите ATtiny85 к специальному разъему.

Что такое ATTINY13A?

Atmel ATTINY13A-PU — это 8-контактный DIP-микроконтроллер серии AVR TINY, оснащенный высокопроизводительной 8-разрядной архитектурой Advanced RISC с низким энергопотреблением.Его рабочий предел напряжения составляет от 1,8 до 5,5 В. Он имеет тактовую частоту процессора 20 МГц, 6 линий ввода-вывода общего назначения, 1 КБ флэш-памяти ISP, 64 байт EEPROM, 60 байт RAM.

Что такое at tiny?

ATtiny (также известный как TinyAVR) — это подсемейство популярных 8-битных микроконтроллеров AVR, которые обычно имеют меньше функций, меньше контактов ввода-вывода и меньше памяти, чем другие чипы серии AVR. Первые члены этого семейства были выпущены в 1999 году компанией Atmel (позже приобретенной компанией Microchip Technology в 2016 году).

Как запрограммировать attiny13/13a на Arduino?

Теперь ваш Arduino настроен как программатор для программирования других микросхем.Чтобы запрограммировать ATtiny13 или 13a, вам необходимо установить файлы ядра. Для этого мы будем использовать основные файлы, созданные sleepmanj, которые я считаю самыми простыми в установке и лучшими в использовании.

Как исправить неработающий загрузчик attiny13?

Для этого нужно выполнить два шага: во-первых, перейдите в Tools-Board и выберите ATtiny13, а во-вторых, нажмите кнопку «Записать загрузчик» в нижней части раскрывающегося меню инструментов. Обратите внимание на версию ATtiny, перейдите в Tools-Processor Version и выберите ATtiny13 или ATtiny13a в зависимости от вашего чипа.

Как установить Gogo DIY ATtiny на Arduino?

Чтобы установить эти файлы, откройте IDE Arduino и перейдите в раскрывающееся меню файлов, затем выберите настройки. Вставьте этот URL-адрес «https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json», где он говорит «Дополнительные URL-адреса менеджера досок:».

Что вы думаете о серии attiny13?

Чипы серии ATtiny13 — чрезвычайно дешевые и полезные чипы для небольших проектов, которым не нужен полноценный Arduino, но из-за очень устаревших руководств и недостатка информации мне потребовалась большая часть дня, чтобы понять, как программировать они с Arduino IDE.

КАК — Программирование ATtiny13 с помощью USBtinyISP « Adafruit Industries — Создатели, хакеры, художники, дизайнеры и инженеры!


Ларс покажет вам, как программировать ATtiny13 с помощью Adafruit USBtinyISP–

Для программирования ATtiny13 или других крошечных микроконтроллеров AVR я использую USBtinyISP. Это программатор сборки своими руками, вы можете купить пакет, и вам нужно только припаять. Приятно то, что он работает с USB и может напрямую питать схему.Более подробную информацию о программаторе можно найти здесь: http://www.ladyada.net/make/usbtinyisp/ Для программирования я использую Windows Vista. USBtinyISP использует драйвер USB для работы под Windows. Это хорошо работает в 32-битной системе Vista, но в 64-битной системе вам нужно отключить проверку неподписанных драйверов Windows. Это можно сделать, нажав F8 во время загрузки и выбрав вариант загрузки внизу. Это необходимо делать каждый раз, когда вы хотите запрограммировать микроконтроллер. Возможно, читатель знает решение этой проблемы? Пожалуйста, напишите в комментариях.USBtinyISP дешевый и отлично работает…

Хватит макетировать и паять – приступайте к изготовлению немедленно! Игровая площадка Adafruit’s Circuit Playground битком набита светодиодами, датчиками, кнопками, клипсами типа «крокодил» и многим другим. Создавайте проекты с помощью Circuit Playground за несколько минут с помощью сайта программирования MakeCode с функцией перетаскивания, изучайте информатику с помощью класса CS Discoveries на code.org, переходите в CircuitPython, чтобы вместе изучать Python и аппаратное обеспечение, TinyGO или даже используйте Arduino. ИДЕ.Circuit Playground Express — новейшая и лучшая плата Circuit Playground с поддержкой CircuitPython, MakeCode и Arduino. Он имеет мощный процессор, 10 NeoPixels, мини-динамик, инфракрасный прием и передачу, две кнопки, переключатель, 14 зажимов типа «крокодил» и множество датчиков: емкостное касание, ИК-близость, температура, свет, движение и звук. Целый огромный мир электроники и кодирования ждет вас, и он умещается на вашей ладони.

Присоединяйтесь к более чем 32 000 создателей на каналах Adafruit в Discord и станьте частью сообщества! http://адафру.it/discord

Хотите поделиться потрясающим проектом? Выставка Electronics Show and Tell проходит каждую среду в 19:00 по восточному времени! Чтобы присоединиться, зайдите на YouTube и проверьте чат шоу — мы опубликуем ссылку там.

Присоединяйтесь к нам каждую среду в 20:00 по восточноевропейскому времени, чтобы задать вопрос инженеру!

Подпишитесь на Adafruit в Instagram, чтобы узнать о совершенно секретных новых продуктах, закулисье и многом другом https://www.instagram.com/adafruit/

CircuitPython — Самый простой способ программирования микроконтроллеров — CircuitPython.орг

Получайте единственный свободный от спама ежедневный информационный бюллетень о носимых устройствах, ведении «производственного бизнеса», электронных советах и ​​многом другом! Подпишитесь на AdafruitDaily.com!

Извините, форма комментариев в настоящее время закрыта.

Программирование ATTiny13A с помощью Arduino и сервоинтерпретатора —

Итак, я просматривал eBay в поисках дешевых предложений на чипы Atmel, когда наткнулся на пару чипов ATTiny13 за 2,50 фунта стерлингов. Я просто обязан был их иметь! В конце концов, как трудно это может быть?

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

Когда они прибыли, меня осенило, что я на самом деле понятия не имею, как программировать эти маленькие чипы. Дом и я часами пробовали различные способы программирования ATTiny, которые мы нашли в Интернете, но безуспешно. Только пока он не ушел, я сел за свой компьютер и нашел учебник Tekstop по «Маленькому программированию», и у меня был какой-то успех. С парой модификаций его файлов вы сможете программировать эти недорогие чипы в кратчайшие сроки!

Подключите ATTiny13A к Arduino, следуя приведенной ниже схеме.

13-й контакт Arduino — 7-й контакт ATTiny
Контакт 12 Arduino — контакт 6 ATTiny
11-й контакт Arduino — 5-й контакт ATTiny
10-й контакт Ardunio — 1-й контакт ATTiny
Arduino +5v      – ATTiny pin 8
Arduino GNd    – контакт 4 ATTiny

Дополнительно:
GND – отрицательная сторона светодиода
ATTiny контакт 3 – резистор (250 Ом) – положительная сторона светодиода

ATTINY13A Спецификация: http://www.atmel.com/Images/doc8126.pdf Информация о
Arduino ISP: http://arduino.cc/en/Tutorial/ArduinoISP

Шаг 2: Настройка IDE

  • Откройте IDE Arduino и подключите Arduino
  • .
  • Перейдите в файл > Примеры > ArduinoISP
  • Убедитесь, что выбраны правильные плата и порт (Инструменты > Плата/последовательный порт)
  • Нажмите кнопку загрузки

Это запрограммирует вашу плату Arduino для использования в качестве интернет-провайдера (в системном программаторе)

  • После завершения закройте IDE

Теперь нам нужно настроить IDE, чтобы распознать наш ATTiny13A как совместимый с Arduino чип

  • Загрузите и распакуйте этот файл: https://github.ком/текстоп/аттини/дерево/Arduino1
  • Скопируйте папку «attiny» из распакованного ZIP-файла в папку /hardware/ в каталоге установки Arduino IDE

Затем нам нужно сместить тактовую частоту (не очень элегантное решение, но я работаю над этим!):

  • Откройте Hardware/attiny/boards.txt
  • Прокрутите файл до конца, последние несколько строк содержат данные, относящиеся к нашему чипу
  • Замените «attiny13.build.f_cpu=9600000L» на «attiny13.build.f_cpu=1000000L”

Это исправит время задержки и т. д.

  • Снова откройте Arduino IDE
  • Перейдите в меню «Инструменты»> «Плата» и выберите «ATtiny13 (внутренняя частота 9,6 МГц)».

Arduino +5v      — ATTiny, контакт 8
Arduino GNd    — ATTiny, контакт 4

Подробнее: Программирование ATTiny13A с использованием Arduino и сервоинтерпретатора

Запрограммируйте ATtiny с помощью Arduino Nano — Arduino, ESP8266, ESP32 и компоненты Raspberry Pi

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

Соединение между Arduino и ATtiny, по сути, одинаково, независимо от того, какой у вас Arduino. Нужно подключить прослушиватель ISP между обоими чипами. Но для UNO и Nano есть небольшое дополнение в виде конденсатора между землей и контактом сброса:

В большинстве схем используется электролитический конденсатор емкостью 10 мкФ, но я использовал конденсатор elco емкостью 33 мкФ, и он работал отлично.

Чтобы использовать ATtiny 45 или 85, вам необходимо загрузить некоторое программное обеспечение.Для Attiny13 есть другие ядра. Если вы используете ядро ​​Attiny13, вам также необходимо создать файл boot.txt
. Здесь вы также найдете ядро ​​для Attiny. и несколько из них здесь.

Теперь создайте папку «Hardware» в папке, в которой Arduino IDE сохраняет свои эскизы. Разархивируйте этот файл во вновь созданную папку оборудования. Если у вас была запущена Arduino IDE, вам нужно закрыть ее и перезапустить, чтобы она могла читать нужные файлы.

Теперь сделайте следующее:

  • Подключите Arduino Nano и Attiny85, как описано выше, но пока не подключайте конденсатор.
  • Загрузить «Arduino как скетч провайдера»
  • Отключить USB
  • Вставной конденсатор
  • Переподключить USB
  • Загрузите скетч Attiny по вашему выбору в Arduino IDE (например, скетч «blink»)
  • Выберите «ATtiny85 с Arduino в качестве интернет-провайдера» в году «Инструменты-> платы»
  • Загрузить
  • Игнорировать ошибки о PAGEL и BS2
  • Удалить USB
  • Удалите конденсатор и хотя бы линию сброса Attiny (та, что от контакта 1)

Теперь ваш эскиз должен правильно отображаться в ATtiny.

Настройка ATtiny для работы на частоте 8 МГц (для поддержки SoftwareSerial)

По умолчанию ATtiny работает на частоте 1 МГц (настройка, используемая немодифицированными пунктами меню «ATtiny45» и т. д.). Перед программированием необходимо выполнить дополнительный шаг, чтобы настроить микроконтроллер для работы на частоте 8 МГц, что необходимо для использования библиотеки SoftwareSerial. После подключения микроконтроллера выберите соответствующий пункт в меню «Платы» (например, «ATtiny45 (8 МГц)»). Затем запустите команду «Записать загрузчик» из меню «Инструменты».Это настраивает фьюз-биты микроконтроллера так, чтобы он работал на частоте 8 МГц. Обратите внимание, что фьюз-биты сохраняют свое значение до тех пор, пока вы не измените их явным образом, поэтому вам нужно будет выполнить этот шаг только один раз для каждого микроконтроллера. (Обратите внимание, что это фактически не записывает загрузчик на плату; вам все равно нужно будет загружать новые программы с помощью внешнего программатора.)

Что касается написания скетча для ATtiny85, то есть только ограниченный набор инструкций:

См. также:

Программирование Attiny с помощью Arduino 1.01.

TinyWireM и TinyWireS: библиотека Wire (I2C/TWI) для ATtiny85 (с использованием USI)

Нравится:

Нравится Загрузка…

Родственные

Программирование ATTiny13A с помощью Arduino, не удается записать загрузчик: arduino

Я программирую ATTiny13A с помощью Arduino Nano. Я программировал IC как это раньше.

Я следовал руководству arduino.cc — загрузил скетч ISP, установил плату Microcore, но когда я записываю загрузчик, я получаю эту ошибку:

Arduino: 1.8.10 (Linux), плата: «ATtiny13, внутренний генератор 1,2 МГц, 4,3 В, включено (по умолчанию)»

avrdude: Версия 6.3-20190619

Copyright (c) 2000-2005 Брайан Дин, http://www. bdmicro.com/

Copyright (c) 2007-2014 Joerg Wunsch

Общесистемный файл конфигурации «/xx/yy/.arduino15/packages/MicroCore/hardware/avr/1.0.3/avrdude.conf»

Пользователь файл конфигурации «/xx/yy/.avrduderc»

Файл конфигурации пользователя не существует или не является обычным файлом, пропущенный

Установка битового периода синхронизации: 32.0

avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x15

avrdude: stk500_getsync() попытка 2 из 10: не синхронизировано: resp=0x15

AVR Part : ATtiny13

2 : 4000 US

Pagel: P00

BS2: P00

BS2: P00

Сброс Сброс: посвященный

Повторить импульс: SCK

Режим последовательной программы

: Да

Параллельный режим программы: Да

Тайм-аут: 200

Stabdelay: 100

CmdexeDelay: 25

SyncLoops: 32

ByteDelay: 0

PollIndex: 3

PollValue: 0x53

Детали памяти:

Block Poll Page Опрашиваемый

Тип памяти Режим Задержка Размер Индекс Размер страницы Размер #Страниц Мин.W Макс.W ReadBack

———— —- —— —— —- — —- —— —- —— —— —— ———

eeprom 65 5 4 0 нет 64 4 0 4000 4000 0xff 0xff

Flash 65 6 32 0 Да 1024 32 32 4 4 0 ДА 1024 32 32 4500 4500 0xff 0xff

Подпись 0 0 0 0 0 0 0 0 0 0 0 0x00 0x00

Замок 0 0 0 0 № 1 0 0 4500 4500 0x00 0x00

калибровки 0 0 0 0 0 0 0 0 0 0 0 0x00 0x00

lfuse 0 0 0 0 0 0 0 0 4500 4500 0x00 0x00

Hfuse 0 0 0 0 NO 1 0 0 4500 4500 0x00 0x00

Тип программатора: STK500

Описание: Atmel STK500 Версия 1.x прошивка

avrdude: stk500_getparm(): (a) ошибка протокола, ожидаемое значение = 0x14, соотв. = 0x14

avrdude: stk500_getparm(): (a) ошибка протокола, ожидаемое значение = 0x14, соотв. ).

Период SCK: 0.1 us

avrdude: stk500_initialize(): (b) ошибка протокола, expect=0x10, resp=0x01

avrdude: инициализация не удалась, rc=-1

Дважды проверьте соединения и повторите попытку, или используйте -F для переопределения

этот чек.

avrdude: stk500_disable(): ошибка протокола, ожидание = 0x14, resp = 0x10

avrdude выполнено. Спасибо.

Ошибка при записи загрузчика.

В этом отчете будет больше информации, если

«Показывать подробный вывод во время компиляции»

параметр, включенный в Файл -> Настройки.

Помогите новичку

Как запрограммировать ATTINY13A с помощью Arduino Uno? – Greedhead.net

Как запрограммировать ATTINY13A с помощью Arduino Uno?

Содержание

  1. Программирование ATtiny13 с помощью Arduino Uno.
  2. Превратите Arduino в AVRISP.
  3. Установите аппаратный пакет для ATtiny13.
  4. Подключите оборудование.
  5. Настройки Arduino IDE.
  6. Записать загрузчик.
  7. Загрузить скетч.
  8. Демо.

Как добавить ATTINY13A в Arduino IDE?

Выберите «Arduino as ISP» в раскрывающемся меню Programmer. Выберите правильный порт. Выберите «ATtiny13A standalone 4.8Mhz» в раскрывающемся меню «Плата». Откройте скетч, который хотите загрузить на attiny13a, и загрузите код, нажав кнопку загрузки.

Могу ли я запрограммировать ATmega8 с помощью Arduino?

Часть вторая: Программирование ATmega8 с использованием Arduino IDE и преобразователя USB в TTL. Как вы знаете, на всех платах Arduino есть преобразователь USB в TTL.Он действует как мост между микроконтроллером и Arduino IDE. Мы используем модуль преобразователя Ch440 USB в TTL для загрузки скетча в ATmega8.

Как использовать ATTINY13A?

Для этого нужно выполнить два шага: во-первых, перейдите в Tools-Board и выберите ATtiny13, а во-вторых, нажмите кнопку «Записать загрузчик» в нижней части раскрывающегося меню инструментов. Обратите внимание на версию ATtiny, перейдите в Tools-Processor Version и выберите ATtiny13 или ATtiny13a в зависимости от вашего чипа.

Как вы кодируете крошечный?

Как запрограммировать Tiny

  1. Шаг 1: Детали и инструменты. Вот детали и инструменты, необходимые для этого проекта:
  2. Шаг 2: Получите доступ к крошечным файлам. Загрузите эти файлы:
  3. Шаг 3: Проводная цепь. Подключите ардуино к attiny:
  4. Шаг 4: Запрограммируйте Arduino.
  5. Шаг 5: Загрузите эскиз.
  6. Шаг 6: Готово.
  7. 3 комментария.

Какой программатор выбрать для Arduino Uno?

Затем выберите тип платы Arduino, которую вы хотите запрограммировать, в нашем случае это Arduino Uno.Выберите программатор Arduino ISP, если он не выбран, необходимо выбрать программатор Arduino ISP. после подключения Arduino необходимо выбрать COM-порт.

Как запрограммировать ATtiny13a?

Что такое ATtiny13?

Во-первых, ATtiny13 — это маломощный 8-разрядный КМОП-микроконтроллер, основанный на усовершенствованной RISC-архитектуре AVR. Выполняя мощные инструкции за один такт, ATtiny13 достигает пропускной способности, приближающейся к 1 MIPS на МГц, что позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки.

Как подключить ATtiny к Arduino 5V?

Чтобы подключить оборудование, вы должны сначала сориентировать ATtiny, как показано на рисунке. Сначала подключите Arduino 5V к контакту 8 ATtiny. Соответственно, подключите GND к контакту 4, контакт 13 к контакту 7, контакт 12 к контакту 6, контакт 11 к контакту 5 и, наконец, контакт 10 к контакту 1.

Как установить аппаратный пакет для attiny13?

Установите аппаратный пакет для ATtiny13 Хорошо. 1.2 Откройте Arduino IDE -> Инструменты -> Плата -> Диспетчер плат.Найдите MicroCore и нажмите «Установить». 2. Подключить аппаратный светодиод и резистор нужно только для тестирования, чтобы увидеть, работает ли загруженный пример кода или нет. 3. Настройки Arduino IDE. Часы: внутренний генератор 1,2 МГц.

Что вы думаете о серии attiny13?

Чипы серии ATtiny13 — чрезвычайно дешевые и полезные чипы для небольших проектов, которым не нужен полноценный Arduino, но из-за очень устаревших руководств и недостатка информации мне потребовалась большая часть дня, чтобы понять, как программировать они с Arduino IDE.

Как установить Gogo DIY ATtiny на Arduino?

Чтобы установить эти файлы, откройте IDE Arduino и перейдите в раскрывающееся меню файлов, затем выберите настройки. Вставьте этот URL-адрес «https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json», где он говорит «Дополнительные URL-адреса менеджера досок:».

.

Добавить комментарий

Ваш адрес email не будет опубликован.