Память ввода-вывода

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

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

Определение пространства ввода-вывода ATtiny13A показано в разделе “Сводка по регистрам” на стр. 158 оригинальной документации. В этой статье не будем приводить их все, а только разберёмся с общими понятиями.

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

Доступ к области ввода-вывода можно получить инструкциями LD/LDS/LDD и ST/STS/STD, перенося данные между 32 рабочими регистрами общего назначения и областью ввода-вывода (I/O). Регистры ввода-вывода в диапазоне адресов 0x00...0x1F доступны напрямую с помощью инструкций SBI и CBI. В этих регистрах значение отдельных битов можно проверить с помощью инструкций SBIS и SBIC. Дополнительные сведения см. описании набора инструкций.

При использовании специальных команд ввода-вывода IN и OUT (предпочтительный вариант для доступа к регистрам ввода-вывода) необходимо использовать адреса ввода-вывода 0x00...0x3F. Команда OUT выводит один байт в регистр ввода-вывода из какого-либо регистра общего назначения. Команда IN считывает один байт из регистра ввода-вывода и помещает его в какой-либо регистр общего назначения.

При адресации регистров ввода-вывода в качестве пространства данных с помощью инструкций LD и ST к этим адресам необходимо добавить 0x20.

Для совместимости с будущими устройствами в зарезервированные биты должны быть записаны нули, если это возможно. Зарезервированные адреса памяти ввода-вывода никогда не должны записываться.

Некоторые флаги состояния (Status Flags) сбрасываются путем записи в них логической единицы. Обратите внимание, что, в отличие от большинства других моделей AVR, инструкции CBI и SBI будут работать только с указанным битом, и поэтому могут использоваться в регистрах, содержащих такие флаги состояния. Инструкции CBI и SBI работают только с регистрами от 0x00 до 0x1F.

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

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

Как было сказано выше, номера регистров могут иметь значения от 0x00 до 0x3F. То есть наибольшее возможное количество регистров ввода-вывода равно 64.

Каждому регистру ввода-вывода соответствует своя ячейка в ОЗУ. и действительное количество регистров ввода-вывода почти всегда намного меньше их наибольшего возможного количества (намного меньше, чем 64). Однако область памяти ввода-вывода всегда используется только для ввода-вывода.

Если регистр существует, то существует и соответствующая ячейка памяти. Остальные ячейки памяти в этой области ОЗУ просто отсутствуют.

Каждый регистр ввода-вывода, кроме номера, имеет уникальное имя.

Регистры управления вводом-выводом и периферийными устройствами будут описаны в следующих разделах.


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

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

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

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

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

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

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