5/28/2017 0 Comments Atmega8 Фьюзы ОписаниеФьюзы (Fuses) Микроконтролеров ATMega (Atmel)Фьюзы (Fuses) – это несколько специальных байт, которые можно прошить только программатором, и отвечают они за разные настройки микроконтроллера. У разных микроконтроллеров фьюзы могут отличаться. Поэтому более подробную информацию смотрите в документации. Поскольку это делается в последнюю очередь, я приведу здесь краткое описание фьюзов и перечислю наиболее часто встречающиеся ошибки при работе с фюзами. Хочу заметить, что установленным считается бит, который сброшен в 0. Для начинающих это часто вносит путаницу, при работе с разными программами для прошивки. Так как не всегда ясно установленная напротив фьюза птичка это 1 или 0 (в смысле, установлен). Разработчики ПО имели ввиду, если стоит птичка, значит, бит считается установленным (т. Нужно сказать о том, что для некоторых микроконтроллеров существуют специфичные фьюзы, здесь рассматривается пример для Atmega8. Про фюз-биты, как обычно, можно у ДиХальта. От себя добавлю что фьюз биты МК Atmega8 расположены в два байта – старший фьюз-байт (high 3.3 ATmega8 ATmega8.pdf - Даташит на ATmega8 ATmega8 У каждого микроконтроллера выставляются свои фьюзы, у разных микроконтроллеров разный список фьюзов, например в ATmega8 нет фьюза CKOUT, но он присутствует в ATtiny2313. Начинающим о Фьюзах (Fuses) для ATmega и других микроконтроллеров ATMEL. Поскольку это делается в последнюю очередь, я приведу здесь краткое описание фьюзов и перечислю. Описание: как их правильно выставлять. Помогите пожалуйста разобраться с фьюзами. Нужно переключить МК ATmega8 16PU на внешний кварц. В каждом микроконтроллере используется индивидуальный список Фьюзов, допустим, в ATmega8 отсутствует Фьюз CKOUT, но он используется в ATtiny2313. Программирование фьюз-битов отдельная головная боль у тех, кто осваивает. Пример конфигурации fuse битов для микроконтроллера ATmega8 для различных источников тактовых импульсов. Все примеры показаны в программе UniProf. Тут ведь всё зависит от описания. Вообще fuse по-английски — это предохранитель или, если. По глупости выставил на atmega8 неправильные фьюзы (по тактированию). Я не претендую на оригинальность, эту информацию я скачал с интернета, прошу прощения у авторов. Семейство. ATtiny. Семейство. ATmega. RESERVEDM1. 03. С+S8. СS8. 53. 5СOCDEN++++JTAGEN++++SELFPRGEN+++++DWEN++++++EESAVE+++++++++++++SPIEN+++++++++++++WDTON+++++++++++BODLEVEL2+++++BODLEVEL1+++++++BODLEVEL0+++BODLEVEL+BODLEVELBODLEVEL+BODLEVEL++BODLEVELBODLEVELBODEN++++++RSTDISBL++++++++CKDIV8+++++++CKOUT++++++SUT1+++++++++++++SUT0+++++++++++++CKOPT++++++CKSEL3++++++++++++CKSEL2++++++++++++CKSEL1+++++++++++++CKSEL0+++++++++++++PLLCK+BOOTRST++++++++BOOTSZ1++++++++BOOTSZ0++++++++В таблице fuse- биты популярных AVR. Слева названия fuse- битов по даташиту, в первых двух строках перечислены семейства и типы конкретных МК, а на пересечении строк и столбцов стоит знак плюс, если данный fuse- бит имеется в данном МК, или указано название, отличное от стандартного. Если какой- то бит отсутствует — в соответствующей клетке ничего нет. Назначение каждого фьюза AVR fuse бита: RESERVED — этот бит зарезервирован для каких- то неизвестных простым смертным целей фирмой Atmel. Ни при каких условиях не рекомендуется менять его состояние (т. В этой строкевстречаются биты с другими названиями, как правило, это биты включения режима совместимости с устаревшими типами МК, на смену которым выпущены новые. Обычно в конце названия такого fuse- бита имеется символ С — от COMPATIBLE (совместимый). OCDEN — fuse разрешает работу схемы внутреннего отладчика (On Chip Debug ENable). Не оставляйте установленным этот бит в коммерческих продуктах! Иначе вашу программу можно будет считать из памяти МК. JTAGEN — fuse бит разрешает работу интерфейса программирования- отладки JTAG. По сравнению с SPI- интерфейсом, JTAG обладает расширенными возможностями. Не рекомендуется без необходимости оставлять этот бит установленным, т. Не рекомендуется оставлять его установленным в коммерческих изделиях. EESAVE — fuse бит, после установки которого при стирании памяти МК содержимое EEPROM данных будет сохраняться нетронутым, т. Этот бит может быть легко переустановлен при помощи параллельного программатора (или JTAG, если таковой разрешен и имеется в МК). Все МК выпускаются с установленным битом. SPIEN, снять его по интерфейсу SPIневозможно. WDTON — fuse бит, после установки которого сторожевой таймер WDT включается сразу после подачи питания и не может быть отключен программно. Если бит не установлен, то включением и отключением WDT можно управлять программно. Группа fuse битов BODLEVEL. Может быть либо один такой бит, либо несколько, тогда они нумеруются, начиная с нуля. Значение этих fuse битов определяет порог срабатывания схемы BOD — детектора уровня питающего напряжения, при снижении напряжения питания ниже этого уровня произойдет “сброс” МК. BODEN — fuse бит, включающий схему аппаратного детектора недопустимого уровня питающего напряжения, т. Этот бит имеется только в тех МК, у которых вывод аппаратного сброса RESET совмещен с одинм из портов ввода- вывода. Ошибочная установка этого fuse бита может отключить RESET и вы не сможете больше прошивать по ISP. Не устанавливайте этот бит, если намерены продолжать работать с МК при помощи последовательных программаторов. То есть при включенном этом бите и применении кварцевого резонатора на 8 МГц реальная тактовая частота МК составит. МГц. CKOUT — fuse бит, разрешающий вывод тактовой частоты на один из выводов МК (для тактирования других устройств). SUT1 и SUT0 — fuse биты, управляющие режимом запуска тактовых генераторов МК. Связаны с нижеописываемыми битами, определяющими тип и частоту тактового генератора, причем связь весьма хитрая и запутанная. При ошибочной их установке возможны ситуации неустойчивого запуска генератора или неоднократного сброса МКв процессе подачи на него питания. CKOPT — бит, определяющий режим работы встроенного генератора тактовой частоты для работы с кварцевыми резонаторами. Реально изменяет коэффициент усиления встроенного инвертора в схеме генератора и, следовательно, – выходное напряжение на ножке XTAL2. Ошибочная установка может приводить к неустойчивому запуску кварцевого генератора, вплоть до возбуждения его не на той гармонике, что надо (из- за этого бита кварц запускался или только при питании МК напряжением не выше 3,6. В, или только после прикосновения к выводу XTAL1 пинцетом)Группа битов CKSEL0. Всего возможно до 1. МК. Ошибочная установка комбинации этих битов может сделать МК «мертвым» — он не будет работать в схеме без подачи тактового сигнала на ножку XTAL1. PLLCK — fuse бит, разрешающий использование встроенного синтезатора частоты для тактированияядра МК. BOOTRST — fuse бит, определяющий адрес, с которого будет начато исполнение программы после сброса — если бит установлен, то начало программы будет не с адреса 0. Boot Loader). Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST. Установка фюза RSTDISBL. Ошибочная установка этого fuse бита отключает RESET, и Вы не сможете больше прошивать по ISP. Для этого потребуется последовательный программатор или что- то попроще для сброса фьюзов к заводским настройкам. Неправильная установка CKSEL0, CKSEL1, CKSEL2, CKSEL3. Эти фьюзы определяют источник тактирования микроконтроллера. Если Вы случайно выбрали не ту частоту внутреннего RC генератора, это не смертельно. Программирование через ISP будет возможным, и вы сможете исправить ситуацию. А если случайно установить тактирование от внешнего источника, RC цепочки или кварцевого резонатора, а у Вас таких в схеме нет, то программирование по ISP тоже станет невозможным. По сути, микроконтроллер будет ожидать тактирования от несуществующей схемы. Как выйти из этого положения? Очень просто – дать микроконтроллеру источник тактирования и исправить фьюзы. Чаще всего устанавливают CKSEL все нули – тактирование от внешнего генератора. В этом случае можно собрать схему, генерирующую меандр (частота особой роли не играет, главное, чтобы она лежала пределах возможности микроконтроллера) и подать на ногу XTAL1. После чего микроконтроллер можно будет прошить через ISP. Первое, что надо сделать, – сбросить фьюзы к заводским настройкам. Если CKSEL все установлены в 1 – тактирование от внешнего кварца. Навесьте кварц после чего микроконтроллер снова будет доступен через ISP. Ну и напоследок, найденные в интернете калькуляторы Фюзов. Иногда очень полезная штука: http: //fusecalc.
0 Comments
Leave a Reply. |