Порты ввода-вывода AVR

Микроконтроллеры / Для начинающих /

Микроконтроллеры для начинающих Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее...

Порт ввода-вывода в микроконтроллере - это некий регистр, который используется для связи между программной частью и “железом”. Через порт ввода вывода микроконтроллер получает сигналы от внешних систем, и передаёт сигналы внешним системам.

Порты ввода-вывода имеются в любом микроконтроллере. Их количество для каждой конкретной микросхемы разное. Все порты микроконтроллеров AVR восьмиразрядные, но в некоторых случаях отдельные разряды не используются. Это связано с ограниченным количеством выводов (ножек) у микросхемы.

У одних портов используются все восемь его линий. У других семь, шесть или даже три. Но для процессора порты остаются 8-разрядными. Процессор всегда пишет в такие порты и читает из них полноценный байт данных. Неиспользуемые разряды при записи просто теряются. При чтении байта из порта неиспользуемые разряды равны нулю.

Все порты AVR обладают полной функциональностью Read-Modify-Write (Чтения-Изменения-Записи) при использовании в качестве обычных цифровых портов ввода-вывода. Это означает, что направление вывода данных одного разряда порта (одной ножки микросхемы) может быть изменено без непреднамеренного изменения направления любого другого разряда (ножки) с помощью инструкций SBI и CBI. То же самое справедливо при изменении значения вывода (если настроен как выход) или включении/ отключении подтягивающих резисторов (если настроен как вход).

Каждый выходной буфер имеет симметричные характеристики каскада с высокой пропускной способностью как приемника, так и источника.

Выходной каскад имеет достаточную мощность, чтобы напрямую управлять светодиодными дисплеями. Все контакты порта имеют индивидуально выбираемые подтягивающие резисторы с сопротивлением, не зависящим от напряжения питания. Все контакты ввода-вывода имеют защитные диоды как для VCC (напряжения питания), так и для заземления, как показано на рисунке 10-1. Полный список параметров приведен в разделе “Электрические характеристики” на стр. 117 оригинальной документации.

Порты ввода-вывода AVR - эквивалентная схема одного контакта

Порты ввода-вывода AVR - эквивалентная схема одного контакта

Все регистры и ссылки на биты в этом разделе (в оригинальной документации) записаны в общей форме. Строчная буква x представляет букву нумерации порта, а строчная буква n представляет номер бита. Однако при использовании регистра или битовых определений в программе необходимо использовать точную форму. Например, PORTB 3 для бита № 3 в порту B, здесь обычно документируется как PORTxn. Физические регистры ввода-вывода и расположение битов перечислены в разделе “Описание регистра” на стр. 57 оригинальной документации.

Для каждого порта выделено три адреса памяти ввода–вывода, по одному для регистра данных - PORTx, регистра направления данных – DDRx и входных контактов порта - PINx. Расположение входных контактов порта ввода-вывода доступно только для чтения, в то время как регистр данных и регистр направления данных доступны для чтения/записи. Однако запись логической единицы в бит в регистре PINx приведет к переключению соответствующего бита в регистре данных. Кроме того, бит Pull-up Disable – PUD в MCUCR отключает функцию pull-up (подтяжка) для всех контактов во всех портах, когда она установлена.

Использование порта ввода-вывода в качестве общего цифрового ввода-вывода описано в разделе “Порты как общий цифровой ввод-вывод” на стр. 50 оригинальной документации. Большинство выводов порта совмещаются с альтернативными функциями для периферийных функций устройства. Как каждая альтернативная функция влияет на вывод порта, описано в разделе “Альтернативные функции порта” на стр. 54 оригинальной документации.

Обратите внимание, что включение альтернативной функции некоторых выводов порта не влияет на использование других выводов в порту в качестве общего цифрового ввода-вывода.


Вступить в группу "Основы программирования"

Подписаться на RUTUBE-канал

Подписаться на Дзен-канал

Подписаться на рассылки по программированию

Микроконтроллеры для ЧАЙНИКОВ Микроконтроллеры для ЧАЙНИКОВ

Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su