[image]

ATtiny85 в DIP-корпусе

(голая микросхема, без платы разработки)
 
1 2 3
+
-
edit
 

Balancer

администратор
★★★★★
Давно уже как-то заказал на побаловаться или куда-то в платы встраивать несколько ATtiny85. Не в виде USB-платы, а хардкорно, чипом :)

5PCS ATTINY85 20PU ATTINY85 20PU ATTINY85 20 ATTINY85 ATMEL DIP-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group

Cheap dip, Buy Quality dip 20 Directly from China Suppliers:5PCS ATTINY85-20PU ATTINY85 20PU ATTINY85- 20 ATTINY85 ATMEL DIP // www.aliexpress.com
 


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

Pluggable Development Board For ATtiny13A/ATtiny25/ATtiny45/ATtiny85 Programming Editor Micro Usb Power Connector-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group

Cheap board performance, Buy Quality board clock directly from China boarding dog Suppliers: Pluggable Development Board For ATtiny13A/ATtiny25/ATtiny45/ATtiny85 Programming Editor Micro Usb Power Connector // www.aliexpress.com
 

Но программатор всё ещё в пути, а у меня выдалось свободное утро и я решил побаловаться с «колхозным» программированием.

Первый облом — я почему-то думал, что ATTiny85 можно программировать через последовательный порт. Приготовил уже USB/serial плату, полез гуглить, как подключать... Фигушки! Нельзя :)

Зато можно программировать через ISP. А в роли ISP активно используют Arduino. Полез разбираться. Не особо хотелось, так как проводов относительно последовательных rx/tx много, но делать нечего.

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

1. Обязательно обновляем Arduino IDE до последней версии. Оказывается, уже 1.8.x текущая, а у меня всё была 1.6.x. Со старой версией будут глюки с новыми библиотеками, компиляторами и т.п. Я сперва пытался ручками всё делать, компилятор отдельно качал устанавливал, в настройках рылся — довёл систему до вообще нерабочего состояния. А надо было просто обновить саму IDE :)

2. Прошиваем в Arduino скетч ArduinoISP. Он находится в примерах. Это не во всех мануалах указано, подразумевается, что оно итак понятно. Мне было непонятно и я сперва не понял, почему всё собрано верно, а прошивка ATiny85 не проходит :D

2.1. Наступил на двое граблей. Оказывается, Arduino нормально прошивается не со всеми USB-кабелями и не на всех USB-портах. Дольше всего с этим воевал. Не шьётся, виснет. Но раньше-то шилось! Думаю, что проблема в обновлённом IDE. Пробую другие платы (а у всех разъёмы разные — полный USB, mini-USB, micro-USB), у них-то другие разъёмы, они шьются. Удаляю в Windows COM-порт, сканирую заново — мало ли, настройки/драйвера. Пофиг. Мысли про кабели есть, меняю кабель — ничего не меняется, прошивка не идёт. Значит, проблема в плате. Сгорела, что ли? Но всё равно не сдаюсь и по наитию меняю USB-порт. Заводится! Тестовый «blink». Но, как оказывается, не очень устойчиво. И ArduinoASP не прошивается совсем. Начинаю играть с кабелями и портами, нахожу железно рабочую комбинацию! :D

2.2. Вторые грабли тут же. Для прошивки ATtiny85 через Arduino рекомендуют на последний ставить конденсатор 10мкФ между RESET и GND. Так вот с этим конденсатором у меня Arduino не прошивается! :) Убрал — всё ок.

Ну а дальше всё совсем просто.

3. В Arduino IDE загружаем поддержку ATtiny чипов.  Open File -> Preferences,  Additional Boards Manager URLs и вписываем туда ссылку  https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.

4. В менеджере плат ( Tools -> Board -> Board Manager) добавляем «ATtiny»:

5. В списке плат выбираем ATiny85:

5.1. Рекомендую выставить частоту «Internal 8MHz» и прошить под неё загрузчик (нижний пункт в предыдущем скрине).

6. Всё, готово. Вешаем светодиод (через резистор, конечно) на 3-ю ногу (4-й пин) и прошиваем скетч Blink, поправив пин на 4:
code cpp
  1. void setup() {
  2.   pinMode(4, OUTPUT);
  3. }
  4.  
  5. void loop() {
  6.   digitalWrite(4, HIGH);
  7.   delay(500);
  8.   digitalWrite(4, LOW);
  9.   delay(500);
  10. }


Готово! :)
   44
+
-
edit
 

Balancer

администратор
★★★★★
Ага, картинки заглючили, это в движке форума ошибка.
   44
FR JackSmith #25.03.2017 22:16  @Balancer#25.03.2017 12:57
+
-
edit
 

JackSmith

втянувшийся

Balancer> 2.2. Вторые грабли тут же. Для прошивки ATtiny85 через Arduino рекомендуют на последний ставить конденсатор 10мкФ между RESET и GND. Так вот с этим конденсатором у меня Arduino не прошивается! :) Убрал — всё ок.

Где то видел, что конденсатор, ставят только на Arduino с микроконтроллерами ATmega168/ATmega8, по крайней мере, у меня на 168-м без конденсатора не работало.

Единственный раз когда использовал такой способ прошивки по делу, когда пришел чистый чип ATmega328 и нужно было на не него прошить загрузчик Arduino + фьюзы. Данный способ оказался самым простым. Всего один клик.
   45.045.0
RU Balancer #25.03.2017 22:26  @JackSmith#25.03.2017 22:16
+
+1
-
edit
 

Balancer

администратор
★★★★★
JackSmith> Где то видел, что конденсатор, ставят только на Arduino с микроконтроллерами ATmega168/ATmega8, по крайней мере, у меня на 168-м без конденсатора не работало.

Может, конечно, карго-культ, но на почти всех схемах подключения для прошивки ATtiny85, что видел, кондёр ставят :)



...

О, попалось аккуратное решение с макетным шилдом:

...

И ещё вот такое решение с Leonardo:

Гы. Похоже, не только с Леонардо:


Видимо, массовое прямое использование цифровой линейки — тоже карго. А ISP — это именно выход, дублирующий нужные ноги :D И цепляться удобно прямо на него.
   44
FR JackSmith #26.03.2017 07:47  @Balancer#25.03.2017 22:26
+
-
edit
 

JackSmith

втянувшийся

Balancer> Может, конечно, карго-культ, но на почти всех схемах подключения для прошивки ATtiny85, что видел, кондёр ставят :)

Ага, вспомнил. Конденсатор нужен для предотвращения перезагрузки Arduino при подключении через UART. Arduino прошивается через UART и что бы выйти на загрузчик который примет скетч пользователя, Arduino перезагружают.Там то ли DTR на RESET выведен, то ли что-то в этом роде.

Проверяется просто. Пишется простой счётчик, с интервалом на инкремент, скажем, раз в секунду. Скетч заливается в Arduino, после этого секунд пять-десять ждем, открываем монитор порта, и если в мониторе видим что счет идет сначала, то здесь конденсатор нужен. А если он уже пятую-десятую секунду отсчитывает, то конденсатор будет лишним.
   45.045.0
LT AleksejLt #27.03.2017 09:46  @JackSmith#26.03.2017 07:47
+
-
edit
 

AleksejLt

опытный

JackSmith> Ага, вспомнил. Конденсатор нужен для предотвращения перезагрузки Arduino при подключении через UART

Ты прав. Очень удобно перезапускать програмку на Ардуинке, открывая монитор СОМ-порта :)
   54.054.0
LT AleksejLt #27.03.2017 09:52  @Balancer#25.03.2017 12:57
+
-
edit
 

AleksejLt

опытный

Balancer> Зато можно программировать через ISP. А в роли ISP активно используют Arduino

Классный МК - простой, дешевый и мощный :) Единственный минус маленькое количество ножек...
Делал себе кривой типа-шилд, чтобы не вспоминать куда надо подключать какой провод. Но в виду появления у меня 10+ разнообразных хрендуин я забил на 85.
   54.054.0
RO JackSmith #27.03.2017 20:30  @AleksejLt#27.03.2017 09:52
+
-
edit
 

JackSmith

втянувшийся

AleksejLt> Делал себе кривой типа-шилд, чтобы не вспоминать куда надо подключать какой провод. Но в виду появления у меня 10+ разнообразных хрендуин я забил на 85.

а я не поленился и сделал таки отладочную плату для DIP-8 чипов :)


это уже вторая версия "типа-шилда", первую показывать не буду ;)
   45.045.0
LT AleksejLt #27.03.2017 23:09  @JackSmith#27.03.2017 20:30
+
-
edit
 

AleksejLt

опытный

JackSmith> https://3.bp.blogspot.com/-hqXZZK7tEx8/WNlKmovSMHI/AAAAAAAACls/WGbIk2MLtgIQkzNUlNLoRQCODHPaAr6AgCLcB/s1600/attiny.jpg

Круто! Зачем столько входов/выходов? Может питаться от 2032 или от внешнего питания? Завидую белой завистью :)

JackSmith> это уже вторая версия "типа-шилда", первую показывать не буду ;)

Буду утешать себя мечтами, что моя вторая версия будет чуть похожа на твою.
   54.054.0
+
-
edit
 

Monya

опытный

AleksejLt> Классный МК - простой, дешевый и мощный :) Единственный минус маленькое количество ножек...
Ну иногда это наоборот большой плюс :) . Все относительно в этом мире.
   49.0.2623.11249.0.2623.112
PA JackSmith #28.03.2017 01:08  @AleksejLt#27.03.2017 23:09
+
+1
-
edit
 

JackSmith

втянувшийся

AleksejLt> Зачем столько входов/выходов? Может питаться от 2032 или от внешнего питания?

питание или/или: или батарея или внешнее, плюс питание еще идет от ISP. Слева один ряд - это выводы микросхемы, посередине миниатютная макетка для разных шилдов, типа USB-TTL конвертера, справа шины питания и земли.
   45.045.0
+
-
edit
 

JackSmith

втянувшийся

AleksejLt>> Классный МК - простой, дешевый и мощный :) Единственный минус маленькое количество ножек...
Monya> Ну иногда это наоборот большой плюс :) . Все относительно в этом мире.

Угу.Шина I2C формируется двумя выводами, на нее можно вешать до 127 устройств. Я б не сказал, что это мало.
   45.045.0
LT AleksejLt #28.03.2017 09:59  @JackSmith#28.03.2017 01:08
+
-
edit
 

AleksejLt

опытный

JackSmith> питание или/или: или батарея или внешнее, плюс питание еще идет от ISP. Слева один ряд - это выводы микросхемы, посередине миниатютная макетка для разных шилдов, типа USB-TTL конвертера, справа шины питания и земли.

С одной стороны хорошо, что у тебя автономная плата, удобно проверять. Но мне удобнее шилд - воткнул в плату Ардуинки и пусть себе торчит :)
П.С. Сам придумал схему?
   54.054.0
+
-
edit
 

AleksejLt

опытный

Monya> Ну иногда это наоборот большой плюс :) . Все относительно в этом мире.

Для опытных радиолюбителей - да. Моим кривым ручкам надо попроще :)
На 85-ой я осилил кубик только на 6 очков, по похожей схеме ATtiny85 LED Dice
А как сделать его до 10 очков я не придумал.
   54.054.0
+
-
edit
 

Monya

опытный

AleksejLt> Для опытных радиолюбителей - да. Моим кривым ручкам надо попроще :)
Не обязательно. Вот например регулятор хода обычного коллекторного движка для радиоуправления.
Вход - ШИМ 50-60Гц, 0,5-2,0 мс, выход - затвор силового транзистора управления движком (для простоты пусть будет без реверса). Ну еще контроль напряжения батареи. Итого надо всего три ноги, но нужен контроллер с АЦП и ШИМ-компаратором. А требования к габаритам (а если маленькая леталка - то и к весу) суровые. Вот и получается, подходит что-то восьминогое, было б меньше, еще лучше. И без кварца, с внутренним генератором.
Например, PIC12F683
, Если SMD не осиливаешь, есть DIP. Любой каприз... Для интереса, вот листинг на ASM. И чего тут для радиолюбителя сложного?
Прикреплённые файлы:
 
   49.0.2623.11249.0.2623.112
Это сообщение редактировалось 28.03.2017 в 20:58
GB JackSmith #29.03.2017 03:10  @AleksejLt#28.03.2017 09:59
+
-
edit
 

JackSmith

втянувшийся

AleksejLt> П.С. Сам придумал схему?
Схема здесь слишком громкое слово, но компоновка была составлена мной. В первой версии у меня был разъем для UART передатчика и светодиод на PB0(ШИМ). Здесь я вместо одного светодиода прикрутил гирлянду, а вместо UART поставил макетку, в которую можно воткнуть небольшой шилд типа UART-TTL конвертера или I2C модуль DS3231+AT24C32. Самый крупный косяк который я здесь допустил, это 5мм светодиоды. Они просто не вместились в ряд, нужно было использовать трех-миллиметровые.

Но это фигня, вот штука поинтереснее:


Пока еще не совсем готовая попытка реализовать модульную концепцию. Когда из плат одинакового форм-фактора составляешь слоеный "бутерброд", прекрасно всем знакомый по шилдам Arduino. Но если в Arduino используется 20-пиновая шина для "нанизывания" шилдов, то я планирую использовать гибкие шлейфы. Так можно задействовать несколько шин, и несколько микроконтроллеров объеденных в локальную сеть. Одни и те же шилды могут быть использованы микроконтроллерами с разной логикой через шилды преобразования логических уровней, через шилды мультиплексоров можно разрешить доступ к аппаратуре(дисплеи, bluetooth, wifi) различным микроконтроллерам. В общем должно получиться интересно, но у меня пока готово только то, что картинке выше. Нужно будет еще сделать дисплейный шилд и шилд питания от li-ion аккумулятор, после чего можно будет подумать уже о чем-то поинтереснее :)
   45.045.0
+
-
edit
 

AleksejLt

опытный

Monya> вот листинг на ASM. И чего тут для радиолюбителя сложного?

Не люблю ассемблер, мне трудно читать простыни. Откуда этот регулятор? Делал для коптеров?
   54.054.0
LT AleksejLt #29.03.2017 22:14  @JackSmith#29.03.2017 03:10
+
-
edit
 

AleksejLt

опытный

JackSmith> Схема здесь слишком громкое слово, но компоновка была составлена мной

Идея прикольная, не хватает красивого корпуса.

JackSmith> Но это фигня, вот штука поинтереснее:
JackSmith> Пока еще не совсем готовая попытка реализовать модульную концепцию. Когда из плат одинакового форм-фактора составляешь слоеный "бутерброд", прекрасно всем знакомый по шилдам Arduino. Но если в Arduino используется 20-пиновая шина для "нанизывания" шилдов, то я планирую использовать гибкие шлейфы

Не получится слишком универсальной и дорогой? Для прототипов можно использовать более мелкие модули, а если делать готовое изделие, то придется как-то компоновать на плате.

JackSmith> шилд питания от li-ion аккумулятор, после чего можно будет подумать уже о чем-то поинтереснее :)

Зачем тебе целый шилд для аккумулятора? Приклеил повышайку на батарейку от старого телефон, припаял пару проводков и готово :)
А то у тебя домашний майндсторм получится :)
   54.054.0
LT AleksejLt #29.03.2017 22:15  @AleksejLt#29.03.2017 22:14
+
-
edit
 
NL JackSmith #30.03.2017 11:41  @AleksejLt#29.03.2017 22:14
+
-
edit
 

JackSmith

втянувшийся

AleksejLt> Не получится слишком универсальной и дорогой?

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

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

AleksejLt> Зачем тебе целый шилд для аккумулятора? Приклеил повышайку на батарейку от старого телефон, припаял пару проводков и готово :)
если подумать. зарядка для аккумулятора нужна? а шина питания на 3.3В нужна? даже на arduino 3.3В есть, почему у меня не будет? а всякие вылючатели разных dc/dc преобразователей нужны? а коннекторы чтобы замерять знергопотребление? a индикация чтобы было понятно: что включено, а что нет? а вывод на АЦП чтобы мерять напряжение на аккумуляторе? а еще такая хитрая штука которая переключает питание с аккумулятора на внешнее при включении зарядника, чтобы не ждать пока тот зарядится? ну и конечно, не забыть предохрантель как минимум.
   45.045.0

+
-
edit
 

Monya

опытный

AleksejLt> Не люблю ассемблер, мне трудно читать простыни. Откуда этот регулятор? Делал для коптеров?
Ну вы батенька и привередливы. 130 строк на ассемблере, включая заголовок - это ж разве простынь? :) .
Почти. Это для зальных моделек из потолочки. Для пацанвы, чтоб попроще и паять немного сами научились. Знакомому для авиамодельного кружка.
   49.0.2623.11249.0.2623.112
+
+1
-
edit
 

Balancer

администратор
★★★★★
Monya> Ну вы батенька и привередливы. 130 строк на ассемблере, включая заголовок - это ж разве простынь? :)

В XXI веке — простынь :)
   44
+
-
edit
 

Monya

опытный

Balancer> В XXI веке — простынь :)
Ну да, на том же Arduino в 16 строк влазит (правда без контроля питания - еще тройку-пяток строчек займет).
НО, это ж без учета библиотеки. Вот как правильно считать - с ней или без?
   49.0.2623.11249.0.2623.112
+
+1
-
edit
 

Balancer

администратор
★★★★★
Monya> НО, это ж без учета библиотеки. Вот как правильно считать - с ней или без?

XXI век — это когда память микроконтроллеров уже мегабайтами измеряется. Так что библиотеки можно не считать :D
   44
+
-
edit
 

Monya

опытный

Balancer> XXI век — это когда память микроконтроллеров уже мегабайтами измеряется. Так что библиотеки можно не считать :D
Не, я не немного не про то. Ну вот просто есть у Arduino в поставке библиотека для работы с сервоприводами в формате, который в радиоуправлении применяется. А вот если б не было?
Пришлось бы самому дописывать. Конечно, все равно покороче бы получилось, чем на ассемблере, но где-то сравнимо. Исходник библиотеки где-то строк 100 занимает. Вот и выходит 100+16 - не сильно отличается.
   49.0.2623.11249.0.2623.112
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru