Я хочу использовать все шесть выводов ввода / вывода ATtiny85, что означает также использование вывода сброса в качестве вывода ввода / вывода, однако я обнаружил, что если я отключу вывод RESET, я больше не могу программировать ATtiny, используя Интернет-программист
Однако я обнаружил, что есть загрузчики для ATtiny, которые, насколько я понимаю, позволяют мне программировать ATtiny через USB, без необходимости использования пина RESET.
Мой вопрос : как мне записать такой загрузчик (например, микроядро ) на ATtiny85? И как мне после этого подключить ATtiny к USB (как это? )? Как мне запрограммировать это после этого? Имейте в виду, что с точки зрения сжигания загрузчиков и модификации предохранителей, я полный новичок.
Кроме того, я использую эскиз ArduinoISP в качестве своего ISP-программиста, поскольку у меня нет настоящего ISP-программиста, но, насколько я понимаю, это не будет проблемой.
РЕДАКТИРОВАТЬ: у меня есть эта вещь, которую я купил за пару долларов на eBay, которую я не знаю, как и если мне нужно использовать:
источник
Ответы:
Я только что закончил свой Arduino-плагин с полной интеграцией TinySafeBoot (TSB) для ATtiny84A, ATtiny85 и ATmega328P.
Проект можно найти здесь:
https://mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html
Вы можете использовать его как есть, а затем использовать Reset Pin в качестве аналогового входа. Только следите за тем, чтобы напряжение никогда не падало
0.6 * VCC
.В качестве альтернативы вы можете изменить предохранители,
boards.txt
чтобы этот пин-код был доступен:Перейдите в настройки Arduino и нажмите на ссылку
preferences.txt
(Mine:)/Users/stefan/Library/Arduino15/preferences.txt
. В этой папке перейдите к/packages/atflash/hardware/avr/0.1.0
. Откройтеboards.txt
и перейдите в разделATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)
Измените строку
ATTSB85.bootloader.high_fuses=0xdf
на
ATTSB85.bootloader.high_fuses=0x5f
Перезапустите Arduino и запишите загрузчик через меню Arduino.
Если вы даже хотите получить еще один пин от ATtiny85: вы можете изменить загрузчик, чтобы использовать только один пин для RX и TX (см. Веб-сайт TSB). Но зачем все усилия? Просто возьмите ATtiny84A. Он имеет 14 контактов вместо 8 и стоит почти столько же.
Стефан
источник
источник
Правда, если вы используете вывод сброса в качестве IO, то вам нужен
специальный программист, который, как я считаю, обеспечивает высокое напряжение (12 В, если я помню) или что-то подобноеприменить источник 12 В к этому выводу, чтобы перевести его в режим программирования, затем запрограммировать с помощью обычного программатора (или другого arduino). Однако то, что вы ищете, это что-то вроде того, что делается в Arduino. Arduino запрограммирован с помощью специального загрузчика через ISP, поэтому при включении микроконтроллера этот загрузчик будет запускаться первым и в течение нескольких миллисекунд будет проверять контакты UART на активность, и если он обнаружит что-то действительное, он переключится в режим программирования, где он ожидает нового кода пройти через UART (не ISP) и записать это в расположение программы, иначе загрузчик просто передаст выполнение кода существующей программе, если таковая имеется.Вот простое объяснение того, как это работает: допустим, размер флэш-памяти вашего микроконтроллера составляет 1 КБ, а загрузчик - 100 Б, поэтому ваша программа может храниться в папке 101B +, а ее максимальный размер (1 КБ-100 Б). Таким образом, когда запускается загрузчик и нет активности на выводах UART, он переходит к месту вашей программы (на 101B), в то время как при обнаружении активности программирования он начинает читать новый код и перезаписывает флэш-память, начинающуюся с 101B (так что он выиграл '). переписывай сам).
И вам понадобится USBASP для программирования загрузчика в первый раз. И вы не программируете ATtiny85 через USB, поскольку этот чип не поддерживает USB, однако вы используете USB / последовательный чип / модуль, который эмулирует последовательный протокол через USB. Некоторые микроконтроллеры Atmel имеют встроенную последовательную поддержку, а другие могут быть реализованы с помощью программной эмуляции.
источник
это бесконечно лучше, чем ваш arduinoisp.
Google Avrdude / Avrdudess.
источник