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

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

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 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), если работа последнего программно разрешена.

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

Новобрачная

Гарвуд Джулия
1. Невеста
Любовные романы:
исторические любовные романы
9.09
рейтинг книги
Новобрачная

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

И вспыхнет пламя

Коллинз Сьюзен
2. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.44
рейтинг книги
И вспыхнет пламя

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Возвышение Меркурия. Книга 5

Кронос Александр
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 5

Ученичество. Книга 1

Понарошку Евгений
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1

Купец VI ранга

Вяч Павел
6. Купец
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Купец VI ранга

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2