Zheka

Начинающим О Фьюзах (Fuse Bits)

325 сообщений в этой теме

Zheka    1

Что же такое FUSE биты? Слова вроде бы знакомые, но многие толком и не знают их предназначение, ставят галочки и прошивают, работает устройство да и ладно. Я вам хочу рассказать немного про эти FUSE биты.

FUSE биты (фьюзы) – ну если по простому, то они настраивают определенные параметры микроконтроллеров, это некий инструмент для их тонкой настройки Фьюзы включают или настраивают такие параметры как:

- частота генератора, внешний или внутренний генератор

- запрет на чтение прошивки микроконтроллера

- включение или выключение таймеров

- деление частоты кварцевого генератора

- защита EEPROOM от стирания

…и так далее. У каждого микроконтроллера выставляются свои фьюзы, у разных микроконтроллеров разный список фьюзов, например в ATmega8 нет фьюза CKOUT, но он присутствует в ATtiny2313. В даташитах к микроконтроллерам все эти фьюзы расписаны.

Читать далее: Фьюзы микроконтроллеров AVR – как и с чем их едят

post-1-0-55914800-1424087566.png

Устройство оживления микроконтроллеров Atmel

Исправление фузов AVR

SinaProg + ATmega328P исправляем прошивку фьюзов

Темы на форуме:

Fuse Doctor не определяет пациентов

Lock Bit или что может быть хуже


Начал собирать металлоискатель. Все спаял - дело осталось за малым - прошить ATTiny 2313. Но чего-то я никак не пойму, какие надо фьюзы выставлять?

Для тактирования от внешнего генератора, я так понимаю, надо выставить:

CKSEL=F (1111)
CKDIV=1

Вот то, что программатор считывает с контроллера.

Теперь вопрос: где нужно выставить/убрать галочки? (программа - UNIPROF)

post-64218-1249225815_thumb.jpg

Изменено пользователем admin
Добавлена шапка темы
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Jozik    1

Вот калькулятор фьюзов чтоб не заморачиваться...http://www.engbedded.com/fusecalc/

только не знаю как в юннипрофе у тебя, но например по ссылке: Галочка - фьюз=0 (то есть запрограммирован!)

и поидее тебе нужно наоборот все фьюзы запрограмить то есть не F a 0000 поставить на всех CKSEL галочки

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

Я обычно делаю так: Считываю настройку фьюз и смотрю как оно работало перед этим. Потом включаю выше приведённый калькулятор и по нему розщитываю что и кде надо настроить.. Считать всегда полезно - чтобы сравнить с товарной настройкой...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

Че-то я не понимаю ничего в этом калькуляторе( я в этом деле новичек). Может кто-нибудь сможет мне рассчитать фьюзы- все необходимые параметры дам, если нужно.

И вот еще- один контроллер я уже пытался сам прошить и отключие тактирование от внутреннего генератора, теперь нужно собирать внешний. А нет ли программки , которая сама может тактировать?

Изменено пользователем Zheka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Jozik    1

можешь собрать сам генератор.. или просто к программатору кварц прицепи...если сам паял

"программка" в каком смысле? там на ножку должны приходить импульсы... разьве только на другом мк напиши себе генератор и прицепишь к тому пину и будет тебе "программка"

ну кароч скажи "параметры", фьюзы скажем тебе...

а вообще можешь спаять себе программатор например ЭТОТ он норм работает

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

А какие параметры??? Кварц-10Мгц. что еще надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
SSam    1

Zheka, так тебе надо что?

1.

...Для тактирования от внешнего генератора, я так монимаю, надо выставить...

2.

А какие параметры??? Кварц-10Мгц. что еще надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

Короче, мне надо выставить фьюзы для тактиования от внешнего кварца, часстотой 10 МГц.

Изменено пользователем Zheka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
SSam    1

думаю так:

post-37607-1249234670_thumb.jpg

Изменено пользователем SSam

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

На другом форуме сказали что надо выставить так

post-64218-1249278112_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    566

Тему переименовал и поднял. Теперь про конфиги только в этой теме !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Для внешнего тактирования можно использовать и CKSEL3...0 = 1111, только вот CKDIV8 надо убрать, так как он делить тактовую частоту на 8.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

Включенный FUSE - это FUSE без галочки( в моем программаторе). Я так понимаю что мне нужно убрать все галочки на юьюзах CKSEL3...0???

А что с фьюзами CKOUT и SUT1 ? Ставить окло них галочки или нет?

Можете ли Вы на моей картинке нарисовать , где нужно ставить галочки???

Изменено пользователем Zheka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Я под этим программатором никогда не работал, я постоянно работаю с Pony prog, скажу как в Pony Prog, CKSEL3...0 должны быть сняты галочки и с CKDIV8 надо убрать. По поводу SUT0 можно тож поставить галочку, но тут я не уверен :ph34r: Так как писал по даташиту, можно посчитать онлайн http://www.engbedded.com/fusecalc/...

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

Включенный FUSE - это FUSE без галочки(так в описании программы написано), значит надо убрать галочки с этих фьюзов? Вот картинка, пожалуйста, обведите те фьюзы, около которых должна стоять галочка!!!!! Help!!!

post-64218-1249298177_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

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

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    566

А Вам всю жизнь на форуме будут рисовать галочки ? Может Вы всётаки почитаете ДШ ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

По скрину видно что тут галочки стоят инверсно от Pony prog, по стандартному МК настроен на тактирование от внутреннего генератора на 8мгц (CKSEL3...0 = 0100) и деление на 8 и в итоге получаем 1мгц

Вот скрин если что перепроврте кто работал с этим программатором, при прошивке кварц должен быть подсоеденён.

PS если я всё правельно понял, то если галочка снята, тогда этот бит = 0

А вообще то надо читать даташит, а то получается Atmel его даром написал. Там по фьюзам всё норм расписано.

post-13943-1249325599_thumb.jpg

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

Так, все ясно! Ща буду пробовать. а может ктонито схему скинуть генератора (1-10МГц)?Желательно самый простой. Жругой контроллер надо оживить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Отпишись о результатах установки фьюзов. :) Можно сделать генератор на другом МК. Я сам так делал, брал Тини13 выставлял 9.6мгц и писал простенькую прогу мигалки без задержки, потом это всё подключал на XTAL1 и прошивал.

Код:

while(1){
PORTB.0=1;
PORTB.0=0;
}

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zheka    1

А схема генератора на логических элемантах есть???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

да самый обыкновенный на ЛА3 - тут нужно от 600 кГц до 4 Мгц генератор...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ddenebb    0

как то я нечаяно при прошивке тини 2313 запрограмировал фюзы (CKSEL0, CKSEL3, SUT0) все остальные незапрокрамированные, после чего програмка говорит "avrprog error entering programming mode" .програмировал через CVAVR. что делать. неужели без паралельного програматора ничего нельзя сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

Смотрите выше :) Вы включил внешний генератор - подайте частоту на МК и перепрошейте фьюзы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Kirill Lubinets
      Дано: отладочная плата STM32F303VC, индукционный датчик.

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

      Информация по датчику.
      Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды.
      Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения.
      Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания:
      контакт обозначенный «–» – общий контакт;
      средний контакт – напряжение питания;
      контакт S – аналоговый выходной сигнал датчика.
      Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока.
      Характеристики:
      принцип действия: индукционный;
      выходной сигнал: аналоговый;
      напряжение питания: 3,3 – 5 вольт постоянного тока;
      размеры: 30 х 18 х 11;
      вес: 2 г.
      Shock.7z
    • Автор: Петр Серёгин
      Здравствуйте, у меня проблема.
      Не программируется ATmega2561-8AU. Программатор USBASP. Микроконтроллер 100% рабочий. Питание и контакты программатора припаяны правильно.
      Что можете посоветовать? 
    • Автор: RIMUS1989i
      Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?

    • Автор: spekky
      Добрый день. Никто не делал такую плату? Показалась очень удобной, но продается только в Украине. Печаток различных адаптеров нашел море, какие-то сделал, но этот совмещает в себе вообще все, что мне надо и очень эстетичен. Или может кто-то может помочь с ее покупкой и пересылом? Развести я такую сам не смогу, хоть и понятно, что достаточно даташитов...
       

    • Автор: Faust_VIII
      Есть вот такой фрагмент кода отвечающий за ШИМ в программе управления BLDC. 

      {
      TCCR0A |= (1 << COM0A1)|(0 << COM0A0)| // Сброс вывода OC0A при совпадении
      (1 << COM0B1)|(0 << COM0B0)| // Сброс вывода OC0B при совпадении
      (1 << WGM01)|(1 << WGM00); // Режим Fast PWM
      TCCR0B |= (1 << CS00); // Предделитель CLK/1

      TCCR2A |= (1 << COM2B1)|(0 << COM2B0)| // Сброс вывода OC2B при совпадении
      (1 << WGM01)|(1 << WGM00); // Режим Fast PWM
      TCCR2B |= (1 << CS00); // // Предделитель CLK/1


      PCMSK0 |= (1 << PCINT2)|(1 << PCINT1)|(1 << PCINT0); // Активируем входы внешних прерываний
      PCICR |= (1 << PCIE0); // Разрешаем прерывание по изменению состояния порта B

      ADMUX |= (1 << MUX1)|(1 << MUX0); // Вход ADC3 
      ADCSRA |= (1 << ADEN) | (1 << ADPS1); // Разрешаем АЦП, предделитель на 4

      DDRC |= (1 << PC2)|(1 << PC1)|(1 << PC0); // Порт С - выход(светодиоды) 
      PORTC &= ~(1 << PC2)|(1 << PC1)|(1 << PC0);

      DDRB |= (1 << PB2)|(1 << PB1)|(1 << PB0); // Кратковреммено подаем лог.1 на входы датчиков 
      PORTB |= (1 << PB2)|(1 << PB1)|(1 << PB0); // для первоначального запуска двигателя
      PORTB &= ~(1 << PB2)|(1 << PB1)|(1 << PB0);

      DDRB = 0x00; // Порт B - вход

      sei(); // Глобально разрешаем прерывания

      DDRD = 0xFF; // Порт D - выход 

      программа работает но двигатель пищит что очень напрягает нервы, я так понимаю что писк происходит из-за низкой частоты ШИМ. Проект собран на AVR Atmega48 с кварцем на 16МГц. Как поднять частоту ШИМ (в программировании я не силен но стараюсь разобраться, данный отрывок программы брался из интернета и как он работает я понимаю хреновато)
  • Сообщения

    • А ссылки на почти десяток светодиодов, что я давал выше - просвистели мимо?
    •   Другими словами, я не уверен в полном соответствии модели с фактическим экземпляром, китаец, он же такой ... китаец. Я руки не опускаю, ищу решение, которое меня устроит, применительно к сверлилке. Заказал сегодня ещё мотор, получу - сравню.
    • Как удалить тему? Вопрос решился!
    • Можно, ну почти, но надо поверхности подготавливать. я к примеру поверхность на подошве радиатора и поверхность процессора выравнивал и полировал, полупрозрачным слоем нанесенная паста выдавливалась почти вся и отпечаток был полноценным при снятии
    • Моделька на странице с вашим мотором указана. Характеристики - исчерпывающие. Вот они: RS-775SM-4445-F: Максимальный крутящий момент при 24В и полной остановке указан 0,723 н*м = 7,37 кг*см. Не хило так)). Указан ток Istall=24,5 А при 24В. Значит, Rя=1 Ом. В ваших условиях, когда Кзап=0,3, обороты холостого хода будут Кзап*8300=2500 мин-1, питание мотора будет уже Кзап*24=7,2 В. При 7,2В и Кзап=0,3, ток Istall=7,2 А. Момент при заклинивании будет 7,37*Кзап=2,2 кГ*см. Если не вносить дополнительного сопротивления в цепь мотора.))   У меня: RS-550PH-5740 Максимальный крутящий момент при 18В и полной остановке указан 4,75 кг*см. Указан ток Istall=54,3 А при 18В. Значит, Rя=0,33 Ом. Когда Кзап=0,3, обороты холостого хода будут Кзап*19000=5700 мин-1, питание мотора будет уже Кзап*18=5,4 В. При 5,4В и Кзап=0,3, ток Istall=16,4 А. На деле выходит чуть более 17А. Момент при заклинивании будет 4,75*Кзап=1,43 кГ*см. Что могу сказать по поводу вашего мотора? Нормально он тянет. Просто обороты ХХ чуть повысить - до 3000-4000. Он ведь и так без редуктора работает, а это для мотора заведомо невыгодный режим. Регулятор в данном случае выполняет свою работу как и должен.
    • Это не запас. Напряжение диода может быть 2.8В, а аккумулятора 11В. Это вредительство.
    •   Можно. Если вы обратили внимание, я заложил ток 600 мА, питание 2,4В и напряжение общее 15 В, то есть всё с запасом