Чтение онлайн

на главную - закладки

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

После выхода МК из состояния сброса блок регистров специальных функций располагается в адресном пространстве МК, начиная с адреса IO_BASE = $0000. Такое расположение блока наиболее часто сохраняется при использовании МК семейства 68HC12/HCS12 в однокристальном режиме работы, поскольку для обращения к регистрам могут быть использованы команды с прямой адресацией, которые имеют двухбайтовый формат и экономно расходуют память программ МК. Однако аппаратные средства МК семейства 68HC12/HCS12 позволяют переопределить значение базового адреса блока регистров IO_BASE = $0000 на любое другое кратное 2 Кб в пределах адресного пространства в 64Кб. Для этого достаточно записать соответствующее значение в один из регистров

специальных функций МК с именем INITRG. После изменения базового адреса блок регистров будет «располагаться» в первых 512 ячейках выбранной области памяти объемом 2 Кб. Причем порядок расположения регистров, а значит и значения кодов смещения, в пределах этой области памяти останутся неизменными. Так если блок регистров назначен в область памяти с базовым адресом $1000, то регистр ATDCTL2 будет иметь новый виртуальный (т.е. кажущийся) адрес, равный $1000 + $0062. Заметим, что при использовании виртуальной адресации регистров программисту придется только переопределить базовый адрес IO_BASE, в то время как указанные в заголовочном файле коды смещения останутся прежними.

Зачем нужна система виртуальной адресации? Дело в том, что при работе МК в одном из расширенных режимов расположение блока регистров с адреса $0000 может вызвать неудобства при проектировании схемы подключения внешней памяти. А изменение базового адреса значительно упростит эту схемотехнику.

4.6. Порты ввода/вывода

Все МК семейства 68HC12 имеют некоторое количество линий ввода/вывода данных. Линии объединены в 8 разрядные параллельные порты данных: Port A, Port B, Port E, PORT AD и т.д.

За редким исключением, все линии ввода/вывода двунаправленные. Направление передачи линий ввода/вывода настраивается программно путем записи управляющего слова в регистр направления передачи соответствующего порта. Возможно изменение направления передачи в ходе выполнения программы посредством перепрограммирования этих регистров. Сигнал сброса устанавливает все двунаправленные линии в режим ввода. Следует особо подчеркнуть, что направление передачи каждой линии может быть выбрано разработчиком произвольно, независимо от других линий, принадлежащих к одному и тому же порту ввода/вывода. Исключение составляют лишь линии однонаправленной передачи, которые изначально специализированы на ввод или на вывод (см. 4.6.1).

Часть линий ввода/вывода имеют так называемую альтернативную функцию, т.е. обеспечивают связь встроенных периферийных модулей МК с «внешним миром». Так линии порта PORT AD используются для подключения к встроенному АЦП измеряемых напряжений, линии порта PORT S служат входами и выходами контроллеров последовательного обмена. Если соответствующий периферийный модуль МК не используется, то его выводы можно задействовать как обычные линии ввода/вывода.

Если линии порта двунаправленные, то для его обслуживания такого порта предусмотрены два типа регистров:

PORTx — регистр данных порта x, где x — имя порта ввода/вывода;

DDRx — регистр направления передачи порта x.

Например, порт PORT A обслуживается регистрами PORTA и DDRA, а порт PORT B — регистрами PORTB и DDRB.

Если порт имеет схемотехнику с программно подключаемым «подтягивающим» резистором (R pull up), то для обслуживания такого порта предусмотрен дополнительный регистр входного сопротивления порта.

Ниже приведен фрагмент текста программы, которая конфигурирует PORT T для вывода данных, а затем записывает в порт число $62. Для того, чтобы все линии порта PORT T стали линиями вывода, необходимо записать в регистр направления передачи DDRT код $FF.

/*----------------------------------------------*/

/* МAIN PROGRAМ: */

/* */

/*подключаемые
файлы*/

#include <912b32.h>

void main{void) {

 unsigned char DDRT_INI = 0xFF;

 DDRT = DDRT_INI; //установить порт PORT T на вывод

 PORTT = 0x62;

}

/* */

4.6.1. Спецификация портов ввода/вывода

Подсистема параллельного ввода/вывода МК B32 состоит из 8 портов, причем линии многих портов обладают альтернативной функцией. Мы рассмотрим эти порты в порядке их расположения на рис. 4.1. по часовой стрелке.

• PORT A. В однокристальном режиме работы — 8-разрядный порт ввода/вывода общего назначения. Направление передачи каждой линии порта определяется соответствующим битом регистра DDRA. В расширенном режиме работы на линиях порта формируются сигналы старшего байта мультиплексированной магистрали адрес/данные ADDR15–8/DATA15–8. В расширенном режиме с 8 разрядной шиной линии порта представляют собой мультиплексированную магистраль ADDR15–8/DATA7–0.

• PORT B. В однокристальном режиме работы — 8-разрядный порт ввода/вывода общего назначения. Направление передачи каждой линии порта определяется соответствующим битом регистра DDRB. В расширенном режиме работы на линиях порта формируются сигналы младшего байта мультиплексированной магистрали адрес/данные ADDR7–0/DATA7–0. В расширенном режиме с 8-разрядной шиной линии порта представляют собой немультиплексированную магистраль ADDR7-0.

• PORT E. 8-разрядный порт ввода/вывода общего назначения. Две линии порта PE0 и PE1 — однонаправленные и работают только на ввод. Остальные линии порта — двунаправленные, направление передачи линий PE2–PE7 определяется соответствующими битами регистра DDRE. Все линии порта имеют альтернативную функцию. Линии PE1 и PE0 могут использоваться как входы внешних прерываний

и 
. Остальные линии служат для задания режимов работы МК (MOD A и MOD B) и в качестве сигналов управления внешней шиной при работе МК в расширенном режиме.

• PORT AD. Однонаправленный 8-разрядный порт ввода. Все линии имеют альтернативную функцию. Если работа модуля аналого-цифрового преобразователя ATD разрешена, то линии порта используются для подключения измеряемых аналоговых сигналов.

• PORT T. Двунаправленный 8-разрядный порт ввода/вывода общего назначения. Направление передачи каждой линии порта определяется соответствующим битом регистра DDRT. Альтернативная функция линий порта PORT T — обслуживание модуля таймера. Если работа таймера разрешена, то линии используются в качестве входов входного захвата IC или выходов выходного сравнения OC.

• PORT S. Двунаправленный 8-разрядный порт ввода/вывода общего назначения. Направление передачи каждой линии порта определяется соответствующим битом регистра DDRS. Альтернативная функция линий порта PORT S — обслуживание модулей последовательного обмена SCI и SPI.

• PORT P. Двунаправленный 8-разрядный порт ввода/вывода общего назначения. Направление передачи каждой линии порта определяется соответствующим битом регистра DDRP. Четыре линии порта PORT P могут использоваться в качестве выходов модуля генератора ШИМ-сигнала (модуль PWM), если работа последнего программно разрешена.

Поделиться:
Популярные книги

Законы Рода. Том 10

Андрей Мельник
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Доверься мне

Кажанова Юлия
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Доверься мне

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Достигая Вершин

ZerKo
1. Достигая Вершин
Фантастика:
фэнтези
5.00
рейтинг книги
Достигая Вершин

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии