Ну, если так можно сказать, то дорос я таки до того, дабы на внешний вид пластмасса с 8 ножками слушалась меня по мере своих способностей. Каких-либо особых целей не преследовалось, а руководило мной любопытство и познание, не более… Как и что до конца не осознано, но результат получен и пора его подытожить, - в виде этой вот статьи.
Итак, написано об этом более чем много, но нет ничего более ценного, чем собственное понимание, даже уже того, что хорошо известного другими. Из этого я сделал вывод, что подытоживать свои знаниями такими вот статьями будут еще многие, дабы в последствии в виде подсказки обратиться все же к своим заметкам! Однако если они помогут еще кому-то, это лишь к лучшему. Поэтому пора начинать уже по существу!
1. Кратко об Attiny 13 и 13а
2. Залив скетча в Arduino
3. Установка плат микроконтроллеров Attiny 13, 13a, 85 (установка ядра - core)
4. Видео по теме
5. Возможные проблемы
Attiny 13 и 13а микроконтроллеры
В общем, не буду приводить даташиты и очень подробно расписывать, что и где. В целом у микроконтроллера несчастных 8 ножек, само собой две это питание 4 и 8. 4 аналоговых выхода-входа, пару ШИМ ножек, и на всех них навешано еще дополнительных функций. Лучше обратиться к картинке.
* - надо обратить внимание, что PB1, PB2 и т.д. совсем не соответствует физическим ножкам 1, 2 и т.д.. Это надо помнить, подключая и программируя Тиньку.
Собственно на этой картинке показано даже как подключается Ардуино к Аттини во время ее программирования. Смотрите синие метки.
Как залить скетч для программирования через Arduino
Сам же скетч для того, чтобы Ардуино стала нашим программатором, залит прямо уже в оболочке программы Arduino. То есть подключаем Ардуино и заливаем скетч-программатора. Для наглядности тоже картинка. Именно кликнув по этому пути и можно будет залить скетч для программирования Attiny
Если выдает ошибку, то заливаем загрузчик через примеры вот так… (тоже самое, но другим путем)
Появляется (открывается новое окно) скетч из примера, его и льем в Ардуинку.
* - почитайте в скетче комментарии на английском, там могут быть ограничения по частоте работы для различных микроконтроллеров. Это надо учитывать при последующей заливке.
Теперь Ардуинка это уже не Ардуинко, а ISP программатор, который как раз работает через CH340, именно через эту микросхему все программируется и она встречается в других программаторах ISP. Осталось лишь вместо встроенного 328 контроллера подключить Attiny 13.
Установка плат микроконтроллеров Attiny 13, 13a, 85 в программную среду Arduino
Для этого необходимо расширить список плат, дополнив штатную папку hardware архивом attiny13. Опять же для наглядности картиночку оставляю, где это все находится и куда разархивировать скачанный архив.
Теперь подключаем уже наш микроконтроллер согласно ножек в картинке выше, - синие метки. А сама принципиальная схема будет таковой.
Затем как все собрали, выбираем плату attiny13 в Инструменты>Платы>ATtiny13. (частота 128 Khz) В итоге можно заливать стандартные скетчи, надо лишь указывать правильные ножки и понимать, что функции для Аттини 13 ограничены.
Если что-то не получается залить из скетчей, то это вполне возможно из-за того, что такие функции не поддерживаются. Доступны:
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()
Собственно о наладке Ардуино для программирования Аттини 13, на этом всё! Далее поле вашего творчества будет лишь ограничиваться фантазиями и возможностями по их реализации.
Проблемы с использованием Ардуинки для Аттини 13 начались с версии Arduino IDE 1.8.13, когда при установке платы для нее невозможно выбрать программатор. В принципе как понимаю тут два решения, возвращаться к версии 1.8.12, либо уже забывать про архитектуру анахроничных Attiny 13 и переезжать окончательно на более высокие версии Атинек.
"Программатор" пишет: "No programmers available for this board".
Установка платы микроконтроллера Attiny 85
Первоначально необходимо скачать архив ВОТ ЭТОТ и залить по аналогии с тем, о чем я уже говорил, в папку hardware. Схемотехника подключения один в один как для 13 серии.
Если так не получилось, то делаем по-другому. Выбираем в меню вкладки Файл>Настройка и вставляем вот эту ссылку - https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json в окно "Дополнительные ссылки для менеджера плат". После переходим в менеджер плат и там выбираем плату "attiny by Davis A. Mellis", она должна быть в самом низу. Устанавливаем ее и у нас появляются нужные нам микроконтроллеры.
Потом выбираем нужную плату.
Делаем последние настройки по выбору и все... После этого у меня все прекрасно заливалось в Аттиньку 85.
Атинька 85 перед 13 имеет ряд преимуществ. Во-первых, это больший объем памяти, что важно для "больших" проектов. Но самое главное, как мне кажется, это поддержка канала I2С, это значит что гипотетически к ней уже можно подключать экраны для отображения информации, хотя я этого не проверял. Если кто-то подключал то, отпишитесь так ли это?
Возможные проблемы при программировании и подключении Attiny 13, 13а, 85
Как мы видим на картинке выше, у микроконтроллера ATtiny13, 6 портов ввода-вывода (PB0 – PB5) и 2 ножки по питанию (VCC, GND).
Однако, первая ножка микроконтроллера Attiny13 (а именно программный порт PB5), по умолчанию не порт ввода-вывода, а сброс (Reset) микроконтроллера.
Да, его можно переключить в порт ввода-вывода специальным фьюз битом (RSTDISBL), но тогда микроконтроллер не будет поддерживать внутрисхемное программирование (по SPI интерфейсу).
Не устанавливаете без надобности фьюз бит RSTDISBL, в противном случае ваш микроконтроллер перестанет программироваться по SPI интерфейсу (внутрисхемное программирование).
Ну и еще один трабл связанный с этим же фактом, то есть если вы вдруг повесите на 1 физическую ножку скажем подтягивающий резистор в 10кОм (или светодиод), как для входа (выхода), а использовать его не будете для этих целей, то микроконтроллер будет постоянно перезагружаться и работать не будет. Это уже относится к схемотехнике, а не программированию. В общем первую ножку лучше оставить в покое...