Всё о фьюзах...
Всё о фьюзах...
для чего они нужны?
-
SfS
Re: fuse те фьюзы
Anonymous писал(а):Я тоже спрашивал, но потом пришлось смириться.
fuse - биты - это биты, позволяющие задавать аппаратную конфигурацию контроллера.
Например - от чего он будет тактироваться (кварц, RC-цепь, встренный тактовый генератор), можно ли после программирования считать его память или нет (защита от копирования программ), в старших моделях есть fuse-биты совместимости с младшими. Например, atmega8535 совместим по ногам с AT90S8535. И переферия (дополнительная) atmega8535 не доступна, если стоит бит совместимости с AT90S8535.
Кстати, для начинающих, есть ньюанс - fuse-биты совместимости по умолчанию УСТАНОВЛЕНЫ в режим совместимости с младшими моделями. Поэтому, чтобы получить доступ ко всей переферии мег, этот бит надо сбросить!
-
igorkov
-
Гость
-
Незнайка
- Первый раз сказал Мяу!
- Сообщения: 31
- Зарегистрирован: Чт сен 07, 2006 04:55:41
- Откуда: Омск
я аврилом не пользуюсь но в справке написано так
-f<fuselist> -- список fuses для тех чипов, в которых они шьются по ISP.
<fuselist> выглядит как fusename=value,fusename=value,bytename=value...
value - ШЕСТНАДЦАТЕРИЧНОЕ значение без префиксов и суффиксов.
Для однобитовых fuse добавлены значения ON и OFF (прошить и стереть,
0 и 1 соответственно).
ВНИМАНИЕ! Начиная с версии 1.23 НЕ ПОДДЕРЖИВАЮТСЯ однобуквенные
синонимы для fuses.
При наличии "пересекающихся" name=val выдается сообщение об ошибке.
При наличии нескольких ключей -f действие имеет _только_последний_.
Перечень fusename для конкретного чипа с диапазоном value и комментарием
можно получить при помощи
avreal +chipname -?
Для сокращения строки возможно задание полного байта fuses при помощи
специальных имен bytename, представляющие собой названия байтов
по документации с лидирующим подчерком:
_low,_high,_ext,_lock
Нереализованные в данном байте биты рекомендуется устанавливать в '1'.
Имя _lock относится к байту lock-битов и BLB, однако на состояние
lock-битов НЕ ВЛИЯЕТ. Для блокировки кристалла по прежнему надо
использовать ключ -l.
Допускается комбинация отдельных fuse и байтов, однако они при этом
не должны пересекаться, т.е. каждый байт fuses должен быть задан
либо только через специальное имя, либо только через имена отдельных
fuse. Например,
допустимо: -f_low=C3,_high=F4,blb2=1
не допустимо: -f_lock=F7,blb2=1
Если работа с fuses по SPI поддерживается, то их состояние сообщается
при любой операции с чипом, задание ключа -F необязательно.
В случае наличия -F<fuselist> при -V производится верификация fuses.
Для записи fuses _необходимо_ указать ключ -w.
Неупомянутые fuse остаются неизменными (кроме BLB для mega161, mega163,
так как они могут быть стерты по -E).
AVReAl обеспечивает также расширенную поддержку osccal (см. ниже)
Группа BLB относится скорее к lock-битам, записать 1 поверх уже
запрограммированной в 0 fuse невозможно. Если запрошена
такая операция и чип не стирался, то программа завершает работу
с соответствующим предупреждением.
Для tiny12, tiny15 поддерживается программирование SPIEN
и RSTDSBL, будьте осторожны, SPIEN по умолчанию запрограмировано,
ключ -fspien=1 (-fspien=off) _сотрет_ SPIEN и запретит дальнейшее
низковольтное программирование. Запрет произойдет и при
_программировании_ RSTDSBL (-frstdsbl=0 или -frstdsbl=off).
-f<fuselist> -- список fuses для тех чипов, в которых они шьются по ISP.
<fuselist> выглядит как fusename=value,fusename=value,bytename=value...
value - ШЕСТНАДЦАТЕРИЧНОЕ значение без префиксов и суффиксов.
Для однобитовых fuse добавлены значения ON и OFF (прошить и стереть,
0 и 1 соответственно).
ВНИМАНИЕ! Начиная с версии 1.23 НЕ ПОДДЕРЖИВАЮТСЯ однобуквенные
синонимы для fuses.
При наличии "пересекающихся" name=val выдается сообщение об ошибке.
При наличии нескольких ключей -f действие имеет _только_последний_.
Перечень fusename для конкретного чипа с диапазоном value и комментарием
можно получить при помощи
avreal +chipname -?
Для сокращения строки возможно задание полного байта fuses при помощи
специальных имен bytename, представляющие собой названия байтов
по документации с лидирующим подчерком:
_low,_high,_ext,_lock
Нереализованные в данном байте биты рекомендуется устанавливать в '1'.
Имя _lock относится к байту lock-битов и BLB, однако на состояние
lock-битов НЕ ВЛИЯЕТ. Для блокировки кристалла по прежнему надо
использовать ключ -l.
Допускается комбинация отдельных fuse и байтов, однако они при этом
не должны пересекаться, т.е. каждый байт fuses должен быть задан
либо только через специальное имя, либо только через имена отдельных
fuse. Например,
допустимо: -f_low=C3,_high=F4,blb2=1
не допустимо: -f_lock=F7,blb2=1
Если работа с fuses по SPI поддерживается, то их состояние сообщается
при любой операции с чипом, задание ключа -F необязательно.
В случае наличия -F<fuselist> при -V производится верификация fuses.
Для записи fuses _необходимо_ указать ключ -w.
Неупомянутые fuse остаются неизменными (кроме BLB для mega161, mega163,
так как они могут быть стерты по -E).
AVReAl обеспечивает также расширенную поддержку osccal (см. ниже)
Группа BLB относится скорее к lock-битам, записать 1 поверх уже
запрограммированной в 0 fuse невозможно. Если запрошена
такая операция и чип не стирался, то программа завершает работу
с соответствующим предупреждением.
Для tiny12, tiny15 поддерживается программирование SPIEN
и RSTDSBL, будьте осторожны, SPIEN по умолчанию запрограмировано,
ключ -fspien=1 (-fspien=off) _сотрет_ SPIEN и запретит дальнейшее
низковольтное программирование. Запрет произойдет и при
_программировании_ RSTDSBL (-frstdsbl=0 или -frstdsbl=off).
Кто не делает ошибок тот обычно вообще ничего не делает.
- Spider
- Опытный кот
- Сообщения: 732
- Зарегистрирован: Чт дек 29, 2005 07:29:25
- Откуда: Омск
- Контактная информация:
Привет, Нано! Это ведь ты на електроникс чего-то там форуме есть? (Голубой такой форум) привет от Alexey Belyaev'a! Это я! Я думаю ты уже догодался. Да о чём это я? Отвлёкся.
Ну вот к примеру имеем
FH = 0b1101 1001
Из проца прочитается именно это значение? Что будет означчать, что SPIEN разрешён и размер загрузчика как 0, но ресет вектор на 0х00. Так?
Ну вот к примеру имеем
FH = 0b1101 1001
Из проца прочитается именно это значение? Что будет означчать, что SPIEN разрешён и размер загрузчика как 0, но ресет вектор на 0х00. Так?
- Piroman17
- Грызет канифоль
- Сообщения: 296
- Зарегистрирован: Пт янв 12, 2007 17:16:35
- Откуда: Дубна
- Контактная информация:
Конторллер ATmega16.
Вот такая проблема: по дурости забыл устновить фьюзы CKSEL0..3 (они остились на 0000, я так понимаю это установка "внешняя частота"), после этого МК не желает прошиваться второй раз
как выйти из положения?
P.S. пробовал подключать разные кварцы, но это не спасает.
Вот такая проблема: по дурости забыл устновить фьюзы CKSEL0..3 (они остились на 0000, я так понимаю это установка "внешняя частота"), после этого МК не желает прошиваться второй раз
P.S. пробовал подключать разные кварцы, но это не спасает.
"Всё новое - хорошо забытое старое" - для творцов без творческий мысли.