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

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Jozik    0

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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    484

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    484

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

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


Ссылка на сообщение
Поделиться на других сайтах
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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: myrka
      Доброго дня! 
      Купил на барахолке вот такую плату





      на последней фото 2 черных провода в дальнейшем соединены 
      Это бегущая строка от игровых автоматов, на ней 2-мя цветами отображаются слоганы, хочу перепрошить в целях обучения.
      Вопросы:
      1) встречал ли кто-то описание этой микросхемы? (я в интернете не нашел, потратил 2 дня)
      2) есть на микросхеме разъем (10 ножек хорошо видно на последнем фото), как узнать их имена, за что отвечает каждая ножка? (есть некоторые предположения, но сомневаюсь в них)
      3) можно ли через CP2102-USB-UART-MODULE перепрошить вот эту микросхему, если да то как соединить?
    • Автор: Atreides
      Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.
    • Автор: EugenArt
      Всем доброго времени суток!
      в поиске не смог найти инфо, поэтому создал тему, не ругайте, если ошибся с веткой.
      Идея следующая, есть автомагнитола deh-3600MP c выходом Ip-bus.Хочу подружить магнитофон с мп3 плеером (есть от фм-трансмиттера, завтра куплю платку отдельного мп3). Сразу подчеркну, что хочу управление плеером (треки, теги, пауза и т.д) с головного устройства.
      предполагаю схему так:  ip-bus - avr - mp3 player.
      алгоритм avr-mp3 несложен и открыт, а вот описание протокола ip-bus нигде нет, форум витат.спб уже изучил, есть кусок кода работы авр и ip-bus, но не очень понятно, может подскажете набор команд ip-bus или что происходит по событию нажатию кнопки вперед/назад.
      Заранее благодарен.
    • Автор: Максим Окатов
       
      Товарищи, помогите пожалуйста. Данная програмулина при нажатии на кнопку входит в функцию MinU() в которой инициализирует таймер для задержки(ждем отпустит пользователь кнопку или нет) если кнопка не отпущена то уменьшаем скважность ШИМ.
      проблема в выделенной красным строчке! когда count больше 3 уменьшаем скважность, но в отладчике AVR studio, Proteus и в железе не робит.
      Перепрыгивает действие в {} так будь-то условие не выполнено...
      #define F_CPU 1000000L
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <util/delay.h>
      unsigned char count = 0;
      unsigned char a=5,s=3,b=0;
          //===================================Насройка таймера====================
      void Timer_ini(void){
         TCCR1B = (1<<CS12)|(0<<CS11)|(0<<CS10);
         TCNT1 = 65535-976;
         TIMSK |= (1<<TOIE1);
         count = 0;
        }
          //===========================настройка шим===========================
      void PWM_ini(void){
         ASSR=0x00;
         TCCR2=0b01101110; //На выводе OC1A единица, когда OCR1A==TCNT1, восьмибитный ШИМ
         OCR2=200;
      }
      //===============
      void MinU(){
          unsigned char i=0;
          Timer_ini();
          while (!(PINB&0b00000010)){
              if(count>2){        //Если таймер считал более двух раз
                _delay_ms(100); // ждем 100 мс
                OCR2--; // Уменьшаем скважность
                i=1;        // были в плавном уменьшении
            }
            
         }
         if (i!=1) // если не были в плавном уменьшении
         {
             OCR2=OCR2-50;
             i=0;
         }
      }
              //=======================================================
      int main(void)
          {
             
              // Настраиваем порт D на выход
              DDRB = 0b00001000;
              PWM_ini();
              //Timer_ini();
              sei();
              
              
              while(1)
              {
                  b=a-s;
                  if (!(PINB&0b00000010))
                  {
                      MinU();
                  }/*
                  //if (!(PINB&0b00000100))
                  //{
                      //PlsU();
                  //}*/
              }
              return 0;
          }
          
          ISR (TIMER1_OVF_vect)
          {
              count++;
              TCNT1 = 65535-976;
                  }
       
       
       
    • Автор: Serg_Mang
      Можно ли залить в arduino прошивку, предназначенную для чистого AVR?