Думаю, что не ошибусь, если скажу, что будущее электроники, по крайней мере, цифровой её части, принадлежит микроконтроллерам. Уже сейчас относительно сложные устройства, собираемые с применением всего одного микроконтроллера (МК), обходятся дешевле, получаются компактнее, и потребляют меньше электроэнергии, чем собранные на логике, и тем более на дискретных элементах. Многие радиолюбители, не знакомые ранее с микроконтроллерами, наверняка с завистью смотрят на аккуратные миниатюрные устройства, оснащенные дисплеями, имеющими встроенный АЦП, возможность работы с внешней памятью, и тому подобные функции.
Достоинства МК можно перечислять долго, но лучше взять и попробовать собрать устройства с их применением самому, чтобы убедиться в этом на практике. Для того чтобы МК заработал, (в этой статье речь пойдет об МК AVR семейств Mega и Tiny) мы должны его прошить, потому что без прошивки, он просто кусок бесполезного кремния. С подключением программатора к микроконтроллеру, думаю проблем, у людей имеющих, хотя бы небольшой опыт в электронике, возникнуть не должно.
Действительно, достаточно обеспечить контакт 6 пинов разъема на шлейфе программатора, перечислю их, это MISO, MOSI, RESET, SCK, VCC и GND, с 6 ножками микроконтроллера, и уже можно прошивать.
Сделать это можно, если нет специальной платы подключаемой к программатору с панельками, путем установки МК в цанговую макетную плату, и подключения проводков соединенных с пинами программатора.
Либо просто подпаявшись к нужным ножкам Dip панельки, в которую впоследствии будет установлен МК. Ну или наконец самый экстремальный способ, можно подпаяться напрямую к ножкам МК, и таким способом прошить его. Но мало перенести прошивку в память микроконтроллера, нужно задать параметры его работы, путем установки так называемых Фьюз Битов.
И вот здесь у начинающих радиолюбителей начинаются трудности, особенно после того, как они прочитают, что в случае неправильной установки некоторых их них, МК залочится и будет для них бесполезен. В этой статье мы разберем кратко, для чего предназначены все фьюзы МК Tiny 2313, как одного, из наиболее часто применяемых начинающими. Программирование будет осуществляться через Последовательный интерфейс (SPI), как наиболее доступный для начинающих и применяющийся для прошивания чаще, чем с помощью Параллельного (высоковольтного) программатора.
Сразу скажу, что значительная часть ошибок, при выставлении фьюзов начинающими, возникает из-за их инверсного представления, в разных программах оболочках. Например в двух оболочках, одного и того же программатора Громова, Uniprof и Ponyprog. В одних указывается прямое выставление фьюзов, в других инверсное.
Говоря другим языком, в одних программах – оболочках, для того, чтобы запрограммировать Фьюз Бит, нам нужно убрать галочку, а в других наоборот поставить её. Часто, если вы скачиваете готовую прошивку из статьи какого-либо устройства, там же приводится обычно и рисунок, определяющий для вас, какие Фьюз Биты нам необходимо выставить, а какие наоборот снять.
FUSE BITES
SPIEN. Как быть, если вы не уверены в том, какое в вашей программе оболочке представление Фьюз битов, прямое или инверсное? Ориентироваться в этом случае, нужно всегда по Биту Spien. Этот бит при программировании через последовательный интерфейс будет всегда запрограммирован, а остальные Фьюз биты нужно выставлять уже относительно его. В программах – оболочках, где нет защиты от снятия этого фьюз бита, нужно быть осторожным, если его снять, МК будет залочен, и недоступен для прошивания по SPI.
CKDIV8. Этот фьюз бит при его установке, делит тактовую частоту микроконтроллера на 8. Если мы используем новый, не шитый ранее МК, он будет тактироваться от внутреннего источника, и частота его будет равна 8 МГц. Но по умолчанию этот фьюз бит уже запрограммирован на заводе при изготовлении. После его установки тактовая частота МК равна единице (8\8=1). В случае, если мы задаем частоту от внешнего кварца, скажем на 12 МГц, частота будет равна 1.5 МГц.
EESAVE. При установке этого фьюз бита, мы запрещаем очистку от записанных ранее данных, (стирание) EEPROM памяти микроконтроллера, при выборе в программе — оболочке функции ERASE (очистить память).
RSTDISBL. Reset disable (Отключение Ресета). Отключение пина Reset, и превращение его, в еще один пин порта — ввода вывода микроконтроллера. Эта функция может использоваться при применении Параллельного программатора. Либо если вам больше не нужно прошивать МК, вы заливаете проверенную прошивку, и дальнейшее перепрограммирование не потребуется. После его установки, МК больше не будет доступен для прошивания через последовательный интерфейс (SPI), залочен. Это актуально для МК с небольшим количеством ножек — портов ввода — вывода, например в корпусе Dip 8.
SELFPRGEN Этот бит включает режим самопрограммирования микроконтроллера. Начинающим, без необходимости его изменять не рекомендую.
BOD LEVEL 0 – 2. Этими битами мы устанавливаем порог срабатывания монитора питания МК, для его более стабильной работы. В случае, если напряжение питания опустится ниже заданного нами уровня, произойдет сброс микроконтроллера.
Lock 1-2 биты. С их помощью мы можем защитить записанную нами прошивку в память микроконтроллера от незаконного копирования. Например, если это было какое-либо коммерческое устройство, аналогов которому по функциональности не выпущено.
CKSEL 0 – 3. С помощью этих фьюз битов, мы задаем микроконтроллеру источник тактирования, внешний или внутренний. Также здесь мы указываем частоту источника тактирования. Всего может быть 16 возможных комбинаций этих фьюз битов. Будьте осторожны, в случае неправильного их выставления, МК может залочиться, так как для своей работы он будет “ждать” внешнего источника тактирования (кварца). В таком случае, если вы все же ошиблись с выставлением этих фьюзов, постарайтесь вспомнить какие выставляли значения, и обратитесь к документации в Даташите на этот МК. После подключения кварца на нужную частоту, и двух конденсаторов, МК снова будет виден.
CKOUT. Установкой этого фьюз бита, мы выводим на одну из ножек микроконтроллера его тактовую частоту, для синхронизации работы внешних устройств, например другого МК, который должен работать синхронно с этим.
DWEN. С помощью этого фьюз бита мы можем включить режим отладки МК debug WIRE. Без необходимости этот фьюз бит изменять не нужно, так как в этом случае МК перестанет быть виден через последовательный интерфейс (SPI), или по другому будет залочен.
SUT 0 – 1. Устанавливая эти фьюз биты, мы изменяем режимы запуска тактового генератора МК. Выставлять их нужно только с пониманием того, для чего они служат, и без необходимости не изменять, иначе возможна нестабильная работа микроконтроллера.
Байты конфигурации
Иногда в статьях с описанием конструкции, могут быть указаны байты конфигурации в шестнадцатеричной системе. Перевести, в привычный нам вид, в виде меню с установкой галочек и наоборот, можно с помощью Онлайн калькулятора фьюзов, который представляет собой обычную вэб страницу, для того чтобы перейти на которую, нужно набрать в поисковике Онлайн калькулятор фьюзов.
На этой странице приводится справочная информация для всех фьюзов микроконтроллера. Правда, для части их, к сожалению на английском языке. Также всю информацию на микроконтроллер мы можем найти в Даташите, PDF файле с указанием цоколевки, характеристиками МК, и с подробным описанием для всех фьюз битов.
Для того чтобы найти Даташит на нужную нам модель МК, достаточно набрать в поиске слово Datasheet и указать модель микроконтроллера, например Tiny-2313.
Повторим еще раз, выше на рисунке обведены красным те фьюз биты, которые изменять нельзя, иначе МК будет залочен. Автор статьи — AKV.
Originally posted 2019-09-16 16:30:54. Republished by Blog Post Promoter