Убита ли attiny или нет?

Обсуждаем контроллеры компании Atmel.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Пт ноя 16, 2012 18:53:40

Сообщение xido »

Делаю первый прошивки attiny85. Программатор usbasp.
Залил hello-world, мигающий светодиод.
Дальше решил залить бибилиотеку для USI/TWI, и она не заработала. попробовал выставить fuse для debugWire, посчитал фьюзы в калькуляторе,
получилось - FUSE_L = 0x62,FUSE_H = 0x9f, FUSE_E = 0xff (за основу взял те который мне avrdude выдал при прошивке)

Вот, после этого оно больше не шьется 8(
Выдает
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

Соединение проверил, все ок. Я уже грешу что пока тыкал мультиметром что-нибудь мог закоротить..
Что делать? Я прошил какие-то корявые фьюзы? Как проверить что она вообще жива? 8(
Реклама
Самсусамыч

Сообщение Самсусамыч »

[uquote="xido",url="/forum/viewtopic.php?p=3898338#p3898338"]посчитал фьюзы в калькуляторе,
получилось - FUSE_L = 0x62,FUSE_H = 0x9f, FUSE_E = 0xff[/uquote]
Как можно выставить на калькуляторе неправильные фьюзы остаётся загадкой… :dont_know:
Вот калькулятор который внятно всё описывает: http://fusecalc.mirmk.ru/
Согласно приведённым Вами значениям фьюзов, то Вы по незнанию включили внутримикросхемную отладку… вывод RESET в этом режиме представляет собой двунаправленную открытую шину ввода/вывода (с открытым стоком) с подключенным внутренним резистором. Эта шина становится шлюзом для обмена информации между отлаживаемой микросхемой и схемой сопряжения с компьютером (эмулятором). Вот по этой причине сигнала СБРОС для МК не наступает, а значит и прошить его не получается… собирайте фьюзы – доктор… при таком подходе, Вам он ещё не раз пригодится.
Ну а фьюзы установите вот такие
1.png
Реклама
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

Через отладчик с поддержкой debugWire его тоже можно выключить.
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Пт ноя 16, 2012 18:53:40

Сообщение xido »

Фьюзы я выставил верные, я именно это и хотел, только не знал что этот режим так просто не снять. Но сейчас уже разобрался.

Использую вот такую штуку для отладки - https://github.com/wholder/DebugWireDebuggerProgrammer.
Avarice не заработал почему-то.

Добавлено after 3 hours 59 minutes 57 seconds:
И еще вопрос в догонку, фьюзы выставил как были - (E:FF, H:DF, L:62) - судя по калькуляторам это 8Мгц н авнутреннем генераторе.
F_CPU=8000000UL

Но, _delay_ms(500) спит намного дольше (секунды 2)
Код примитивный - мигаю светодиодом.

Код: Выделить всё

 while(1) {
         PORTB ^= MASK;
         _delay_ms(500);
 }
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

Фьюз CKDIV8, который по-умолчанию включен, делит клок на 8. В результате у вас 1 МГц частота и переключение идет раз в 4 сек.
Или выключите фьюз (LOW = 0xE2, вместо 0xD2) или F_CPU делайте 1000000.
Реклама
Ответить

Вернуться в «AVR»