Главная arrow Программирование arrow AVR arrow Путаница с перемычками (fuses) Saturday, February 04 2012  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:
Реклама на Бегуне

Путаница с перемычками (fuses) Версия для печати
Написал microsin   
12.10.2008

Перемычки или фьюзы (fuses), как известно, в чипах ATtinyXX и ATmegaXX управляют режимами работы, программирования, отладки и т. д. В даташитах эти перемычки подробно описаны, а с помощью программатора из можно записать в чип. Однако часто в интерпретации значений этих перемычек возникает путаница.

Происходит это по нескольким причинам. Во-первых, из-за того, что биты перемычек - "инвертированные". Т. е., запрограммированный фьюз означает, что в него записан ноль, и этот факт означает включение функции бита фьюза (эта функция отражается мнемоническим именем фьюза, например CKDIV8 включает встроенный делитель тактовой частоты на 8. Делитель на 8 включается, когда фьюз CKDIV8 запрограммирован, т. е. в его бит записан 0). Во-вторых, разные программаторы предоставляют разный интерфейс к управлению перемычками, к тому же часто неудобный и неочевидный. Приведу для примера интерфейс трех программаторов и одного калькулятора перемычек, отображающих одно и то же значение перемычек чипа ATtiny45 - 0xС1 low  fuse byte, 0xDF high fuse byte, 0xFF ext  fuse byte.

[ChipProg+, версия 4.38.00, производитель Фитон]
fuses01.JPG
Попробуйте здесь догадаться, какие перемычки соответствуют каким байтам фьюзов, что означает галочка (какое состояние фьюза - 0 или 1?..), и какое все-таки шестнадцатиричное значение у байтов фьюзов. Отсутствует нумерация бит перемычек, подсказка их по предназначению. Имя фьюза DWEN (debugWire enable) ошибочно указано как WDEN. Спомощью экспериментов удалось выяснить, что установленная галочка означает запрограммированность бита фьюза (бит имеет при этом значение 0). Если добавить сюда нестандартность оконного интерфейса, отсутствие файла помощи и неприглядную работу команды поддержки, которая не торопится обновлять программу и исправлять ошибки, то становится ясно, что такой программатор лучше не покупать.

[AVR Studio, Version 4.14 Build 589, железо - JTAGICE mkII]
fuses02.JPG
Здесь все уже намного лучше. Видны шестнадцаричные величины байт фьюзов, есть описание их текущего состояния.

[avrdude, консольный программатор]
avrdude -c usbtiny -p t45 -U lfuse:w:0xc1:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m

[AVR Fuse Calculator ··· Version 0.3.5.1]
fuses03.JPG
Отличный ресурс, позволяющий разобраться в назначении бит и их нумерации, узнать их величину по умолчанию, высчитать шестнадцатиричное значение байт фьюзов. Эта картинка отображает в браузере ссылку http://palmavr.sourceforge.net/cgi-bin/fc.cgi, (новая ссылка http://www.engbedded.com/fusecalc/) где нужно выбрать тип чипа и указать нужные состояния перемычек.

Последнее обновление ( 03.10.2011 )
 

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

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >
Top of Page
 
microsin © 2012