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

Автор: | 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_default_internal_RC_1.2.png (14746 Загрузок)
ATtiny13_internal_RC_4.8.png (9423 Загрузки)
ATtiny13_internal_RC_9.6.png (10382 Загрузки)
ATtiny13_internal_RC_0.128.png (7055 Загрузок)

3.2 ATtiny2313
ATtiny2313_default_internal_RC_1.0.png (13060 Загрузок)
ATtiny2313_internal_RC_4.0.png (15094 Загрузки)
ATtiny2313_internal_RC_8.0.png (12184 Загрузки)
ATtiny2313_external_0.9_3.0.png (6140 Загрузок)
ATtiny2313_external_3.0_8.0.png (9579 Загрузок)
ATtiny2313_external_8.0_20.0.png (Одна Загрузка)

3.3 ATmega8
ATmega8_default_internal_RC_1.0.png (20586 Загрузок)
ATmega8_internal_RC_2.0.png (10994 Загрузки)
ATmega8_internal_RC_4.0.png (Одна Загрузка)
ATmega8_internal_RC_8.0.png (18620 Загрузок)
ATmega8_external_1.0_16.0.png (22105 Загрузок)

3.4 ATmega48/88/168
ATmega48_88_168_default_internal_RC_1.0.png (7812 Загрузок)
ATmega48_88_168_internal_RC_8.0.png (7013 Загрузок)
ATmega48_88_168_internal_RC_0.128.png (5087 Загрузок)
ATmega48_88_168_external_0.4_25.0.png (8458 Загрузок)

 

А теперь то, для чего писалась эта статья –
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 212 818 times, 1 visits today)

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

  1. SergejGost

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

  2. svg67

    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 залочилась

  3. popilsjawa

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

  4. popilsjawa

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

  5. popilsjawa

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

  6. svg67

    SergejGost :

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

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

  7. SergejGost

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

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

  8. svg67

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

  9. SergejGost

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

  10. SergejGost

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

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

  11. GetChiper Автор записи

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

  12. SergejGost

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

  13. HeavyTF

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

  14. SergejGost

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

  15. GetChiper Автор записи

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

  16. SergejGost

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

  17. sabeshkin

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

  18. GetChiper Автор записи

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

  19. sabeshkin

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

  20. sabeshkin

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

  21. GetChiper Автор записи

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

  22. sabeshkin

    Добрый день.
    Помогите пожалуйста разобраться с фьюзами у 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 не видит МК 🙁

  23. GetChiper Автор записи

    Fil :

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

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

    sega_nnov :

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

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

  24. sega_nnov

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

  25. Fil

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

  26. kruvasil

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

  27. 4eburek

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

  28. alexspy2

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

  29. GetChiper Автор записи

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

  30. alexspy2

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

  31. GetChiper Автор записи

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

  32. cooproom

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

    зы: CKOPT or CKOUT???

  33. GetChiper Автор записи

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

  34. Faers

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

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

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

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

  35. GetChiper Автор записи

    Совершенно верно.

  36. Paul

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

  37. GetChiper Автор записи

    Это смотря в какой программе.

  38. Paul

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

  39. ec

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

    http://fusecalc.mirmk.net/

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

  40. shaman

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

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

  41. GetChiper Автор записи

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

  42. shaman

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

  43. shaman

    Спасибо попробую но такое ощущение что прийдется мегу менять шью понипрогом, программатор лежит тут http://www.cqham.ru/progAVR_PIC.htm

  44. GetChiper Автор записи

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

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

  45. shaman

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

Добавить комментарий