What are fuses? How to work with fuse bits on AVR microcontrollers

Поділитися
Вставка
  • Опубліковано 13 лип 2024
  • In this video we will talk about what fuses are, what they are for and how to work with fuses on AVR microcontrollers. In the video I will demonstrate the fuse calculator and how you can change fuse bits with the fuse calculator.
    I will show an example of changing the fuses on the ATtiny13 microcontroller. But this method will work for other AVR microcontrollers too. In the video, I will first change the fuse of the CKDIV8 and show what happens. And then I will show the result of changing the RSTDISBL fuse. And you will see how easy it is to increase the number of available I / O pins by one.
    An Arduino UNO is used as an ISP programmer with a module placed on top for the convenience of firmware ATtiny microcontrollers.
    Link to the program for working with fuses from the video - drive.google.com/file/d/117L1...
    Very briefly about some fuses - drive.google.com/file/d/13Tii...
    Links to electronic components from the video:
    - ATtiny13 DIP - alii.pub/62nc0s
    - ATtiny13 SOP package - alii.pub/62nc25
    - ATtiny85 DIP package - alii.pub/62nc3w
    - SOP8-DIP8 adapter for ATtiny13 / 25/45/85 - alii.pub/62nc43
    0:00 Introduction
    0:50 What are fuses?
    1:58 Fuses calculator
    3:45 Decoding some fuses
    7:32 Read and change fuses
    9:33 Changing the fuse RSTDISBL
  • Наука та технологія

КОМЕНТАРІ • 42

  • @pindzak
    @pindzak 3 роки тому +2

    Спасибо, у вас, пожалуй, самое понятное объяснение фьюзов, что я нашёл для себя. И слушать приятно

  • @pupkin204
    @pupkin204 3 роки тому

    Очень будет интересно осмотреть ваш метод востановки заводских фьюз.

    • @neoalternator
      @neoalternator  3 роки тому

      На следующих выходных планирую видео

  • @sergey-380
    @sergey-380 3 роки тому +2

    дякую

  • @yl923
    @yl923 Рік тому

    А про мега64 фьюз биты можно рассказать?

  • @RomaRingo
    @RomaRingo 2 роки тому

    Для работы со скетчами, подойдут фузе биты по умолчанию на тини13 ? не хочу RST портить

    • @neoalternator
      @neoalternator  2 роки тому

      В большинстве случаев - да.

  • @ivannovosyolov115
    @ivannovosyolov115 3 роки тому +1

    Расскажите об ESP32.

    • @neoalternator
      @neoalternator  3 роки тому

      Будет о ESP32. Но в начале о ESP8266

  • @user-wq4sd6tr6x
    @user-wq4sd6tr6x 3 роки тому

    Если светодиод при команде delay 1000 светит ровно одну секунду, значит реальная тактовая частота 1 МГц? И увеличить быстродействие программы можно только через фьюзы, правильно?

    • @neoalternator
      @neoalternator  3 роки тому +1

      Delay всё же функция, которая учитывая частоту, для каждого мк имеет свой поправочный коэффициент. Т.е. для тини13 это может быть так, а для других мк не так. В комментариях к примеру blink_using_timer для тини13 показано как рассчитывается пауза в зависимости от частоты. Изменить тактовую частоту можно и в arduino ide в том же блоке, где плата выбирается. А через фьюзы можно убрать делитель тактовой частоты на 8 если он установлен.

    • @user-wq4sd6tr6x
      @user-wq4sd6tr6x 3 роки тому

      @@neoalternator Мне кажется, делитель на 8 устанавливают для того, чтобы повысить точность работы процессора в 8 раз, снизить погрешность отсчитывания времени. Но тактовую частоту выполнения команд делитель снижает в те же 8 раз. То есть процессор молотит с частотой 9, а команды выполняет с частотой 1,2, зато промежутки времени между командами в 8 раз точнее, чем без делителя.
      В Ардуино иде можно выбрать частоту, но нельзя отключить делитель, потому что это стандартная функция, улучшающая работу МК. Делитель можно отключить только через фьюзы, вы продемонстрировали как это сделать и показали результат, большое спасибо. Мне как раз в одном деле нужна максимальная частота считывания с датчика, а точность временных интервалов в этом деле не важна.

    • @neoalternator
      @neoalternator  3 роки тому +1

      @@user-wq4sd6tr6x Вы все верно написали. Но если нужна большая частота, может быть рассмотреть кого-то из семейства STM32?

  • @radikmullayanov8507
    @radikmullayanov8507 3 місяці тому

    Не получилось считать фьюзы с помощью батника. К какому бы порту USB не подключался, всегда подключается com1.

  • @trewerguli1727
    @trewerguli1727 3 роки тому

    Можете подсказать, digispark при подключении к пк, появляется и сразу пропадает в диспетчере устройств, буквально за секунду. Это нормально или нет?

    • @neoalternator
      @neoalternator  3 роки тому

      Попробуйте отключить антивирусную программу, если есть. Возможно она блокирует, как вредоносное устройство. Второй вариант - плохой контакт с юсб портом компьютера. Светодиод на плате горит?

    • @neoalternator
      @neoalternator  3 роки тому

      А еще порт должен быть обязательно usb 2.0

    • @trewerguli1727
      @trewerguli1727 3 роки тому

      @@neoalternator пробовал на двух ноутбуках, на одном точно одни 2-е порты. На обоих чистая вин 10. Спасибо.

  • @user-jd6mf8en2t
    @user-jd6mf8en2t 3 роки тому

    Таак, вобщем вначале лучше залить прошивку а потом менять фьюзы правильно понял?

    • @neoalternator
      @neoalternator  3 роки тому

      После только spien и rstdisbl. Т.к. потом мк не прошить. Остальные можно менять и до загрузки и во время загрузки.

    • @user-jd6mf8en2t
      @user-jd6mf8en2t 3 роки тому

      @@neoalternator Спасибо за ответ! Мне как раз reset и нужно поменять

  • @user-bs4jn3ms8h
    @user-bs4jn3ms8h 3 роки тому

    Привет. Спасибо за ценную информацию в твоих видео. Пытаюсь оживить тиньки купленные на Али - не шьются через ISP.
    Пробую сначала считать фьюзы твоей утилитой, но при выборе "Read fuses" выскакивает ошибка avrdude.exe "Запуск программы невозможен, так как на компьютере отсутствует libusb0.dll. Попробуйте переустановить программу".
    Такое же сообщение вываливается, при попытке чтения лок-битов и стирания чипа, а также когда пытаюсь запустить avrdude.exe из папки с твоей утилитой. Версия IDE 1.8.12.
    Помоги если сможешь. Лежат три собранные устройства, думал ща залью прошивки через ISP и всё. Ан хрен там. И того имеем неделю головной боли, три запаянных кирпича и 7 в пакетике. Это 13-е.
    И ещё 5 шт. 25-тых. С ними тоже наверное такое же. Пробовал вместо одной тринадцатой подкинуть двадцать пятую, перепаял на плату, пробую прошивать то же самое.
    Может попробовать сразу прожечь их высоковольтным программатором, хотя, причем тут указанная мной ошибка. Фьюзы ведь должны читаться в любом случае, только разве что Reset заблокирован.
    Помоги, пожалуйста.

    • @user-bs4jn3ms8h
      @user-bs4jn3ms8h 3 роки тому

      Пробовал только что прожигать программатором - результата ноль. Монитор порта останавливается на операции "read fuses". Даже на тех 25-ых тиньках, которые ещё не трогал.
      Это капец какой-то.....

    • @user-bs4jn3ms8h
      @user-bs4jn3ms8h 3 роки тому

      Поставил версию 1.8.8 как у тебя в видео - результата НОЛЬ. При попытке чтения фьюзов 25-тых тинек которые ещё не были в использовании лезет та же ошибка про отсутствие libusb0.dll. В чем подвох?
      Где его взять, бл.... , если он даже при переустановке IDE не появляется?

    • @neoalternator
      @neoalternator  3 роки тому

      Приветствую! Вообще это стандартная библиотека. Должа появляться при установке Arduino IDE. Вне зависимости от версии. У меня она там же, где и avrdude.exe в папке C:\Program Files (x86)\Arduino\hardware\tools\avr\bin Если ее там нет, вот загрузил ее на гугло-диск, можно скачать и туда закинуть drive.google.com/file/d/1P7aoNqOVfeeFZ7bzFABZKMFKYGJ8ApYY/view?usp=sharing

    • @neoalternator
      @neoalternator  3 роки тому

      @@user-bs4jn3ms8h да, кстати, если библиотека эта всё же есть, просто avrdude ее не находит, т.к. она не там, где прописано в его конфигах, то можно наоборот, взять из папки C:\Program Files (x86)\Arduino\hardware\tools\avr\bin файл avrdude.exe и из соседней папки etc файл avrdude.conf и заменить ими аналогичные файлы в моей утилите. Т.е. только BAT-файл мой оставить. Может сработать.

    • @user-bs4jn3ms8h
      @user-bs4jn3ms8h 3 роки тому

      @@neoalternator Спасибо, что отозвался. У меня тоже она там есть, но почему не работает не пойму. Это ведь библиотека для usb портов, так?
      Пробовал копировать её с диска С в папку с твоей утилитой - ошибка пропала, но заработало не так как у тебя в видео. Всё что получаю в результате, похоже на то, что выдаёт IDE внизу по окончании безуспешной загрузки. Что заметил:
      -using programmer: avrisp. Почему?
      - и в конце концов печальное 0x000000..... и так далее.
      Папки с утилитами есть разница куда ложить: на С или на D?

  • @GrandFRX
    @GrandFRX 4 місяці тому

    считываю. все ок
    перезаписываю на 0A FF
    avrdude: AVR device initialized and ready to accept instructions
    Reading | ################################################## | 100% 0.02s
    avrdude: Device signature = 0x1e9007 (probably t13)
    avrdude: safemode: Fuses OK (E:FF, H:FB, L:39)
    avrdude done. Thank you.
    на этом всё перезапись не удалась

  • @user-ms3id7jv7v
    @user-ms3id7jv7v 6 місяців тому

    Эй ти тайни или просто аттини тогда уж