Блок интерфейса и управления.
Данный блок осуществляет связь модуля QSM с другими модулями микроконтроллера через
внутреннюю шину, а также управляет его включением, задает уровень доступа к регистрам и приоритеты формируемых запросов
прерывания. Входящий в состав этого блока регистр конфигурации QMCR (рис. 3.14,а) содержит биты, определяющие режим
функционирования модуля QSM:
STOP - разрешает при STOP=0 нормальную работу модуля; при STOP=1 модуль переходит в режим останова
с пониженным энергопотреблением, при этом разрешена запись во все регистры и буферное ОЗУ, но для чтения доступно только
содержимое регистра QSMCR;
FRZ1 - останавливает при FRZ1=1 работу модуля QSM в режиме отладки BDM; при FRZ1=0 модуль продолжает
ввод-вывод данных в этом режиме;
SUPV - определяет для микроконтроллеров семейства 68300 уровень доступа к регистрам и буферному ОЗУ
(табл.3.24): при SUPV=1 доступ ко всем регистрам разрешен только в режиме супервизора, при SUPV=0 в режиме пользователя
разрешен доступ к регистрам, отмеченным символом S/U в табл.3.23 и буферному ОЗУ (в микроконтроллерах семейства 68HC16 этот
бит не используется).
Поле IARB3-0 в этом регистре задает уровень очередности обслуживания запросов прерывания, формируемых
данным модулем, аналогично полю IARB3-0 в регистре SIMCR модуля SIM (см. раздел Блок конфигурации и контроля). Содержимое этого поля определяет порядок
обслуживания запросов с одинаковым приоритетом Li, поступающих от различных внутренних модулей микроконтроллера. При начальной
установке задается значение IARB3-0=$0, запрещающее обслуживание запросов данного модуля (формирование запроса при данном
значении IABR30 вызовет исключение с номером Ne=24 - "ложное прерывание").
15 |
14 |
13 |
|
7 |
|
|
STOP |
FRZ1 |
- |
0 0 0 0 |
SUPV |
0 0 0 |
IARB |
а) QMCR (адрес $*FFC00)
б) QILR (адрес $*FFC04) в) QIVR (адрес $*FFC05)
Рис. 3.14. Форматы регистров блока интерфейса и управления QSM
Содержимое регистров QILR, QIVR, которое задает приоритеты и вектор прерываний
последовательных портов SCI, QSPI может быть записано и считано в виде одного 16-разрядного слова или двух отдельных байтов.
Регистр QILR (рис.3.14,б) содержит два 3-битовых поля, определяющих уровни приоритета Li для запросов прерывания, формируемых
последовательными портами:
ILSPI - значение Li для буферизованного синхронного порта QSPI,
ILSCI - значение Li для асинхронного порта SCI.
Содержимое полей может иметь значения от Li=1 (низший приоритет) до Li=7 (высший приоритет),
при Li=0 запросы прерывания соответствующего порта не обслуживаются. При одинаковых значениях Li запрос QSPI будет иметь
приоритет над запросом SCI.
В регистр QIVR (рис. 3.14,в) записываются семь старших разрядов INTV7-1 номеров векторов прерывания
Ne, которые задаются одинаковыми для обоих последовательных портов. Младший разряд INTV0 автоматически устанавливается
равным 0 для запроса SCI и 1 для запроса QSPI. Значения Ne должны находиться в диапазоне $40-FF (векторные прерывания
пользователя ). При начальной установке автоматически устанавливается значение INV7-0=$0F, вызывающее при формировании
запроса исключение типа "неинициализированное прерывание" (см. раздел Исключения, прерывания и режим отладки BDM). Регистр QTEST используется только при заводском
тестировании микроконтроллеров.