Калькулятор Фьюзов Avr На Русском
Feb 28, 2012 - Взял открыл к примеру первый попавшийся калькулятор фьюзов типа такого (кстати, где то и у нас на форуме было что то подобное, но по быстрому не нашел - токо на ангельском языке. А это неудобно). По быстрому глянул что и как. Калькулятор фьюзов AVR fuses calculator. Этот fuse-калькулятор на самом деле тоже где-то онлайн. Калькулятор фьюзов AVR » Радиоактив. Запрет на чтение прошивки. AVR Studio, SinaProg. Калькулятор фьюзов нам в этом плане очень.
ФЬЮЗ БИТЫ AVR Думаю, что не ошибусь, если скажу, что будущее электроники, по крайней мере, цифровой её части, принадлежит. Уже сейчас относительно сложные устройства, собираемые с применением всего одного микроконтроллера (МК), обходятся дешевле, получаются компактнее, и потребляют меньше электроэнергии, чем собранные на логике, и тем более на дискретных элементах. Многие радиолюбители, не знакомые ранее с микроконтроллерами, наверняка с завистью смотрят на аккуратные миниатюрные устройства, оснащенные дисплеями, имеющими встроенный АЦП, возможность работы с внешней памятью, и тому подобные функции. Достоинства МК можно перечислять долго, но лучше взять и попробовать собрать устройства с их применением самому, чтобы убедиться в этом на практике.
Для того чтобы МК заработал, (в этой статье речь пойдет об МК AVR семейств Mega и Tiny) мы должны его прошить, потому что без прошивки, он просто кусок бесполезного кремния. С подключением программатора к микроконтроллеру, думаю проблем, у людей имеющих, хотя бы небольшой опыт в электронике, возникнуть не должно. Действительно, достаточно обеспечить контакт 6 пинов разъема на шлейфе программатора, перечислю их, это MISO, MOSI, RESET, SCK, VCC и GND, с 6 ножками микроконтроллера, и уже можно прошивать. Сделать это можно, если нет специальной платы подключаемой к программатору с панельками, путем установки МК в цанговую макетную плату, и подключения проводков соединенных с пинами программатора. Либо просто подпаявшись к нужным ножкам Dip панельки, в которую впоследствии будет установлен МК. Ну или наконец самый экстремальный способ, можно подпаяться напрямую к ножкам МК, и таким способом прошить его.
Но мало перенести прошивку в память микроконтроллера, нужно задать параметры его работы, путем установки так называемых. И вот здесь у начинающих радиолюбителей начинаются трудности, особенно после того, как они прочитают, что в случае неправильной установки некоторых их них, МК залочится и будет для них бесполезен. В этой статье мы разберем кратко, для чего предназначены все фьюзы МК Tiny 2313, как одного, из наиболее часто применяемых начинающими. Программирование будет осуществляться через Последовательный интерфейс (SPI), как наиболее доступный для начинающих и применяющийся для прошивания чаще, чем с помощью Параллельного (высоковольтного) программатора. Сразу скажу, что значительная часть ошибок, при выставлении фьюзов начинающими, возникает из-за их инверсного представления, в разных программах оболочках. Например в двух оболочках, одного и того же программатора Громова, Uniprof и Ponyprog. В одних указывается прямое выставление фьюзов, в других инверсное.
Говоря другим языком, в одних программах – оболочках, для того, чтобы запрограммировать Фьюз Бит, нам нужно убрать галочку, а в других наоборот поставить её. Часто, если вы скачиваете готовую прошивку из статьи какого-либо устройства, там же приводится обычно и рисунок, определяющий для вас, какие Фьюз Биты нам необходимо выставить, а какие наоборот снять. FUSE BITES SPIEN. Как быть, если вы не уверены в том, какое в вашей программе оболочке представление Фьюз битов, прямое или инверсное? Ориентироваться в этом случае, нужно всегда по Биту Spien. Этот бит при программировании через последовательный интерфейс будет всегда запрограммирован, а остальные Фьюз биты нужно выставлять уже относительно его.
В программах – оболочках, где нет защиты от снятия этого фьюз бита, нужно быть осторожным, если его снять, МК будет залочен, и недоступен для прошивания по SPI. Этот фьюз бит при его установке, делит тактовую частоту микроконтроллера на 8. Если мы используем новый, не шитый ранее МК, он будет тактироваться от внутреннего источника, и частота его будет равна 8 МГц. Но по умолчанию этот фьюз бит уже запрограммирован на заводе при изготовлении. После его установки тактовая частота МК равна единице (8 8=1). В случае, если мы задаем частоту от внешнего кварца, скажем на 12 МГц, частота будет равна 1.5 МГц.
При установке этого фьюз бита, мы запрещаем очистку от записанных ранее данных, (стирание) EEPROM памяти микроконтроллера, при выборе в программе - оболочке функции ERASE (очистить память). Reset disable (Отключение Ресета). Отключение пина Reset, и превращение его, в еще один пин порта - ввода вывода микроконтроллера. Эта функция может использоваться при применении Параллельного программатора. Либо если вам больше не нужно прошивать МК, вы заливаете проверенную прошивку, и дальнейшее перепрограммирование не потребуется. После его установки, МК больше не будет доступен для прошивания через последовательный интерфейс (SPI), залочен.
Это актуально для МК с небольшим количеством ножек - портов ввода - вывода, например в корпусе Dip 8. SELFPRGEN Этот бит включает режим самопрограммирования микроконтроллера. Начинающим, без необходимости его изменять не рекомендую. BOD LEVEL 0 – 2. Этими битами мы устанавливаем порог срабатывания монитора питания МК, для его более стабильной работы. В случае, если напряжение питания опустится ниже заданного нами уровня, произойдет сброс микроконтроллера.
Lock 1-2 биты. С их помощью мы можем защитить записанную нами прошивку в память микроконтроллера от незаконного копирования. Например, если это было какое-либо коммерческое устройство, аналогов которому по функциональности не выпущено. С помощью этих фьюз битов, мы задаем микроконтроллеру источник тактирования, внешний или внутренний. Также здесь мы указываем частоту источника тактирования.
Всего может быть 16 возможных комбинаций этих фьюз битов. Будьте осторожны, в случае неправильного их выставления, МК может залочиться, так как для своей работы он будет “ждать” внешнего источника тактирования (кварца). В таком случае, если вы все же ошиблись с выставлением этих фьюзов, постарайтесь вспомнить какие выставляли значения, и обратитесь к документации в Даташите на этот МК. После подключения кварца на нужную частоту, и двух конденсаторов, МК снова будет виден. Установкой этого фьюз бита, мы выводим на одну из ножек микроконтроллера его тактовую частоту, для синхронизации работы внешних устройств, например другого МК, который должен работать синхронно с этим. С помощью этого фьюз бита мы можем включить режим отладки МК debug WIRE. Без необходимости этот фьюз бит изменять не нужно, так как в этом случае МК перестанет быть виден через последовательный интерфейс (SPI), или по другому будет залочен.
Устанавливая эти фьюз биты, мы изменяем режимы запуска тактового генератора МК. Выставлять их нужно только с пониманием того, для чего они служат, и без необходимости не изменять, иначе возможна нестабильная работа микроконтроллера. Байты конфигурации Иногда в статьях с описанием конструкции, могут быть указаны байты конфигурации в шестнадцатеричной системе. Перевести, в привычный нам вид, в виде меню с установкой галочек и наоборот, можно с помощью Онлайн калькулятора фьюзов, который представляет собой обычную вэб страницу, для того чтобы перейти на которую, нужно набрать в поисковике Онлайн калькулятор фьюзов.
На этой странице приводится справочная информация для всех фьюзов микроконтроллера. Правда, для части их, к сожалению на английском языке.
Также всю информацию на микроконтроллер мы можем найти в Даташите, PDF файле с указанием цоколевки, характеристиками МК, и с подробным описанием для всех фьюз битов. Для того чтобы найти Даташит на нужную нам модель МК, достаточно набрать в поиске слово Datasheet и указать модель микроконтроллера, например Tiny-2313. Повторим еще раз, выше на рисунке обведены красным те фьюз биты, которые изменять нельзя, иначе МК будет залочен. Автор статьи - AKV. Советы по установке, подключению к сети, настройке и эксплуатации кухонных индукционных плит. Опыты по созданию неоновых индикаторов ВЧ и электромагнитного поля, игрушки на их основе. Статья рассказывает о характерных неисправностях Вашего ноутбука и способах их устранения.
Также она повествует об основных правилах пользования ноутбуком, соблюдение которых поможет Вам увеличить его срок службы. Статья о первом успешном опыте по созданию работоспособного транзистора из одного атома. Регулируемая нагрузка постоянного тока - принципиальная схема устройства для настройки БП, ЗУ, УМЗЧ и других мощных схем.
Обзор наиболее популярных моделей мультикоптеров, имеющихся в продаже в интернет магазинах. Как самостоятельно отремонтировать миксер - основные неисправности миксеров и методы их устранения. УМЗЧ на двойном триоде в драйвере - двухкаскадный предварительный усилитель, и мощном пентоде на выходе.
Fuse -биты настраивают некоторые параметры МК при прошивании и не доступны для изменения из программы МК. Не бойтесь многоногих ATmega с большим количеством 'периферии' (встроенных в МК, полезных, но возможно не нужных вам пока устройств с непонятными названиями). Все они изначально - 'по умолчанию' обычно отключены и о них можно не думать. Вам нужно будет позаботится о включении и конфигурации только тех из них, которые понадобятся вам в вашем устройстве. Забегая вперед скажу Настроить периферию микроконтроллера просто благодаря встроенным в компиляторы и интерактивным визадам - мастерам начальной конфигурации МК и создающим начальный текст программы. Если вы хотите, для начала, только помигать светодиодом - то даже на ATmega128 вам нужно всего лишь подключить к МК: - питание от 4 до 5.5 вольт (3 пальчиковых батарейки например) - 5 проводков на принтерный порт ПК для ISP 'прошивания' программы в МК (подробнее об этом ) - светодиод (катод - черточка на изображении диода на схеме) к ножке МК а анод светодиода к + питания МК через резистор 430-750 Ом ) - написать программу мигания светодиодом. Вас совершенно не тронет и не напряжет та 'навороченность' что заложена в ATmega128.
Она будет тихо ждать пока вы ее не затребуете! Спрашивают: Зачем применять МК в простом устройстве которое можно сделать на нескольких дискретных компонентах? По-старинке, как помнится - на логических микросхемах и т.п. Без программируемого МК.
А вот зачем: Примените МК в простом устройстве! - функции которого достаточно просты для алгоритмизации ( наглядного, формального описания действия устройства) и у Вас наверняка все получится! Вам будет легче пробовать свои силы на чем то легком, понятном а затем переходить к более сложным задачам. Четкое понимание алгоритма работы устройства это основа - базис для успешной разработки самого устройства и программы для МК! © Микроконтроллер (МК) AVR ATmega ключевые моменты устройства Напомню: Самая подробная и полная информация по МК содержится в его ДШ!
Он доступен и на русском ниже. Подробнее об основах и тонкостях устройства МК AVR и работе с ними читайте в книгах: -и еще: об основах и тонкостях электроники и схемотехники читайте в настольной книге электронщика: - общепризнанная библия электронщика на РУССКОМ языке. Уже 5-е издание. Подставьте вопрос - получите ответ! Я уже предупреждал вас выше: МК является микросхемой которая в ответ на внешние электрические сигналы действует в соответствии с возможностями заложенными производителем, электроникой подключенной к МК, программой которую в него загружена, например вами. Разберем по пунктам: Внешние электрические сигналы Это напряжения и токи поступающие к МК от подключенных к нему проводниками других компонентов электронного устройства.
Руководство по ремонту лодочного мотора tohatsu. Скачать руководство по ремонту лодочного мотора Tohatsu. Главная; Услуги. Ремонт лодочных. Руководство по ремонту лодочного мотора Tohatsu 40B - 50B TLDI. Adobe Acrobat документ 5. Руководство по ремонту и обслуживанию двухтактных, цилиндровых подвесных лодочных. Руководство по ремонту лодочных моторов Tohatsu. Руководство по ремонту лодочного мотора Tohatsu.
Важнейший из них - это напряжение питания МК. МК AVR серии ATmega могут работать, т.е. Исполнять заложенную в них программу уже при подаче одного напряжения питания, а узнать о том что он работает мы можем по изменению тока потребляемого МК по проводу питания.
Казалось бы бесполезная какая то работа. МК может например измерять температуру встроенным датчиком и сохранять измеренные значения в память EEPROM которая 'не забывает' данные при отключении питания.
А позже можно считать сохраненные данные из памяти МК. Диапазон допустимых напряжений питания указан на первой странице ДШ и составляет обычно 4.5 - 5.5 вольт постоянного напряжения - плюс которого подключается к выводам VCC МК. Хотя в настоящее время есть отчетливая тенденция на переход в целях экономии энергии к напряжению питания 3.3 вольта и ниже - я, ретроградно в курсе считаю напряжение питания МК + 5 вольт. Для МК ATmaga с буквой L в названии диапазон питания 2.7 - 5.5 вольт - он шире (достаточно литиевой батарейки или двух пальчиковых) но зато максимальная частота тактирования МК в 2 раза ниже и обычно составляет 8 МГц. Отрицательный вывод источника питания подключается к выводам МК GND и его потенциал принимается за ноль вольт и относительно него измеряются все другие напряжения на ножках МК и в схеме. Проводник соединенный с выводами GND МК называют общим или нулевым или ' земля' и на схеме обозначают специальным символом - например жирной горизонтальной черточкой или несколькими горизонтальными полосками друг под другом убывающей длины.
Электрические сигналы это токи и вызываемые их протеканием напряжения. Но говоря о сигналах поступающих в МК мы рассматриваем их как некоторые напряжения измеряемые относительно ножек GND МК.
Любой электрический сигнал является аналоговым т.е. Имеет определенное значение в каждый момент времени и если он был 2 вольта а стал 4 вольта то он обязательно принимал все значения лежащие между 2-мя и 4-мя вольтами.
Значение в регистре PINx обновляется с задержкой примерно в 1.5 длительности тактового сигнала МК. График 182 из ДШ на МК ATmega16 Показывает зависимость порогового (Threshold) напряжения переключения из '1' в '0' от напряжения питания МК. Он означает следующее: Если МК считал напряжение на ножке логической единицей и оно было выше линии графика, то при снижении напряжения на ножке МК до линии графика - МК начинает считать что теперь на ножке присутствует логический ноль - '0' Значит теперь в регистре PINX портаХ которому принадлежит эта ножка соответствующий ей бит стал '0' - нулем - НЛУ (а был '1' - ВЛУ) Это типовое значение! Наиболее вероятное для вашего МК.
По графику при напряжении питания МК 5 вольт этот порог примерно 1.3-1.4 вольта в диапазоне температур от -40 до 85 градусов. Но опять существует гарантированное значение напряжения ниже которого МК будет считать, что на ножке появилось напряжение соответствующее логическому нулю. Оно равно 20% от напряжения питания МК - для 5 вольт это будет 1 вольт.
( а лучше запишите на бумаге! Моторная память!) Что бы быть уверенным что МК ATmega16 (питающийся от 5 вольт) воспримет входной сигнал (входное напряжение) как '0' вы должны позаботится о том что бы это напряжение было не выше 1 вольта!
Запомните: Напряжение на ножке выше чем 60% напряжения питания МК гарантировано воспринимается им как ВЛУ или ' 1' - высокий логический уровень Напряжение на ножке ниже чем 20% напряжения питания МК гарантировано воспринимается им как НЛУ или ' 0' - низкий логический уровень Эти пороговые уровни для напряжения питания 5 вольт будут 3 и 1 вольт Это справедливо для диапазона напряжений питания V CC = 2.7 -5.5V У многих AVR гарантированный '0' это напряжение ниже 30% напряжения питания! Уточняйте в разделе ДШ ' Electrical Characteristics' для используемого вами МК! Возникает вопрос - а чем будет считать МК сигнал 1.7 или скажем 1.46 вольта? Как МК интерпретирует напряжение на ножке между рассмотренными выше пороговыми уровнями?
Это зависит от того чему был равен соответствующий этой ножке бит в регистре PINX (т.е. От того каким ЛУ считал МК напряжение на ножке) до появления напряжения попадающего между двумя порогами переключения - и по приведенным выше двум правилам - этот бит не может изменится!
Важный вывод - любое изменение напряжения на ножке МК лежащее между двумя пороговыми напряжениями не ведет к изменению того каким логическим уровнем считает МК напряжение на этой ножке в данный момент! Внимательно прочитайте и поймите, запомните - все входные сигналы с ножек МК поступают на встроенные триггеры Шмитта (аналогичные двум последовательно включенным элементам микросхемы 74HC14) - это устройства имеющие гистерезис (иначе - разность напряжений) по входному напряжению переключения их выходов из '1' в '0' и наоборот. По графику 183 в AVR гистерезис составляет примерно 0.57 вольта при VCC 5 вольт Гистерезис по входному напряжению позволяет отсечь помеху (существующую во входном сигнале и/или наводку - напряжение создаваемое внешними электромагнитными полями в проводнике подводящем сигнал ко входу приемника - в нашем случае к ножке МК) с размахом до величины гистерезиса и четко распознать преобразовать в логические единицы и нули зашумленный цифровой сигнал. Размах сигнала, напряжения, тока, другой величины - это разность максимального и минимального значений. Если подключить двух лучевой осциллограф ко входу и выходу триггера Шмитта и подать на его вход смесь цифрового сигнала размахом 4-5 вольт и шумового сигнала размахом чуть меньше гистерезиса - мы увидим следующую картину: На входе тригера Шмитта будет черти что в котором будет угадываться цифровой сигнал а на выходе будет чистенький прямоугольный цифровой сигнал! Вы можете смоделировать это в или в Подробнее об основах и тонкостях электроники и схемотехники читайте в книге оглавление которой на странице.
Теперь вы знаете как AVR преобразует напряжения на его ножках в '1' или '0'. МК AVR ATmega имеет встроенный 8-ми канальный (АЦП) Аналого Цифровой Преобразователь - он позволяет преобразовать напряжение на ножках МК подключаемых к АЦП в число от 0 до 1023 - т.е. В 10 битный результат!
Другие важные для работы МК внешние сигналы: 1) сигнал сброса RESET - при '0' на этой ножке МК останавливает выполнение программы, содержимое регистров МК становится начальным (см. Таблицу регистров в конце ДШ - в основном все биты нули) а все выводы становятся высокоомными входами (говорят: Z - состояние). После появления на этой ножке '1' и наличии питания МК - выполнение программы начнется с начала, как после включения питания МК Подробней см. В разделе ' Resetting the AVR' ДШ. Эту ножку можно ни куда не подключать благодаря внутреннему резистору 'подтягивающему' ( подающему ток от источника более высокого напряжения) ее к питанию МК, но я бы посоветовал не оставлять reset в воздухе а 'заземлить' конденсатором 0.1 мкФ - а еще лучше и подключить к reset диод типа 4148 черточкой к + питания МК и параллельно диоду резистор 5-12 КОм. Запомните: Черточка над названием сигнала: SIGNAL означает что активный уровень этого сигнала '0' - т.е.
Событие соответствующее ему происходит при НЛУ. Косая черта / может означать в описании бита: R/W - если бит ' 1' режим R а если бит '0' режим W R/W - может еще означать возможность записи и чтения этого бита Это условные обозначения - значит может быть и не так! 2) питание аналоговой части МК, АЦП (входы ADCx ) ножка AVCC - ее нужно соединить с выводом VCC питания МК даже если вы не предполагаете использовать АЦП. 3) опорное напряжение для АЦП (входы ADCx ) ножка AREF - напряжение на ней должно быть от 2 вольт до напряжения питания МК. Напряжение на входах АЦП равное или превышающее AREF будет оцифровываться в код 1023 (давать результат АЦП равный 1023. Всегда желательно заземлять эту ножку конденсатором на 0.1 мкФ. Вы можете использовать внутренний источник опорного напряжения на 2,56 вольт.
4) ножки для подключения кварца или керамического резонатора XTAL1 XTAL2. Для работы МК необходим ритм или тактирование. Нужен некоторый периодический сигнал в соответствии с которым МК сможет шагать по заложенной в него программе, кроме того тактовый сигнал нужен для работы периферии МК. Хотя МК ATmega имеют встроенный источник тактовой частоты RC-генератор (с завода он включен на частоту 1 МГц обычно) и к этим выводам можно ни чего не подключать, чаще требуется более точный источник тактирования - наиболее популярный это кварц - правильнее - его подключают между XTAL1 и XTAL2, эти ножки заземляют конденсаторами 22-33 пФ на GND. Важно установить фьюзы (Fuses) в соответствии с параметрами нужного вам тактового сигнала и его источника. Читайте раздел ДШ ' Sestem clock and Clock options' и таблицу 2.
' device clocking options select' - по-русски НИЖЕ! FUSE (фьюз) - Это, в общем, обычный бит в регистрах фьюзов Но программа МК не может их изменить! Вы можете менять их только программатором. Фьюз 'запрограммирован' - его значение '0' Фьюз 'НЕ запрограммирован' - его значение '1' С завода МК поставляется с определенной комбинацией фьюзов - все указано в ДШ. Будьте внимательны с фьюзами! Прежде чем менять фьюзы определите точно что вы делаете! Иначе вы можете по ошибке отключить режим ISP программирования и МК можно будет перепрограммировать только специальным программатором.
Вот список комбинаций состояний фьюзов для МК ATmega128 с кратким описанием их назначения: Не пугайтесь! Вам нужно будет лишь выбрать комбинацию подходящую к вашему случаю. Список фьюзов для каждого МК удобно смотреть и устанавливать их состояние МК ATmega16 поставляется с такой комбинацией 6-ти фьюзов относящейся к источнику тактового сигнала - абзац ' Default Clock Source': S KSEL 0001 SUT 10 Это означает - включен внутренний источник тактовой частоты - RC-генератор и генерируемая частота 1 МГц. И внизу этой страницы! По -умолчанию в МК включен интерфейс JTAG - поэтому 4 ножки в PORT C не доступны для обычного использования!
Чтобы отключить JTAG нужно изменить фьюз JTAGEN в '1'. JTAG можно выключить и программно - для этого нужно два раза подряд вписать '1' в бит JTD в регистре MCUCSR в течении 4 тактов МК. Чтобы опять включить JTAG нужно два раза подряд вписать '0' в бит JTD. Если вам нужно тактировать МК внешним сигналом (например от другого МК в системе или какой либо микросхемы имеющий собственное тактирование) то его нужно подать на ножку XTAL1, а ножку XTAL2 оставить свободной.
Параметры такого сигнала см. Есть еще выводы и для подключения очень точного но медленного часового кварца - обычно это маленький цилиндрик с двумя гибкими ножками, конденсаторы ему обычно не нужны, да и сам этот кварц нужен если вы хотите сделать например часы реального времени - т.е. Он совсем не обязателен. С учетом занятости некоторых ножек МК под конструктивно заданные функции, количество выводов МК доступных вам для использования меньше чем имеет МК! МК ATmega16 позволяет использовать 32 ножки из 40 в корпусе DIP. Эти 32 ножки составляют ( сгруппированы в ) 4 порта МК Порт в МК это 8 ножек или линий ввода-вывода (выводов МК или IO или I-O или I/O) имеющие индивидуальные номера от 0 до 7 и общую букву A, B, C, D.
Отличающую этот порт от других. Пример для PORTB: Порт B имеет (как и другие порты МК) минимум 3 регистра: DDRB - значение битов в этом регистре определяет чем будет ножка этого порта с номером этого бита - начальное (при включении МК или после сброса) значение '0' - ножка вход если сделать бит = '1' ( говорят: установить бит англ. Set bit ) эта ножка станет выходом. Сделать бит = '0' - говорят: сбросить или очистить бит англ. Clear bit PINB - биты этого регистра показывают чем ('1' или '0') считает МК напряжение на ножке порта с номером этого бита.
( этот регистр в ATmega16 нужно только читать, записывать в него что либо бесполезно). В микроконтроллерах AVR старой серии AT90s и в ATmega8, -16, -32, -48, -64, -88, -128, -168 имеет смысл только читать из регистров PINx В микроконтроллерах ATtiny2313, ATtiny13, ATtiny25, ATtiny45 в других ATtiny в AT90PWM2, AT90PWM3, в AT90USB, в ATmega640, 1280, 1281, 2560, 2561 Запись '1' в бит регистров PINx вызывает изменение соответствующего бита в PORTx Вывод этих контроллеров можно переключать очень быстро - с частотой тактового сигнала! Уточняйте по даташиту в разделе описания регистров портов. Правила по которым МК определяет логический уровень на своих выводах (ножках) были описаны выше. PORTB - бит этого регистра нужно сделать '1' или '0' что бы на ножке порта с номером этого бита появился '1' или '0'. При этом такой же бит регистра DDRB должен быть '1' - т.е. Ножка должна быть выходом.
Если она сконфигурирована как вход (т.е. Её бит в регистре DDRB очищен или равен нулю) - то если очищен и соответствующий бит в регистре POR TB ножка будет высокоимпедансным входом (Z-состояние, вход с очень высоким входным сопротивлением более 10 МОм), а если бит в регистре POR TB установлен, т.е. Равен '1' то включается 'подтяжка' ( pull-up) высокоимпедансного входа к плюсу питания МК через встроенный резистор примерно 40 КОм - ножку как бы соединяют таким резистором с питанием МК.
Вот упрощенная (без учета дополнительных функций этого вывода ) схема вывода PB1 поясняющая логику его работы: Напряжение на выводе PB1 преобразуется в логические уровни '1' или '0' которые можно прочитать (с задержкой в 1.5 такта) в регистре PINBэто бит1 или PINВ.1 в CVAVR Бит1 в регистре DDRB управляет переключателем - на рисунке переключатель показан в положении бит1 равен '0'. Диод на схеме идеальный - значит если бит1 в PORTBбудет тоже равен '0' то вывод PB1будет высокоомным входом. А если бит1 в PORTBсделать '1' то вывод PB1через диод и резистор 40 КОм подключится к питанию МК - т.е. Станет входом с подтяжкой. Если бит1 в регистре DDRB сделать '1' переключатель изменит состояние и значение бит1 в PORTBбудет выводится прямо на PB1- теперь это будет просто выход. ' Подтяжку' ( pull-up) можно использовать для создания четкой лог. '1' на ножке-входе МК без внешних компонентов.
К такому входу вы можете подключить кнопку замыкающую его на 'общий' провод устройства - GND - при нажатии. При отпущенной кнопке на входе будет '1' и соответствующий бит в регистре PIN x тоже будет '1'. При нажатии кнопки ее контакты замкнут вход на GND и на нем станет '0' - соответственно и в PIN x появится '0' и ваша программа сможет прочитав PIN x определить что кнопка нажата. Как в программе настроить ножки МК или прочитать их состояние описано на второй части курса.
Подтяжку на всех портах одновременно можно отключить! Для этого нужно установить бит PUD в регистре SFIOR Таблица состояния вывода AVR при условии подключения допустимой нагрузки - т.е.
Ток через ножку не превышает 20 мА и при не активности аппаратуры МК использующей данные ножки для своей работы. Значение бита х Состояние вывода МК Программа может только читать этот бит! (Отличия для некоторых МК описаны выше) Программа управляет этими битами PB x PINB. X 1 1 1 Высокий лог. Уровень (вывод как бы подсоединен к питанию МК резистором около 20 Ом) 0 0 Низкий лог. Уровень (вывод как бы заземлен резистором около 20 Ом) определяется только реальным напряжением на ножке МК! Напряжение преобразуется в '1' или '0' по приведенным выше правилам.
0 1 Подтяжка - pull-up. Вывод как бы подсоединен к питанию МК через резистор 40 КОм 0 Z-состояние. ВысокоОмный вход Эта таблица-пример для PORTB. Аналогично для порта C будут регистры: PORTC PINC DDRC Не оставляйте не подключенными выводы в Z-состоянии! Ножки портов обозначаются в ДШ так: PB3 - ножка 3 порта B PA0 - ножка 0 порта A Итак. Советую: 1) для того чтобы не повредить (не пожечь) выводы МК - подключайте их через резисторы 200 - 360 Ом (если это допустимо по схеме - в большинстве случаев это так) - эти резисторы ограничат ток через вывод МК на допустимом уровне при замыкании элементов схемы на питание или землю.
Когда устройство будет отлажено, эти резисторы можно исключить, а можно и оставить - я оставляю. 2) Не подключаемые (не используемые) в вашей схеме ножки МК рекомендуется сделать входами с подтяжкой - это не позволит ножке хаотично менять свое напряжение под действием внешних помех. Такое беспорядочное изменение напряжения вызывает дополнительное потребление тока на внутренние переключения в МК и часто вызывает недоумение большим током потребления в спящем режиме работы МК. Если в программе вы используете режимы пониженного энергопотребления то сделайте неиспользуемые ножки IO входами и соедините их с GND. Не оставляйте не подключенными выводы в Z-состоянии!
Я обычно стараюсь развести неиспользуемые 'подтянутые' ножки на отдельный разъем на плате - сам разъем можно не паять - но в случае необходимости вы сможете легко впаять его и так задействовать эти выводы МК. Что делать если внешний сигнал превышает диапазон напряжений допустимый для ножки МК? Ответ прост: Напряжение сигнала на который должен отреагировать МК может быть каким угодно большим. Нам важно чтоб на самой ножке МК он не выходил за допустимый диапазон!
Этот диапазон я указал выше. Чтобы выполнить это условие очевидно нужно между большим внешним сигналом и ножкой МК поставить какой то элемент на котором будет падать (поглощаться, гаситься) напряжение на которое входной сигнал выходит за диапазон допустимых напряжений для ножки МК. Простейший, обычный вариант - гасящий резистор!
Например для определения перехода напряжения сети 220 вольт через ноль (точнее близко к нулю) в системах тиристорного регулирования мощности на ножку МК подают напряжение фазы через два резистора ( не чипы, напряжение не должно превышать допустимое для резистора ) включенных последовательно и имеющих общее сопротивление от 1 до 10 МОм. Если при этом посмотреть осциллографом напряжение на ножке МК настроенной как Z-вход - мы увидим почти меандр (прямоугольный сигнал с равными длительностями '0' и '1' ) с размахом примерно на 0.7-0.9 вольт больше напряжения питания МК. Номинал гасящего (или токоограничивающего) резистора выбирается таким чтобы ток втекающий через него в МК не превышал тока потребляющего работающим МК. Иначе возникнет 'паразитное питание' МК - этот ток будет повышать напряжение питания МК проходя на вывод VCC МК через встроенные в МК защитные диоды линий (ножек I-O) ввода-вывода. У каждой ножки I/O (у других ножек не у всех) МК есть два защитных диода - один катодом на VCC а второй анодом на GND. Не надейтесь на серьезную защиту МК этими диодами - ток через них не должен превышать 1 мА.
Так как в ДШ не уазан этот ток - я спросил об этом ATMEL вот их ответ: Dear customer, 1mA (continuous) max is what we recommend. And if this is your next question. No a peak value higher than this has not been specified, this would be dependent on many parameters including pulse shape, duration, repeat frequency and temperature. Best Regards Ragnar Lindqvist Atmel AVR Technical Support Ток ограничивают токо-ограничительными резисторами. 'паразитное питание' - возможно при питании МК стандартными стабилизаторами напряжения типа 7805 78L05 и т.п. Так как они не 'сопротивляются' повышению напряжения на их выходе внешним током!
А вот при питании параметрическими стабилизаторами - например шунтирующий стабилизатор типа или резистор со стабилитроном - паразитное питание не возникнет! Но можно пожечь защитные диоды. Если вы не можете поставить большое гасящее сопротивление, то поставьте максимально допустимое, затем стабилитрон на напряжение чуть ниже напряжения питания МК - при питании 5 вольт подойдут стабилитроны типа - 1 N4730 1 N4731 1 N4732.
От стабилитрона на ножку МК поставьте резистор 1 КОм. Подробнее про правильное питание ( это очень важно! ) устройства в целом и МК смотрите в.
Про электротехнические расчеты, о схемах деления напряжения, усиления сигнала и его ограничения - читайте в книге оглавление которой на курса. Другой вариант приведения входного сигнала к диапазону напряжений допустимых для МК (это называется нормирование) - применить усилитель с нужными параметрами. Записывайте возникающие вопросы! И лучше на бумагу - моторная память! - найдите в (ДШ) регистры и устройства МК о которых шла речь, прочитайте о них подробней. если вопросы остались перечитайте материал снова!
- если вопросы не разрешены, ищите ответ: 1) в on-line 2) поиском Windows в папке где сохранен у вас курс. 3) в моем не структурированном - это сборник ответов на часто задаваемые мне по курсу вопросы и советы по применению МК от знающих людей. 4) в 5) в книгах Если все же не найдете ответа задавайте вопрос Вам ответят в течении дня, если вы правильно, на нормальном русском языке, сформулируете ваш вопрос и напишите его в заголовке сообщения. Советую почитать и то что написано ниже! Ключевые слова: программирование микроконтроллеров, как написать программу для микроконтроллера, обучение программированию микроконтроллеров, микроконтроллеры atmega128, как запрограммировать микроконтроллер, как прошить микроконтроллер, отладка программы для AVR, моделирование работы электронных схем, электронные проекты, хобби, язык си для микроконтроллеров, язык программирования си Основы программирования (кнопочки, светодиоды) Работа с портами. Прерывания и таймеры.
Основы ШИМ, программная и аппаратная реализация. Работа с АЦП Настройка и программирование UART Работа с I2C Связь (UART, I2C, SPI),.