ATtiny13 и 85 "сломал" загрузчик
- Войдите на сайт для отправки комментариев
Ср, 12/02/2020 - 20:40
Всех приветствую.
Начал увлекаться Тиньками 13 и 85. Скачал необходимые файлы чтобы прошивать через Arduino IDE. В роли программатора использовал UNO. Работало, прошивал скетчи, было всё хорошо. Но тут решил поменять тактовую частоту и на просторах интернета везде пишут мол просто нажми "Записать Загрузчик". Загрузчик не запишется в силу его отсутствия, а частота поменяется и прочее...
После записи загрузчика теперь постоянно выдаёт ошибку:
Перевод:
avrdude: ожидаемая подпись для ATtiny85 - 1E 93 0B
Дважды проверьте чип или используйте -F для отмены этой проверки.
Теперь скетч не загрузить, при попытке прошить загрузчик - такая же ерунда.
Подскажите, что делать дальше и где я шагнул не так? Как использовать -F для отмены проверки?
так какую сигнатуру то выдает? - если одни нули, то значит чип не отвечает и опция -F не поможет.
По секрету скажу - опция -F вообще практически никогда не помогает
так какую сигнатуру то выдает?
0xff00ff
Более подробный отчет
На какую частоту настраивал тиньку прошлый раз?
И да, при многократных попытках записать скетч, все время меняется
"0" и "f" меняются местами и кол-вом.
На какую частоту настраивал тиньку прошлый раз?
Максимальная. У 85 - 20 Mhz, у 13 - 9,6 Mhz.
Хотел замерить потребление тока на максималках и минималках.
В фузах был установлен кварц, скорее всего. Соответственно без кварца ничего работать не будет в принципе. Соответственно, нужно его припаять. С конденсаторами. Но проще выкинуть.
Решил проблему!
Подробно https://habr.com/ru/post/249967/ и можно тут https://tsibrov.blogspot.com/2019/04/unlocking-attiny85.html
Вместо биполярника использовал N-полевик.
85-ая завелась, ща 13-заведу.
UPD: 13-ая тоже завелась - всё в норме!
P.s. Дефолтные фьюзы 13-ой тиньки подсмотрел в симуляторе Atmel Studio 7
В фузах был установлен кварц, скорее всего. Соответственно без кварца ничего работать не будет в принципе. Соответственно, нужно его припаять. С конденсаторами. Но проще выкинуть.
Если во фьюзах был "установлен кварц", то паять его не обязательно. Достаточно подать тактовую от внешнего генератора на соответсвующую ногу.
А частота берётся с UNO программатора.
А частота берётся с UNO программатора.
Можно поподробнее.
Решил проблему!
Подробно https://habr.com/ru/post/249967/ и можно тут https://tsibrov.blogspot.com/2019/04/unlocking-attiny85.html
Вместо биполярника использовал N-полевик.
85-ая завелась, ща 13-заведу.
UPD: 13-ая тоже завелась - всё в норме!
P.s. Дефолтные фьюзы 13-ой тиньки подсмотрел в симуляторе Atmel Studio 7
Интересный способ подачи 12 Вольт - замыканием его на землю когда нужно выключить.
Странные люди, они наверное никогда не видели и не слышали про 817-ый оптрон....
А частота берётся с UNO программатора.
Таймер1 или 2 настраивает на выдачу 1..8 мгц, подключаете.
Смотря какой источник. Если с брелка, то не очень.)
Но ведь сработало же... Результат превзошел все ожидания.
А лучше, нарисуйте правильную схему и порядок действий. Я себе, и не только я наверно, на заметку возьму.
пожалуй подпишусь, батарею 12v видимо надо перевернуть плюсом на ресет
Решил проблему!
Подробно https://habr.com/ru/post/249967/ и можно тут https://tsibrov.blogspot.com/2019/04/unlocking-attiny85.html
Вместо биполярника использовал N-полевик.
85-ая завелась, ща 13-заведу.
UPD: 13-ая тоже завелась - всё в норме!
P.s. Дефолтные фьюзы 13-ой тиньки подсмотрел в симуляторе Atmel Studio 7
Так ещё и 12 вольт вверх ногами. Или мне кажется? У батареи длинный плюс,короткий минус.
Эх, опередили.)
Схема косячная, не спорю)
Вот истинная причина "сломанного" загрузчика. Всё дело в SPI.
Для этого на Usbasp перемычка есть. JP2
Если загонишь в низа, то и перемычка не поможет.(
Дядя, не надо так категорично.
Если загонишь в низа, то и перемычка не поможет.(
для таких задач, када-то давно, я купил TL866A и теперь вус недую.
Вот, https://aliexpress.ru/item/4000068668665.html , но надо дешевле поискать, я за 1400 брал, примерно.
Теперь, когда плотно занялся тиньками, понял, какой я был малодец, что заказал
AVReal (почти 5 проводов)) запрограммирует из любого состояния - можно и тактировать, и задать любую скорость. 866-го у меня нет, но как то приходилось использовать для экзотики, выручил.
Покопался в даташитах attiny13 и 85 и увидел раздел 6.4.2 CLKPR – Clock Prescale Register
Согласно описанию из даташита настроил регистр CLKPR. Далее написал простенький код и проверил в Протеусе
Если код запустить без
То из-за активированного фьюза CKDIV8, логическая единица в 1-ом бите порта "В" будет чередоваться с нулём раз в 8 секунд не смотря на наш _delay_ms(1000).
Но, включив данный регистр и настроив его биты по первой строчке согласно таблички
мы получили чередование 1 и 0 раз в 1 секунду. Отсюда возникает 3 вопроса:
- Настройкой битов CLKPS0...3 мы настраивам CKDIV8?
- Повлиял ли я на частоту работы МК?
- Не заблочится ли мой SPI при настройке CLKPS0...3 в нули как в случае отключения фьюза CKDIV8?
Какие то странные вопросы... Если стоит CKDIV8, то частота будет 1200, а т.к. delay(1000) указан для F_CPU 9600, то реально будет в 8 раз длиннее. Ну, и коль CLKPR настроили на 1:1 и стало 9600, повлияли ли на частоту?)
Хотите "сломать" МК? Поставьте хотя бы 1:128.
Какие то странные вопросы... Если стоит CKDIV8, то частота будет 1200, а т.к. delay(1000) указан для F_CPU 9600, то реально будет в 8 раз длиннее. Ну, и коль CLKPR настроили на 1:1 и стало 9600, повлияли ли на частоту?)
Просто порыскав в инете я ни где не сталкивался с этим видом настройки CKDIV. Везде пишут что его отключают или включают через высковольтный программатор и всё, а тут заглянул в даташит и на тебе.
Я новичек в этом деле. Перехожу с Ардуино на прямое управление регистрами.