Изучаем микроконтроллеры AVR. Описание выводов

Автор: g1ar от 25-01-2013, 01:55

После ознакомления с основными функциями микроконтроллера(далее МК) думаю нужно приступить к описанию выводов и в свою очередь к написанию программы.
И так если вы всерьез решили заняться МК, то вам нужен будет опытный образец, советую прикупить ATmega8a-pu в DIP корпусе т.к в нем есть почти все нужные устройства и функции, а если вы не хотите рисковать, то вам хватит и симуляторов, к примеру, Proteus. С покупкой всё-таки лучше не спешить, в следующей статье выбор будет побольше, ну всему свое время.

Изучаем микроконтроллеры AVR. Описание выводов


Как видно на картине тут куча непонятных наборов букв, хотя можно найти и парочку знакомых(VCC,GND причем их два). Все выводы можно разделить на пару простых групп : выводы питания и порты ввода\вывода. Да стоит заметить, что МК разнятся по своему набору функций, которые они могут выполнять, и соответственно они имеют больше или меньше тех или иных выводов, в общем чем круче МК, тем больше ножек. А так как наша мега8 достаточно крутая, еще бы аж 28 ножек, придется запомнить много чего. Итак приступим, VCC - вывод для источника питания(5В), кстати есть МК которые имеют пониженное питание, они имеют обозначение с буквой L(Low) ATmega8L, GND - общий провод(«земля»).

Что бы не повторятся, скажу сразу все порты двунаправленные(ввод\вывод), параллельные и с встроенными подтягивающими резисторами, звучит ужасно=),но дальше все разъяснится.

PORT B(PB7…PB0) - порт В является 8-битным. РВ6 и PB7 используются для подключения кварцевого резонатора(Кварцевый резонатор - это прибор благодаря которому генерируются тактовые импульсы с точно заданной частотой(для чего это нужно читайте первую статью)). Выводы РВ2…РВ5 используются для программирования МК.
PORT С (PC0 … РС6) - порт С является 7-битным. Порты PC0 … РС5 можно использовать в качестве аналоговых входов. РС6 обычно используется для сброса.
PORT D (PD0 … PD7) - порт D является 8-битным . Этот порт можно использовать для общего применения, т.е. ни один из них не зарезервирован на какую либо задачу.

Следует запомнить что МК не является устройством которое управляет большими мощностями, для этого есть транзисторы, оптроны и т.д. Максимальный ток, который МК сможет пропустить через себя не должен превышать 30мА. Запомните это!
Итак мы хотим, чтобы наш МК работал во всю силу, но его скорость выполнения команд ограничена внутренним генератором. Что же делать? Правильно - подключим кварц на 16МГц. Как было сказано, для этого отведены специальные выводы: РВ6 и PB7 или же XTAL1 и XTAL2,это одно и тоже. Схема подключения показана на рисунке.

Изучаем микроконтроллеры AVR. Описание выводов


C1 и C2 нужны для стабилизации(компенсации ёМКости кварца) и их номинал лежит в пределе 10-36пФ.

В описании есть несколько терминов, которые следует пояснить прежде чем переходить к программной части, это: двунаправленные порты ввода\вывода и подтягивающие резисторы.
Для примера возьмем порт D, он является 8-битным(если вы не имеете представление про двоичный код, желательно бы заполнить этот пробел до этой части).
Для того что бы запрограммировать тот или иной вывод порта нужно установить 2 основных параметра в регистры DDR и PORT. Давайте поподробней рассмотрим ,как ими управлять.

DDR - отвечает будет ли вывод входом(если 0), или выходом(если 1).

PORT - если вывод сделан выходом, то что мы запишем в него, то и будет на выводе, а если вывод сделан входом, то при записи в PORT этого вывода «1» к выводу подключаются внутренний резистор подтягивающий его к питанию(5В),а если «0»,то вывод свободно болтается и для кнопки нужно будет припаять внешний резистор.

Есть еще третий регистр PIN - содержит значение состояния ножек порта, когда тот работает на вход, но он пока нам не понадобится.

Итак для окончательного освоения наведу простую картину.
Порт D имеет восемь выводов и в программном виде они представляются как восьмибитное число ХХХХХХХХ, где младший разряд это PD0, а старший, соответственно PD7. И тут вступает перевод из двоичной системы в шестнадцатеричную систему.
К примеру нам нужно чтобы на выводе PD6 была логическая 1(~5В),а на PD5 логический 0(GND). Для этого в регистре DDR делаем выходом 6й и 5й бит, т.е. записываем в него число 00110000=30, и в регистр PORT запишем значение нашего выхода в 6м и 5м бите: 00100000=20, причем биты с 0-3 и 6-7 в это время не будут использоваться.

В следующей части поговорим о программировании...

Теги: распиновка, микроконтроллер, atmega8, avr

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.