068-Как правильно прошить AVR фьюзы (fuse bit).

By | 13.04.2011

титл FuseЯ уже писал про фьюз биты / байты (fuse bits / bytes) микроконтроллеров AVR много статей назад. Но, судя по большому количеству вопросов от читателей, тема не раскрыта полностью.

В чем же проблема с установкой фьюз бит? Вроде бы есть картинка, на которой нарисовано какие галочки ставить, какие снимать – должно быть все просто. Но разработчики различных программ для программирования микроконтроллеров в своих программах используют настолько разнообразные варианты установки фьюз бит, что нетрудно запутаться. Чтобы как то прояснить вопрос установки фьюз бит (по крайней мере, касательно моих проектов в этом блоге) я взялся обобщить информацию по различным программам и свести все в одном месте.


для начала –
1 ОБЩАЯ ИНФОРМАЦИЯ.

Fuse bits называют область (4 байта) в AVR микроконтроллерах отвечающую за начальную (глобальную) конфигурацию. Этими битами мы указываем микроконтроллеру, с каким задающим генератором ему работать (внешним / внутренним), делить частоту генератора на коэффициент или не нужно, использовать ножку сброса как сброс или как дополнительный порт ввода-вывода, количество памяти для загрузчика и многое, многое другое. У каждого контроллера свой набор фьюзов. Все фьюзы прописаны в даташите на микроконтроллер.

С завода, по умолчанию, фьюзы выставлены для работы микроконтроллера от внутреннего задающего генератора. Ничего довешивать не нужно подал питание, и он работает. Если нужно как-то изменить работу микроконтроллера, например, заставить его работать от внешнего задающего генератора, нужно изменить соответствующие фьюзы.

Физически фьюз биты расположены в четырех специальных байтах:
— Lock Bit Byte – лок биты для защиты программы от копирования;
— Fuse Extended Byte – дополнительный байт – особые функции;
— Fuse High Byte – старший байт;
— Fuse Low Byte – младший байт.

Вот как распределены фьюз биты по байтам для ATtiny2313 (взято из даташита):

лок биты
расширенные биты
старший фьюз байт
младший фьюз байт

Важно знать!

Исторически так сложилось, что если фьюз равен:
0 – значит, запрограммирован / прошит / активен
1 – значит, НЕ запрограммирован / НЕ прошит / Не активен

Это нужно запомнить!
Почему так? Объясню. Сейчас конфигурационные байты записываются во флеш памяти и поменять их можно сколько угодно раз. Раньше, когда флеш памяти еще не было, для конфигурации какого-либо чипа в его архитектуре имелись специальные перемычки (fuse) которые разово физически сжигались. Вот поэтому, по старинке, если перемычка цела – «1» значит эта функция не задействована и наоборот – перемычку сожгли – «0» значит функция задействована.

Вот такая логика и является источником проблем с установкой фьюз бит.


2 НЕБОЛЬШОЙ ЛИКБЕЗ ПО НАЗНАЧЕНИЮ ФЬЮЗОВ.

Здесь описаны не все фьюзы – только основные. Подробнее (и правильнее) о фьюзах нужно смотреть в даташитах на каждый конкретный микроконтроллер.

CKSEL – выбор тактового генератора для микроконтроллера.
Для работы микроконтроллера (как и для любого процессора) нужны тактовые импульсы. Источником тактового сигнала может быть:
— внутренний RC генератор. Никаких дополнительных элементов не нужно. Удобно, но RC генератор имеет небольшую точность работы (вплоть до 10% погрешности) и, кроме того, «плывет» от температуры. Для некритичных по времени приложений вполне годиться.
— внешний кварцевый (или керамический) резонатор. Нужен сам резонатор, плюс два конденсатора на 15-30пФ. Соответственно, будут заняты две ножки микроконтроллера — XLAT1 и XLAT2. Применяется там, где нужны точные замеры времени или частота работы микроконтроллера выше, чем может дать внутренний RC генератор.
— еще можно тактировать микроконтроллер от внешнего источника тактового сигнала. Это может быть другой микроконтроллер (для синхронизации работы) или внешняя схема, дающая нужный сигнал. Тактовый сигнал подается на ножку XLAT1.

Источник тактового сигнала для микроконтроллера задается комбинацией битов CKSEL3…0.
Это может быть (для ATTiny2313, выборочно):
CKSEL3…0 = 0000 – Внешний тактовый сигнал;
CKSEL3…0 = 0010 – Внутренний тактовый генератор — частота 4 МГц;
CKSEL3…0 = 0100 – Внутренний тактовый генератор — частота 8 МГц;
CKSEL3…0 = 1101 – Внешний тактовый генератор — кварц частотой от 3 до 8 МГц;
CKSEL3…0 = 1111 – Внешний тактовый генератор — кварц частотой больше 8 МГц.

Как оживить микроконтроллер, если неправильно установлены CKSEL?
Если Вы выставили фьюз биты на внешний генератор, а его нет, то микроконтроллер «пропадет» для программатора. В этом случае придется припаять кварц к соответствующим ножкам или подать тактовые импульсы на ножку XLAT1 микроконтроллера.

В «боевых» условиях получить тактовый сигнал можно несколькими способами:
— собрать несложный генератор на логике – паять можно прямо на ножках логики;

— если рядом имеется осциллограф, то у него есть источник образцового сигнала. Частота его, обычно, не большая, но фьюзы исправить хватит;
— если есть еще один микроконтроллер – делаем выход тактового сигнала на ножку микроконтроллера (нужно запрограммировать фьюз CKOUT) и подаем этот сигнал на XLAT1;
— есть еще «метод пальца» — крайне не рекомендую…

CKOUT – разрешает вывод тактовой частоты на ножку CLKO микроконтроллера (для тактирования других устройств).
CKOUT = 1 – ножка микроконтроллера работает как обычный порт ввода-вывода;
CKOUT = 0 – на ножку микроконтроллера выдается сигнал тактового генератора.

CKOPT – задает размах тактового сигнала на внешнем генераторе.
CKOPT = 1 – размах небольшой – генератор работает в экономном режиме. Нормально генератор может работать лишь при небольших частотах и в условиях близким к идеальным. При значительных помехах, большой тактовой частоте, перепадах (скачках) напряжения питания, микроконтроллер может работать нестабильно;
CKOPT = 0 – задающий генератор работает на полную мощность, устойчив к помехам и может работать во всем диапазоне частот. Если нет особых требований к энергосбережению – советую всегда программировать этот бит.

SCKDIV8 – деление тактовой частоты на 8.
Тут все просто:
SCKDIV8= 1 – микроконтроллер работает на частоте задающего генератора;
SCKDIV8= 0 – микроконтроллер работает на частоте в 8 раз меньше частоты задающего генератора;

SUT – задает скорость запуска микроконтроллера.
После снятия «сброса» (или подачи питания) программа, записанная в микроконтроллер, начинает работать не мгновенно. Микроконтроллер выжидает некоторое время, для того, чтобы нормально запустился тактовый генератор, установилось напряжение питания и т.д. Время ожидания до запуска программы и задают биты SUT1…0. Чаще всего нам не критична скорость запуска, поэтому советую ставить на максимум.
SUT1..0 = 11 – максимальное время запуска (чуть больше 65 mS).
На время запуска еще влияет CKSEL0, но это уже детали …

RSTDISBL –разрешает использовать ножку Reset как еще один порт ввода-вывода.
Иногда нужная вещь, но нужно знать —
после программирования RSTDISBL микроконтроллер уже нельзя будет прошить последовательным программатором! Поэтому без особой надобности не трогайте его.
RSTDISBL = 1 – ножка сброса работает как сброс;
RSTDISBL = 0 – ножка сброса работает как еще один порт ввода-вывода, последовательное программирование отключено.

SPIEN – разрешение на последовательное программирование.
По умолчанию запрограммирован (0) – разрешено последовательное программирование.
SPIEN = 0 – разрешено последовательное программирование;
SPIEN = 1 – запрещено последовательное программирование.

WDTON – включает Watch Dog Timer.
Для ответственных приложений, там, где недопустимо зависание программы (будь то ошибка программы или злостная помеха), применяют Watch Dog Timer. Это внутренний таймер микроконтроллера, работающий от своего независимого генератора. При переполнении этого таймера микроконтроллер сбрасывается и начинает выполнять программу с начала. Программист должен в тесте программы (обычно в главном цикле) вставить специальную команду обнуления этого таймера (WDR). Команда периодически выполняется и обнуляет таймер, не давая ему переполнится. Если микроконтроллер «повис» перестают выполняться команды обнуления, таймер переполняется и сбрасывает микроконтроллер.
WDTON = 1 – Watch Dog Timer – отключен (можно включить программно);
WDTON = 0 – Watch Dog Timer – включен (программно выключить нельзя).
В обычных приложениях не нужен.

BODLEVEL и BODEN — контроль напряжения питания микроконтроллера (Brown-out Detector).
Если питание микроконтроллера опуститься к минимально допустимому или чуть ниже, то работа микроконтроллерабудет нестабильной. Возможны ошибочные действия, потеря данных, случайное стирание EEPROM. Микроконтроллер умеет следить за уровнем своего питания (BODEN=0) и когда оно достигает уровня, который задается битами BODLEVEL, сбрасывается и держится в ресете пока уровень не поднимется до рабочего уровня. В некритических приложениях можно не использовать.

JTAGEN – разрешает интерфейс JTAG (внутрисхемный отладчик).
При активации некоторые линии микроконтроллера отдаются под интерфейс. Но зато можно подключать JTAG отладчик и с его помощью легко отладить любую программу прямо в схеме — удобно.
JTAGEN = 1 – запрещен JTAG;
JTAGEN = 0 – разрешен JTAG.

DWEN – бит, разрешающий работу DebugWire
– еще одного отладочного интерфейса. DebugWire однопроводный отладочный интерфейс работающий через ножку сброса, поэтому «не отнимает» у микроконтроллера ножки портов ввода-вывода.
DWEN= 1 – запрещен DebugWire ;
DWEN= 0 – разрешен DebugWire .

AVR микроконтроллеры могут во время своей работы изменять содержимое области программ (программировать сам себя).
SELFPRGEN – бит, разрешающей программе производить запись в память программ.
SELFPRGEN = 1 – изменение области программ запрещено;
SELFPRGEN = 0 – разрешено изменение области программ.

EESAVE — защита EEPROM от стирания.
При подаче команды полного стирания микроконтроллера (обычно осуществляется при каждом программировании кристалла) стирается и EEPROM. Если Вы хотите чтобы EEPROM оставалось нетронутой – активируйте этот фьюз. Это актуально если в EEPROM хранятся важные данные.
EESAVE = 1 – стирать EEPROM вместе с Flash;
EESAVE = 0 – оставлять EEPROM при очистке нетронутым.

AVR микроконтроллеры могут иметь бутлоадер – это область в конце памяти, в которой можно разместить загрузчик, который предназначен для загрузки и запуска основной программы.
BOOTRST – как раз и заставляет микроконтроллер запускаться с области бутлоадера.
BOOTRST = 1 – микроконтроллер запускает программу с нулевого адреса;
BOOTRST = 0 – микроконтроллер запускает программу с бутлоадера.

BOOTSZ0..1 — задает размер бут сектора (области памяти программ для бутлоадера).

Lock Bits – Это отдельный фьюз байт который предназначен для защиты области программ и/или EEPROM от копирования. Полное стирание восстанавливает эти биты в исходное состояние.

Еще раз повторюсь, это не полный перечень фьюз бит, для каждого конкретного микроконтроллера смотрите даташит.


3 ЧАСТО ИСПОЛЬЗУЕМЫЕ КОНФИГУРАЦИИ ФЬЮЗ БИТ.

Для примера приведу некоторое количество конфигураций для микроконтроллеров. Картинки фьюзов сняты с Algorithm Builder’а.

Во всех картинках фьюзы как по даташиту:
— снятая галочка– fuse bit = 0, фьюз запрограммирован / активный;
— установленная галочка– fuse bit = 1, фьюз НЕ запрограммирован / НЕ активный.

Для UniProf — ставить как на картинке;
Для PonyProg, CVAVR, AVR Studio — ставить инверсно.

3.1 ATtiny13
ATTiny13.pdf - Даташит для ATTiny13/13V
ATtiny13_default_internal_RC_1.2 - Фьюзы ATtiny13 заводские настройки внутренний RC генератор на 1.2МГц
ATtiny13_internal_RC_4.8 - Фьюзы ATtiny13 внутренний RC генератор на 4.8МГц
ATtiny13_internal_RC_9.6 - Фьюзы ATtiny13 внутренний RC генератор на 9.6МГц
ATtiny13_internal_RC_0.128 - Фьюзы ATtiny13 внутренний RC генератор на 128кГц

3.2 ATtiny2313
ATTiny2313.pdf - Даташит ATTiny2313
ATtiny2313_default_internal_RC_1.0 - Фьюзы ATtiny2313 заводские настройки внутренний RC генератор на 1.0МГц
ATtiny2313_internal_RC_4.0 - Фьюзы ATtiny2313 внутренний RC генератор на 4.0МГц
ATtiny2313_internal_RC_8.0 - Фьюзы ATtiny2313 внутренний RC генератор на 8.0МГц
ATtiny2313_external_0.9_3.0 - Фьюзы ATtiny2313 внешний генератор на 0.9-3.0МГц
ATtiny2313_external_3.0_8.0 - Фьюзы ATtiny2313 внешний генератор на 3.0-8.0МГц
ATtiny2313_external_8.0_20.0 - Фьюзы ATtiny2313 внешний генератор на 8.0-20.0МГц

3.3 ATmega8
ATmega8.pdf - Даташит на ATmega8
ATmega8_default_internal_RC_1.0 - Фьюзы ATmega8 заводские настройки внутренний RC генератор на 1.0МГц
ATmega8_internal_RC_2.0 - Фьюзы ATmega8 внутренний RC генератор на 2.0МГц
ATmega8_internal_RC_4.0 - Фьюзы ATmega8 внутренний RC генератор на 4.0МГц
ATmega8_internal_RC_8.0 - Фьюзы ATmega8 внутренний RC генератор на 8.0МГц
ATmega8_external_1.0_16.0 - Фьюзы ATmega8 внешний генератор на 1.0-16.0МГц

3.4 ATmega48/88/168
ATMegaX8.pdf - Даташит ATMega48/88/168/V
ATmega48_88_168_default_internal_RC_1.0 - Фьюзы ATmega48/88/168 заводские настройки внутренний RC генератор на 1.0МГц
ATmega48_88_168_internal_RC_8.0 - Фьюзы ATmega48/88/168 внутренний RC генератор на 8.0МГц
ATmega48_88_168_internal_RC_0.128 - Фьюзы ATmega48/88/168 внутренний RC генератор на 128кГц
ATmega48_88_168_external_0.4_25.0 - Фьюзы ATmega48/88/168 внешний генератор на 0.4_25.0МГц


А теперь то, для чего писалась эта статья –
4 УСТАНОВКА ФЬЮЗ БИТ В РАЗЛИЧНЫХ ПРОГРАММАХ.

Общий алгоритм установки фьюз бит должен быть следующим:

— прошиваем Flash и, если нужно, EERROM;
— открываем окно прошивки фьюзов, считываем текущие фьюзы микроконтроллера;
— модифицируем только те фьюзы которые нам нужны;
— обращаем внимание на критичные для последовательного программирования фьюзы RSTDISBL, SPIEN, др.


4.1 Начнем, пожалуй, с Algorithm Builder’а.
http://algrom.net/russian.html
Раз я выкладываю картинки именно с него, нужно знать как устанавливаются в нем фьюзы.
Логика установки фьюзов в Algorithm Builder’а, я считаю, самая правильная – строго по даташиту.
Установка фьюз в алгоритм билдере


4.2 UniProf.
http://avr.nikolaew.org/progr
Логика установки фьюз аналогична Algorithm Builder.

фьюзы в юнипрофе


4.3 PonyProg.
http://www.lancos.com/prog.html
Еще одна хорошая программа для программирования микроконтроллеров. Логика обратная двум пред идущим.
фьюзы в понипрог


4.4 AVR Studio.
http://www2.atmel.com/
Не совсем программа для программирования, но прошить HEX сможет.
Фьюзы в авр студии


4.5 Code VisionAVR.
http://www.hpinfotech.ro/html/cvavr.htm
Еще одна популярная программа — обязательно нужно показать.
КодеВижинАВР


4.6 SinaProg.
Оболочка для AVRDUDE. Удобная и приятная в управлении программа.  AVRDUDE обеспечивает большое число поддерживаемых программаторов и кристаллов.
фьюзы СинаПрог

Я выбирал программы с которыми удобно работать и они доступны и популярны.


5 ФЬЮЗ КАЛЬКУЛЯТОР ДЛЯ AVR.

Если Вам нужна определенная конфигурация микроконтроллера, а изучение даташита ни к чему не приводят (и не удивительно, информация по фьюзам, там старательно размазана по всему документу), есть выход — Fuse Calculator!
Фьюз калькулятор – это специальная программа (или on line сервис) призванная помочь в конфигурации микроконтроллера. Как правило они просты и доступны в использовании. По большому счету, каждая среда программирования уже содержит в себе фьюз калькулятор, но есть универсальные с большими возможностями и более удобные. Хотелось бы рассказать об одном из популярных on line калькуляторе — Engbedded Atmel AVR® Fuse Calculator.
http://www.engbedded.com/fusecalc/

Все очень просто — небольшие комментарии на картинке помогут.
Engbedded Atmel AVR® Fuse Calculator

Вот такие инструменты есть для работы с фьюз битами. Выбирайте!


(Visited 9 386 times, 100 visits today)

There are 151 comments

Комментарии подгрузятся после небольшой паузы.

Добрый день форумчане, прошу небольшой помощи в одном вопросе, наверное уже задавался такой но все же спрошу, пытаюсь залить прошивку в мегу 48, Sinaprog ее видит и пишет что все записано в контроллер, но как-то быстро это происходит примерно секунду, прошивка для подсветки ступенек лестницы. При попытке установки и прошивки фьюзбитов программа считывает заводские настройки, устанавливаю инверсно в соответствии с картинкой к нужной прошивке, пишет что все ок. но возвращает 00 и сигнатура также 000000. подскажите в чем может быть дело.

частота внутреннего генератора ограничена (на внешнем кварце МК может работать в среднем в 2 раза быстрее). Для случаев, когда нужны более точные отсчеты времени, внутренний генератор не очень подходит — во первых частота плавает сама по себе, плюс уходит от температуры.

Скажите, а зачем вообще использовать внешний кварц, если работает и на внутреннем? для чего нужен внешний кварц в общем?

Всё, разобрался. Надо фьюз BOOTRST оставить незапрограммированным

Добрый день, а можно ли как-то на atmega8 вообще отключить загрузчик, чтобы все свободное место использовать под программный код? Или boot flash section size можно выставить минимум только в 128 байт? Спасибо!

Для USBASP_AVRDUDE_PROG
0-это галочка
1-пустой чекбокс
В окне установки фьюзов должно сверху быть информационное сообщение по этому поводу. Еще можно посмотреть на SPIEN и сделать на его основании выводы (он должен быть всегда активен)

Как выставлять фьюзы в программе USBASP_AVRDUDE_PROG прямо или инверсно ??

к561ла7 подойдет для генератора внешнего такта? питание на нее +5В?

Нет, речь не о Вашей статье. Я пытаюсь повторить конструкцию часов на газоразрядных индикаторах: http://cxem.net/mc/mc187.php , а там приведена картинка, которую я должен был как раз инвертировать.

В UNIPROF фьюзы ставятся АНАЛОГИЧНО картинкам из статьи. Если я Вам где-то сказал противоположное — извините, был неправ.

По поводу очередности — если фьюзы не предполагают отключение сброса или еще каких кардинальных настроек, отключающих режим последовательного программирования, можно фьзы прошить и раньше, но лучше придерживаться определенной последовательности везде дабы потом случайно не залочить МК.

Большое спасибо!
А если сделать наоборот наоборот, контроллер блокируется?
Я-то как раз наоборот и сделал: перед прошивкой акуратно выставил фьюзы (ценой одной меги и с Вашей помощью уже разобравшись, что в UNIPROF их нужно выставлять инверсно) и после попытки записать HEX, получил еще один нерабочий контроллер. Ну, будем учиться дальше 🙂

сначала прошивается HEX, после него фьюзы

Я прошу прощения, может подскажет кто правильную последовательность действий для установки фьюзов и прошивки мега8 программатором Громова и программулиной UNIPROF при наличии HEX-файла прошивки и фьюзов?

Это с imrad.kiev.ua соответственно Украина
но по другим магазинам Вы найдете то-же самое, даже меньше

можете ссылку дать?) не могу найти вот таких цен…

@mxroman
Де где-бы не смотрел — они везде дешевые. Только нужно выбрать именно дешевую(есть очень дорогие варианты исполнения).
Вот например подборка из одного магазина:
ATtiny13-20SSU__ATMEL___________________22.08
ATtiny13A-PU____ATMEL____DIP8-300________9.00
ATtiny13A-SSU___ATMEL____SO8-150-1.27____9.95
ATtiny13A-SU____ATMEL____SO-8____________6.50
ATtiny13-20PU___ATMEL____DIP8-300________15.95

Цены в гривнах 8грн=1$ (можно купить даже меньше доллара)

так точно, вторая нога, подал 100кГц ничего, 500кГц ничего, потом запрограмировал тиньку одну на 1,5Мгц ожила) Ещё вопрос не по тебе, где то в посте читал что вы тиньки по баксу заказываете на каком то сайте, не подскажите адресок?)

тини13 можно запускать от внешнего генератора — посмотрите в даташите — вторая ножка, если не ошибаюсь

Добрый день. Attiny13 не правильно выставил фьюзы CKSEL, можно ли его реанимировать или вечная память?)

Доброго дня! Я так все таки не пойму как выставить фьюзы для внешнего кварца. Если у дивайса кварц 7,7228 Мгц то это средняя частота (medium Freg)? И что значит Start-up-time:16K CK+0ms (я имею в виду 16К)?
И как перевести значения если допустим дана картинка фьюз битов как в понипрог (где есть чекбоксы SUT1 ,0 и CKSEL3 ,2 ,1 ,0) в AVRStudio где я пытаюсь работать но там по другому?

Насколько я помню CVAVR вообще не показывает SPIEN. Так что скорей всего это SELFPRGEN. В любом случае, что SPIEN, что SELFPRGEN менять смысла нет (разве что SELFPRGEN нужен для прошивок-загрузчиков), поэтому их лучше не трогать.

Может быть, но в SELFPRGEN нет буковки M, а в SPMEN есть. Так не сокращают.
Поэтому пока два варианта. Или SPIEN неправильно написали или сокращение неправильно.
Как можно проверить какой байт меняется при установке/снятии этой «галки» в CVAVR?

По ходу это фьюз SELFPRGEN (разрешение на модификацию Flash самой программой) так сократили. Он не так критичен как SPIEN, но лучше его оставлять каким как он есть.

GetChiper :
Забудьте про SPIEN и не трогайте его, есть он или его нет (оставьте так, как его прошили на заводе).

Да кого забыть? SPIEN или SPMEN?
На Вашей картинке CVAVR последний фьюз SPMEN посмотрите. За что отвечает, в описании не нашел. В каком он состоянии должен быть? Или это всё-таки SPIEN?
А потом забуду, когда узнаю что это за зверь.

Забудьте про SPIEN и не трогайте его, есть он или его нет (оставьте так, как его прошили на заводе).

А в CVAVR фьюз SPIEN есть?
Или SPMEN и SPIEN это одно и то-же?

Возьмите за ориентир SPIEN или RSTDISBL.
Они всегда:
— SPIEN активен (разрешено последовательное программирование)
— RSTDISBL НЕ активен (линия Reset НЕ запрещена)

Прошу помощи с eXtreme Burner-ом как там выстовляются фьюзы?
Очень боюсь ошибится….

Рассуждая логически, наверняка так и есть. Спасибо.

СКОРТ это фьюз влияющий только на внешний тактовый генератор, поэтому его установка для внутреннего генератора бессмысленна и возможно микроконтроллер или программа прошивающая фьз игнорирует его прошивку.

Может быть и с частотой связано а может и нет. Как программирующая частота может не прошивать фьюз? Как ни будь нужно поэкспериментировать с задержками. Может что и прояснится.

Может что-то связано с частотой программирующего сигнала.

Интересную штуку как-то обнаружил. У атмеги8 не прошивался СКОРТ при выборе 8 МГц от внутреннего генератора, а при выборе 4 МГц, прошивался. В чём причина?

Не запутайтесь — в разных программах по разному интерпретируются галочки. В той картинке, что я Вам отослал галочка — это 1.

Если:
SUT1 и CKSEL0 поставить галочки,то нужен будет внешний кварц 8 Мгц (CKSEL=1110 SUT=01)
В моем же девайсе вроде бы используется внутренний генератор и скорее всего мне необходимо установить галочки на:
SUT1
CKSEL1
CKSEL2
CKSEL3
получив PLL.clock Start Up-Time PWRDWN/RESET:16K CK/14CK+4ms (CKSEL=0001 SUT=01)

Возможно я и ошибаюсь.

Автор устройства решил позлить людей повторяющих его конструкцию?
Спасибо,мы люди запасливые,у нас есть всегда второй комплект))

Строчки which equals — это те-же фьюзбиты, только сформированные во фьюзбайты — не обращайте внимания.

Вы уже прошивали этими фьюзами микроконтроллер?
Строчки
DWEN enabled
RSTDISBL enabled
сделают невозможным последующее программирование последовательным (обычным) программатором. Для устройства нет необходимости трогать эти фьюзы. Автор устройства решил позлить людей повторяющих его конструкцию? 🙂

Я отправил фьюзы Вам на почту (DWEN и RSTDISBL я запретил)

К чему относится эта строка-> which equals 0xdd
И эта -> which equals 0xe1
И что вбить сюда в онлайн калькуляторе.
Low
High
Extended Action
На разных калюкуляторах при выборе одного и того же контроллера,фьюзы немного отличаются.
Как бы нужна гарантия правильности установки фьюзов,так как девайс сам по себе не все компы определяют.Так один контроллер уже прошит,девайс молчит и нет уверенности за свои действия с фьюзами.Да и в AVR 4.13 окошко для фьюз странное какое то.Нет там CKSEL…
в таком колличестве.Второй и последний контроллер остался…

А что не понятно? По моему все очень подробно расписано.

Подскажите пожалуйста,какие галочки поставить и какие убрать в AVR Studio V4.13
Буржуин выложил вот эти,но не все понятно в версии 4,13

The fuse settings for the ATTINY45 were as follows (for AVR STUDIO):
BODLEVEL 2.7V
EESAVE not preserved
WDTON disabled
SPIEN enabled
DWEN enabled
RSTDISBL enabled
-> which equals 0xdd
CKSEL hf pll (0001)
SUT 1..0 bod enabled fast rise
CKOUT disabled
CKDIV8 disabled
-> which equals 0xe1
(this was taken from the EasyLogger data files)

ссылка на девайс.
(http://yveslebrac.blogspot.com/2008/10/ … alaxy.html)

Не работал с JTAG, поэтому адекватно не отвечу, но насколько я знаю ничего во фьзах менять не нужно.

Уважаемый Getchip, пробую связаться через JTAG AVRDRAGON с МК ATMEGA1284P и не получается, что не так? Может с завода JTAG запрещен? Спасибо Вам за сайт и возможность спросить!

Всем привет. Помогите плиз с прошивкой фюзов для atmega 1280.
Работаю с AVR Studio 4 и CodeVisionAVR V2.03.4
Считываю с исправного донора (кварц 16МГЦ) и шью Fuse. На неисправном.
Подав сигнал такт. Частоты с донора.
(CKOUT = 0 – на ножку микроконтроллера выдается
сигнал тактового генератора.)
В этом варианте atmega 1280 запускается но при подачи сигнала (такт. Частоты с донора)
Ведь считал фюзы с рабочего оборудования где 16мгц.
1. Brown-Out Detection disabled; (BODLEVEL = 111 )
2. Boot Flash section size = 4096 words Boot start address = $F000;
3. BOOTRST;
4. Ext. Crystal Osc.; Frequency 8.0- MHz; Start-Up time: 16 K CK + 65 ms
(CKSEL = 1111 SUT = 11);
Вопрос как запустить на родном кварце?
(16 мгц в плате уже стоит)

Доброго времени суток форумчане!
Прграмма стоит PonyProg.
Программатор LPT
Микросхема Mega8 все определяется читается и пишится читаются и фьюзы но
кроме записи фьюзов. Выставляю нужные фьюзы на внешний кварц жму старт и сразу
Abort Retry Ignore (-24)
В чем дело не пойму Помогите.

Уже до смеха…иеннет тупит…опять ошибся
СKSEL0

SergejGost :
Тогда в полной инверсии прошить надо.Поставить наоборот галочки.
Когда я прошивал ее,вернее использовал для прошивки чиппрог+,прошивал сразу две меги…8-ю и 32-ю.Вернее 32-ю шил для другого устройства и там были выложены фьюзы под понипрог,вот и 8-ю прошил как на этой картинке,по ссылке.Все работает.Вот и сделал выводы,что чиппрог+ выставляет как и в пони все галочки.
Если микросхема залочилась,попробуйте повесить на нее кварц в соответствии с даташит.Или подать на нее генерацию с отдельного генератора.Просто когда вы прошиваете СSEL0,в неправильной инверсии,то отключается в МК внутренний генератор и она тогда не видится.

Ошибку допустил в написании
правильно будет СSEL0

Тогда в полной инверсии прошить надо.Поставить наоборот галочки.
Когда я прошивал ее,вернее использовал для прошивки чиппрог+,прошивал сразу две меги…8-ю и 32-ю.Вернее 32-ю шил для другого устройства и там были выложены фьюзы под понипрог,вот и 8-ю прошил как на этой картинке,по ссылке.Все работает.Вот и сделал выводы,что чиппрог+ выставляет как и в пони все галочки.
Если микросхема залочилась,попробуйте повесить на нее кварц в соответствии с даташит.Или подать на нее генерацию с отдельного генератора.Просто когда вы прошиваете СSEL0,в неправильной инверсии,то отключается в МК внутренний генератор и она тогда не видится.

SergejGost :
А почему вопросы по установке фьюзов доктора не в статье про устройство?
Оно находится тут http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/
и вот тут указаны все эти галочки http://www.getchip.net/wp-content/plugins/download-monitor/download.php?id=62

Я поставил галочки как тут http://www.getchip.net/wp-content/plugins/download-monitor/download.php?id=62. Атмега 8 залочилась

Я извиняюсь за клонирование, чтото нет затупил

Я извиняюсь, но как по вашей статье, то описания фьюзов по двум первым програмам для прошивки фюзы выставлены одинаково, тогда в если в трех следующих они должны быть выставлены инверсно, то там мне кажится не совсем всё совпадает) Я думаю, что это просто их не повыставляли, так как это просто наглядный пример, но таких новичков как я это сбивает столку) Я смотрю на 5 распичатаных этих картинки для разных програм и там можно увидить что не все фьюзы выставлены правильно, относительно первой и второй картинок(програм алгоритм былдинг и юнипроф)))
Простите за нарекания, но я очень долго вдуплялся в выставление фьюзов в разных програмах, и хочу чтобы начинающим было легче

Я извиняюсь, но как по вашей статье, то описания фьюзов по двум первым програмам для прошивки фюзы выставлены одинаково, тогда в если в трех следующих они должны быть выставлены инверсно, то там мне кажится не совсем всё совпадает) Я думаю, что это просто их не повыставляли, так как это просто наглядный пример, но таких новичков как я это сбивает столку) Я смотрю на 5 распичатаных этих картинки для разных програм и там можно увидить что не все фьюзы выставлены правильно, относительно первой и второй

SergejGost :

Хоть и не ко мне вопрос был,но уточните….смотря для чего они правильными считаются?
Или вам надо заводские установки фьюзов?

Чтобы прошить Атмегу * для Доктора в ПОНИпроге какие нужно выставить галочки?

svg67 :
Уважаемый GetChiper! Можно попросить картинку с правильными фьюзазами для Атмеги8 в ПОНИпроге?

Хоть и не ко мне вопрос был,но уточните….смотря для чего они правильными считаются?
Или вам надо заводские установки фьюзов?

Уважаемый GetChiper! Можно попросить картинку с правильными фьюзазами для Атмеги8 в ПОНИпроге?

Если кто ищет….калькулятор на русском
http://radioshemi.ucoz.ru/FUSI/calc.html?part=
В нем так же ставится галочка,для включения внешнего генератора и именно сразу запуск,а не через время…но мой контроллер почему то совсем тогда пропадает из поля видимости программатора…хотя кварц подключен

GetChiper :
CKSEL – это группа фьюз бит которая отвечает за источник тактовых импульсов. Если сомневаетесь в правильности их установки проверьте в одном из фьюзкалькуляторов или загляните в даташит.

Да я так и понимал,что именно туда надо поставить галочку,по фьюзам…приведенным для понипрог…там нет галочки,но получается должна быть инверсия….и тут как то не выходит

CKSEL — это группа фьюз бит которая отвечает за источник тактовых импульсов. Если сомневаетесь в правильности их установки проверьте в одном из фьюзкалькуляторов или загляните в даташит.

Собрал еще AVR910 программатор
Пробую шить ChipBlasterAVR
Вот при выставлении FUSE CKSEL0,если ставлю галочку там … пропадает контроллер Atmega32 .Судя по всему описанию тут эта галочка должна выводить на внешний генератор контроллер,а он что то не работает. К самому контроллеру установлен кварц на 16 мГц в схеме.
Или что то не так я тут понимаю?

Помогите пожалуйста нужно прошить МК . фьюзы такие Fuses: Low 0x53, High 0xD1
Lock bits: 0x3f
как и куда в AVR Studio 4 их вписать?

Устройство не работает.Вот разбираюсь…в плане пальнуть…что то не пойму с чего бы могло быть

Если просто считывал, то ничего подобного случиться не должно было. Может пальнут контроллер? Как себя устройство ведет? Работает?

Сложилась такая ситуация…
Была зашита атмега16,в устройстве работало все нормально.Потом программатором из пяти проводков попробовал законектить ее,считал…просто считал …данные понипрог и конроллер больше не видится по SPI.
Возможно ли это исправить?И каким способом лучше?

@GetChiper
Спасибо большое за ответ. Помогло. Сделал так — взял Atmega8 с минимальной обвязкой, залил Ардуиновский скетч немного правленый
void setup()
{pinMode(8, OUTPUT);}
void loop()
{ digitalWrite(outPin, HIGH);
delayMicroseconds(3);
digitalWrite(outPin, LOW);
delayMicroseconds(3);}
и подал на XTAL1, получилась частота порядка 166кГц. Поменял фьюзы на зеркальные 🙂 подпоял кварц и кондёры и Atmega128 завелась.
Ещё раз спасибо.

Частота особого значения не имеет. Обычно рекомендуют частоты порядка 1 МГц.
Да, частоту можно вывести программно (так как Вы привели в примере).

@sabeshkin
Я так понимаю я прошил фьюзы для тактирования МК от внешнего TTL генератора? Подскажите пожалуйста какой частотой тактировать XTAL1 и можно ли будет каким либо образом тактировать от Atmega8(внешний кварц на 16МГц)? К примеру в АрдуиноИДЕ написать чтото вроде
void loop()
{ digitalWrite(outPin, HIGH);
delay(50);
digitalWrite(outPin, LOW);
delay(50);}
прошить МК и с ноги outPin брать такты для Atmega128?

@GetChiper
Да нет, картинку не ту воткнул, правил только LOW фьюзы и бит совместимости с Atmega103, остальные стоят заводские

Странно Вы установили фьюзы. На картинке запрещен выход сброса, поэтому и не видит программатор кристалл. Теперь поможет только параллельный программатор или Фьюздоктор.

Добрый день.
Помогите пожалуйста разобраться с фьюзами у Atmega128.
С заводскими фьюзами Uniprof видел МК.
Пршил фьюзы на такие как на картинке
[URL=http://radikal.ru/F/i064.radikal.ru/1202/4f/c67eff3f1948.jpg][IMG]http://i064.radikal.ru/1202/4f/c67eff3f1948t.jpg[/IMG][/URL]
поставил кварц на 16МГц и кондёры по 22pF теперь Uniprof не видит МК 🙁

Fil :

прошивал Tiny2313 внешний кварц 8Мгц, фьюзы Low Byte все единички, после этого контроллер не определяется, подскажите причину

Теоретически, ничего страшного не должно случиться — на внешнем кварце все должно работать. Может что с кварцем?

sega_nnov :

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

Странные часы. Часовой кварц им не поможет, так как тини2313 не умеет с ним работать, а делать часы на обычном кварце затея бесполезная — замучаетесь их подводить. Поищите в сети схемку с часовым кварцом и будут Вам нормальные часы.

здравствуйте,я только начинаю изучать мк.первое что решил собрать, часы вот по этой схеме(http://cxem.net/house/1-199.php). прошивал UniProf через СОМ(все взял с этого сайта, огромное спасибо автору). с фьюзами возникли вопросы: ставил галки согласно калькулятору на внешний кварц 3-8 МГц, схема вообще не работала(даже индикации небыло). а прошив на внутренний 4МГц заработало, но часы бегут вперед. требуется более тонкая настройка? или схема не рабочая? или кварц надо часовой?

прошивал Tiny2313 внешний кварц 8Мгц, фьюзы Low Byte все единички, после этого контроллер не определяется, подскажите причину

@4eburek Попробуй подать тактовый сигнал на него, ты его запрограммировал на работу от тактового сигнала, как это сделать описано выше.

Здравствуйте прошивал мегу8 в UniProf,не выставил галочки CKSEL0 CKSEL1 CKSEL2 CKSEL3 http://s017.radikal.ru/i412/1110/82/a86d4e5470a7.jpg При повторном подключение,пишет контролер не найден! Подскажите можно ли это исправить

@GetChiper
Да, так и сделал, кондеры не вешал, кварц на 4 Mhz. Все прошилось на УРА, спасибо за помощь!

На ножки XLAT1, XLAT2 вешаешь кварц (1МГц или больше). К ножкам еще цепляешь по конденсатору (керамика) по 22пФ на землю (можно даже без конденсаторов — с большой вероятностью запустится)и шьешь фьюзы.

Здравствуйте. Прошивал Atmega168 в корпусе TQFP32, поспешил поставил на внешний кварц. Теперь не могу исправить, тут говорили что можно кварц к ножкам подпаять, подскажите как сделать правильно

В статье есть примеры на разные частоты

Здравствуйте!
Всё-таки как правильно установить фьюзы для ATtiny2313 на внутренний генератор 1МГц в понипрог, ставил по таблице http://avrproject.ru/publ/fuses/1-1-0-7 , так он «исчез с экрана радара»
CKSEL3 — галка, 2 — галка, 1 — галка, 0 — нет галки. 0 — это запрограмм(галка), ниже смотрю — заводская на 1МГц по-другому………

зы: CKOPT or CKOUT???

Для UniProf верно:
— снятая галочка– fuse bit = 0, фьюз запрограммирован / активный;
— установленная галочка– fuse bit = 1, фьюз НЕ запрограммирован / НЕ активный.

Прошу прощения за нубство.

Paul :@GetChiperВ UniProf. Я правильно понял, если CKSEL=1111, то надо ставить CKSEL0, CKSEL1, CKSEL2, CKSEL3?

Но какже правило: Во всех картинках фьюзы как по даташиту:
— снятая галочка– fuse bit = 0, фьюз запрограммирован / активный;
— установленная галочка– fuse bit = 1, фьюз НЕ запрограммирован / НЕ активный.

Для UniProf — ставить как на картинке;
Для PonyProg, CVAVR, AVR Studio – ставить инверсно.

@GetChiper
В UniProf. Я правильно понял, если CKSEL=1111, то надо ставить CKSEL0, CKSEL1, CKSEL2, CKSEL3?

Не могли вы бы сказать как установить фьюзы если мне дано: BODLEVEL=111 CKSEL=1111 SUT=11. Какие ставить?

У Белова на сайте есть такой же калькулятор, но айс. Потому что все по-русски, и самое главное, если не туда галку влупите, то выдает красным шрифтом предупреждение о том, что потеряете мк. Но только в онлайн версии.

http://fusecalc.mirmk.net/

В закладки, однозначно!

Доброго времени суток форумчане!
Так вот я разобрался в чем была проблема. Оказывается при прошивке из понипрога необходимо: открыть программу которую необходимо прошить, открыть окно прошивки фьюзов выставить их и нажать записать, потом жмем прошить устройство. И у меня все заработало даже на переходнике и от импульсного БП! а вот при прошивке флеш памяти а потом фьюзов последние не хотели прошиваться.

П.С. Может кому пригодится

Переходник не очень хороший вариант для таких программаторов — COM порт в них используется нестандартно, не все переходники это нормально воспринимают.

а и еще программатор подключен через юсб переходник

Странно, отдельно фьюзы у меги16 заблокировать нельзя. Попробуйте фьзы прочитать при помощи другого программатора или другой программы.

Может проблемы с питанием (поставить для пробы батарейки) или большим количеством шумов (поставить керамический конденсатор)?

В том то и дело (Flash) прошивается и даже запускается но фьюзы не шьются и не читаются

Доброго времени суток форумчане!
заранее прошу прощения если не в ту тему влез, сталкнулся вот с какой проблемой: прошиваю понипрогом Atmega16 все прошивается, ошибок не выдает, даже программа запускается но както медленно, пытаюсь прочитать фьюзы а там пусто я еще раз прошиваю фьюзы говорит ОК. но при чтении там опять пусто! Мегу на выброс?

Народ, есть такая программа как Algorithm Builder. Пользование ею как средой разработки — это дело личное. Но в ней есть прекрасный настройщик фьюзов, для каждого МК свой. Также, если вам лень разбираться с настройками регистров управления таймерами, UART, ADC, прочей шняги — в этой программе можно в сеттере выбрать желаемые параметры и увидеть в какие регистры какие числа писать для инициализации.
Русский хелп к ней вполне по-человечески написан.

сори за флуд проблему читания программатором снял = поставил чип на плату без кварца и перепрошил фьюзы по старому. Но в чем может быть проблема с кварцем. Частотомер показывает 10кгц на кварце = 10 мгц.

anatoliy :
У мя лежит кварц на 10кГц вот думаю надо будет подключить к МК. Так чисто для прикола

Народ хелп! у меня тоже ложали 2 кварца на 10 и на 20. Прошил как надо перепроверил 3 раза. Итого: он работает как будто внем не 20 а 0.02 (именно такой порядок) проверил 10 тоже самое деленное на 2. Народ посоветуйте где искать ошибку (в схеме нет 100%). И что сейчас делать с контролером — COM программатор его не теперь видит. Можно както без fuse doctor обойтись?

У мя лежит кварц на 10кГц вот думаю надо будет подключить к МК. Так чисто для прикола 🙂

Нее, ядро запитывать часовым кварцем ненада — нежный он очень. Если нужно запитать ядро низкочастотным сигналом, то внутренний RC-генератор и вправду лучшее решение.

Для включения в работу часового кварца фьюзы не помогут. Нужна определенная процедура перевода таймера (чаще всего Timer2) в режим работы от часового таймера. Я описывал эту процедуру вот здесь http://www.getchip.net/posts/052-kak-zapustit-nerabotayushhijj-chasovojj-kvarc-32768-gc/
Для AVR микроконтроллеров установка часового кварца примерно одинакова, но с даташитом свариться нужно.

Я бы на вашем месте ядро затактовал от внутренней RC. А часики реализовал на Real Time Counter with Separate Oscillator. Для использования в тактовом генераторе ВЧ кварцев конденсаторы обязательны. Иногда НЧ кварцы без них то-же не заводятся.

А что лучше внешние или внутренние конденсаторы?

Да это и есть часовой кварц. Про конденсаторы не забудьте! Но это ИМХО не по фэншую!

И ещё. Вот ссылка на русскоязычный калькулятор фьюзов: http://fusecalc.mirmk.net/. Выберете там ATmega162.
Может быть, в «Режимы синхронизации и задержки запуска (CKSEL, SUT) » в выпадающем списке «Внешний низкочастотный кварц;…» — это и есть часовой кварц?

Я вот открыл Datasheet на ATmega162 и нашёл секцию, про которую Вы говорили. Там есть табличка с этими фьюзами. Я как понимаю, часовой кварц = External Low-frequency Crystal?

Мы его тактуем от внешнего ЧАСОВОГО кварца, от 32768 Гц.

Ну режим в данном контексте, это от чего и с какой частотой вы будите тактовать МК. Например тактуем от внешнего ВЧ кварца. Или внешней RC цепочки, Или там от НЧ кварца.

@AlexeyByckov
ИМХО нужно сначала решить какой режим будите использовать а потом уже искать какие фьюзы за него отвечают.
Почитайте датасшид на ваш МК секцию System Clock and Clock Options. И выберете режим в котором вы собираетесь тактовать МК.

Еще было бы не плохо что-бы вы озвучили задачу которую вы хотите решить! Тогда можно подсказать что-то подробнее.

Мне требуются фьюзы. Остальное — потом.

@AlexeyByckov
А от чего вы его хотите затоктовать?

Имхо Кварц следует подключать практически прямо на ножки. Уж слишком это капризное устройство, то не запускается то от помех глохнет, то на гармонике запускается. Хотя попробуйте! Потом отпишите.

Здравствуйте! У меня вопрос: какие CKSEL- и SUT-фьюзы для процессора ATmega162 надо выставить, чтобы он мог работать от внешнего часового кварца? И ничего, что дорожки (а, точнее, проводки) от кварца до контроллера около 3 см?

Хорошее дело! Если есть такой даташит — кидайте на мыло — я выложу.

Приветствую. Как то не внимательно я проработал материалы на вашем сайте. И с приятным удивлением нашел здесь то что искал по всему интернету. Спасибо. Особенно понравились готовые настройки фусе бит под конкретные задачи. Спасибо.
Но тем не менее, в нете нашел кое что интересное. Даташит на русском на 2313. В связи с этим вопрос, и он же пожелание иметь подобные даташит на русском на Вашем сайте на ходовые процессоры. Хотел прицепить этот даташит здесь, но не знаю как. И хоть он и не полный, но узнал я там не мало полезного. Да оно и удобно, не дергать каждый раз людей по пустяковым вопросам, а вдумчиво и внимательно проработать материалы на родном языке. Ну а уже потом и можно и оригиналы на английском почитать, а то вдруг где ошибки в переводе.

программатор собран по этой ссылке— http://easyelectronics.ru/usb-programmator-avr-usbasp.html .Единственная софтина которая поддерживает этот программатор это AVR-чувак, она же дудка, она же AVRDUDE. На него существует несколько оболочек. Контроллер уже 2й такой , первый в планаре, а этот в дипе , специально взял для эксперементов. А фьюзы не читаются, попробую прочитать громовским программатором, т.е. пятью проводками (удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.)Спасибо за ответ!

Проблема может быть или в микроконтроллере или в самом USBAsp. А что за программатор? С другой программой работать сможет, чтобы попробовать?

Такой вопрос возник, при программировании ATTINY 85-20PU с помощью программатора USBAsp 1)контроллер определяется, 2)читается сигнатура,3) стирается, но при считывании фьюзов пишет ошибку,и во всех чип боксах устанавливаются галочки. контроллер совершенно новый, только из магазина!Как нужно правильно считать фьюзы в этом контроллере и выставить нужные? Все остальные ATMEGI с этим программатором работают на 5 баллов!Может в ATTINY существует какая то особенность, или последовательность, по установке фьюзов?

А если МК не правильно подключил то всё ему жопа, если линии не правильные… MISO c Mosi перепутал или с SCK
Я просто так сделал, только что заметил…

При подключении программатора к USB в диспетчере устройств (в разделе Порты COM и LPT) появится новый КОМ порт. Вот его и нужно указать в качестве порта STK500 в том-же CVAVR.

Мне сказали, что в моем программаторе STK500 есть виртуальный ком порт, но как его найти и как заставить работать? чтобы в CVAVR можно было программировать:?

Ни тот ни другой. Параллельный программатор — это довольно сложное устройство — дешевле купить пол десятка новых микроконтроллеров чем собирать последний

Спасибо! А программатор COM Громова или LPT это параллельный ?

Выбирай последнюю и еще поставь галочку на против CKOPT.

GetChiper, я не знаю какую строчку выбрать (для выбора кварца), там их очень много, а с надписью 16Mhz нет (

cudi :

Зашёл там самая верхняя строчка, после того как выбрал МК это и есть строчка выбора частоты?

Да.

cudi :

А если ты убрал фьюз SPIEN то всё конец мк ?!

Не конец, но последовательным программатором не прошьешь. Нужен параллельный или http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/

cudi :

В avr studio 4 выбирать кристалл надо в строчке SUT_CKSEL?

В окошке программирования, закладка Main

В avr studio 4 выбирать кристалл надо в строчке SUT_CKSEL?

я не чаяно убрал, теперь не могу программировать через шину SPI

Зашёл там самая верхняя строчка, после того как выбрал МК это и есть строчка выбора частоты?
А если ты убрал фьюз SPIEN то всё конец мк ?!

Нужно зайти на фьюз калькулятор http://www.engbedded.com/fusecalc/ — выставить нужные функции и частоту, потом один в один перенести фьюзы в АВР Студию(на картинке показано куда вносить).

STK500 вообще то комовский программатор. То что он работает от USB, то это благодаря преобразователю. На чем собран преобразователь? После установки драйвера преобразователя должен появиться виртуальный ком порт — вот его и нужно «скармливать» программам.

И вот ещё, у меня USB программатор STK500, в CodeVisionAVR он работает?
Выбираю в CodeVisionAVR свой программатор а там только на порты COM1-6
В SinaProg не находит меня:( почему ?(

Мне срочно нужно установить фьюзы на МК atmega16 чтобы он работал от кварца 16 Mhz, работаю в avr studio 4, как и где мне поставить фьюзы ?
И какой фьюзы в atmega16 отвечает за работу с кристалла 16MHz?

Нет, неправы. И обе Ваши ссылки это подтверждают.
Возможно Вас вводит в заблуждение фраза «CKOPT – бит, определяющий режим работы встроенного генератора тактовой частоты для работы с кварцевыми резонаторами»? Имеется в виду, что для качания внешнего кварца используется встроенный генератор (осциллятор). CKOPT задает амплитуду этого встроенного осциллятора. Но задающим частоту элементом является внешний кварц. Встроенный RC генератор тактовой частоты здесь не причем.

«The CKOPT Fuse selects between two different Oscillator amplifier modes. When CKOPT is programmed, the Oscillator output will oscillate a full rail-to-rail swing on the output. This mode is suitable when operating in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range. When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it cannot be used to drive other clock buffers.»

Это из даташита на ATmega8. Если кратко, то здесь говориться о двух режимах выходного усилителя которые отличаются размахом сигнала. Это точно относиться к внешнему генератору.

«CKOPT – задает размах тактового сигнала на внешнем генераторе.»
Здесь неточность. Этот фьюз управляет работой внутреннего генератора.
За статью спасибо.

Согласен. Но большинство, все таки, работает по умолчанию с внутренним RC генератором.

«С завода, по умолчанию, фьюзы выставлены для работы микроконтроллера от внутреннего задающего генератора. Ничего довешивать не нужно подал питание, и он работает.»
Не все так:( например серия AT90USB…
AT90S…. часто неимели внутри себя RC генератора

DWEN – бит, разрешающий работу DebugWire

JTAGEN = 1 – запрещен DebugWire ;
JTAGEN = 0 – разрешен DebugWire .

Нет ли здесь ошибки?
PS За статью спасибо!