ATTiny85 не работает после прожига загрузчика


8

У меня проблема с моим ATTiny85. Я должен упомянуть, что я использую Arduino в качестве интернет-провайдера для его программирования.

Мой ATTiny работал нормально, пока я не решил, что мне нужно увеличить тактовую частоту с 1 МГц до 20 МГц, поэтому я выбрал ATTiny85 на 20 МГц в меню Boards и затем щелкнул Tools> Burn Bootloader. Но это было глупо, так как теперь мой ATTiny вообще не работает. Я не могу загрузить эскизы на него, и если я пытаюсь получить это сообщение:

avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

Так что мой вопрос к вам будет, есть ли способ сбросить то, что я сделал? Или даже лучше, чтобы он работал на 20 МГц?


2
Вы помните значения предохранителей, которые вы установили? Это может все еще быть на экране, если вы прокрутите немного. Вы не можете установить ATtiny85 на 20 МГц с внутренним генератором, вы подключили источник синхронизации?
Джиппи

Нет, я не подключил источник часов. Я просто записал загрузчик с выбранной в качестве платы платой 20 МГц (и, конечно, с подключенной к Arduino аттиной).
Калин

У меня есть другое arduino, есть ли способ сбросить предохранители, используя его?
Калин

Зачем вам нужен еще один Arduino? Как вы понимаете, вы заложили свой ATtiny, а не Arduino. Сообщение об ошибке в вашем вопросе указывает в том же направлении: Arduino в порядке. Если вы сомневаетесь в своем Arduino, отключите все, кроме USB, затем запрограммируйте Blinkпример. Если это работает нормально, вы можете вернуться к своему ArduinoISP (я полагаю, это название программного обеспечения для программиста, которое вы использовали).
Джиппи

2
Не зная точных настроек предохранителей, которые вы использовали, мы не можем быть уверены в том, что вы на самом деле сделали. Если вы фактически установили тактовую частоту на 20 МГц, все, что вам нужно сделать, это подключить внешний источник тактовой частоты, будь то кристалл, резонатор или импульс из другой цепи, при условии, что внешний источник тактовой частоты составляет 20 МГц.
Курт Э. Клотье

Ответы:


10

Я подозреваю, что вы установили предохранители контроллера для использования внешнего источника тактовых импульсов, так как невозможно заставить внутренний генератор работать на частоте 20 МГц. Вы можете вдохнуть новую жизнь в свой контроллер, подключив сигнал синхронизации к контакту 2 CLKIи попытаться сбросить часы на внутренние часы RC с тактовой частотой 8 МГц.

На самом деле существует «фиксированная» версия ArduinoISP, которая имеет вывод тактового сигнала на цифровом выводе 9. Я сам не тестировал этот вывод тактового генератора, но его стоит попробовать. Таким образом, в дополнение к уже имеющимся соединениям между Arduino и ATtiny, подключите цифровой контакт 9 Arduino к контакту 2 ATtiny85 (CLKI). Затем попробуйте запрограммировать внутренние часы RC на 8 МГц.

Если проверить техническое описание главы «источники» Clock 6.2 для деталей.

Альтернативный метод - использование программатора высокого напряжения, который можно легко импровизировать с помощью Arduino .

Кстати: похожая вещь произойдет, когда вы выберете источник тактового сигнала RC <1 МГц, в этом случае тактовая частота вашего контроллера будет работать слишком медленно для стандартного программного обеспечения ArduinoISP.


Спасибо! Поэтому для этого мне нужен источник питания 12 В (которого у меня сейчас нет). Я посмотрю, что я могу сделать, чтобы импровизировать. Есть ли проблема, если источник чуть более 12В?
Калин

@Calin Как "более 12В" ты говоришь? Вы можете легко повредить микросхему ... Несколько резисторов можно использовать для понижения напряжения до 12В. Смотрите это: electronics.stackexchange.com/questions/25038/…
Курт Э. Клотье

Хорошо, спасибо! Я попробую завтра, так как сейчас уже почти полночь. Я буду держать вас в курсе!
Калин

Попробуйте варианты внешнего источника синхронизации из моего ответа, прежде чем случайно обжарить контроллер слишком высоким напряжением. Высокое напряжение должно быть между 11,5 и 12,5 В (глава 20.7.1 в техническом описании).
Джиппи

1
Спасибо! «Исправленная» версия ArduinoISP помогла мне решить мою проблему! Я загрузил фиксированную версию на Arduino, отключил Arduino и подключил ATTiny как обычно, но с выводом 9 от Arduino, подключенным к выводу 2 ATTiny (как вы предложили). После этого я открыл Arduino IDE и выбрал ATTiny85 (с внутренними часами 8 МГц) в качестве моей платы и ArduinoISP в качестве программиста. Я нажал на Инструменты> Записать загрузчик и все прошло нормально. После этого я заново загрузил исходный эскиз ArduinoISP из каталога примеров, и я снова смог запрограммировать ATTiny, используя мой Arduino в качестве программиста.
Калин

5

Как сказал @jippie, это просто вопрос применения внешнего источника тактовых импульсов (на самом деле не имеет значения, является ли тактовый источник 20 МГц или нет, просто нужно достичь 1 МГц или около того, чтобы управлять скоростью программирования SPI ArduinoISP).

В качестве альтернативы версии ArduinoISP, упомянутой выше, вы можете попробовать ScratchMonkey , который помимо генерации тактовых импульсов также выполняет программный SPI для решения некоторых других проблем синхронизации. Если вам не удалось отключить вывод сброса, не должно быть причин прибегать к программированию высокого напряжения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.