Блок формирования сигналов выборки кристалла
Отдельные сигналы выборки CSBOOT#, CS0-10# формируются при обращении к адресам,
расположенным в определенных разделах адресного пространства. Для каждого сигнала выборки соответствующий раздел - адресный
блок задается путем указания базового (начального) адреса и размера блока, которые определяются содержимым базовых регистров
CSBARBT, CSBAR0-10 (рис.3.12,а). Регистр CSBARBT определяет адресный блок для сигнала CSBOOT#, регистры CSBARi - для сигналов
CSi#. Поле BLKSZ2-0 в этих регистрах задает размер блока (табл.3.21), а в поле A23-11 указываются значения старших разрядов
базового адреса. Число задаваемых разрядов адреса определяется размером блока (табл. 3.21). Например, для блока размером 64
Кбайт в старших разрядах регистра даются значения восьми старших разрядов базового адреса A23-16, а младшие разряды базового
адреса полагаются равными 0. Таким образом в данный блок попадают все адреса, разряды A23-16 которых совпадают со значениями
восьми старших разрядов содержимого базового регистра.
Cигнал SBOOT# обычно используется для выборки блока служебной памяти, который используется в процессе
инициализации микроконтроллера после процедуры начальной установки. Поэтому условия формирования этого сигнала отличаются от
условий формирования остальных сигналов CS0-10#.
а) CSBARBT (адрес $*FFA48), CSBAR0-10 (адрес$*FFA4C-FFA74)
|
|
|
|
|
|
|
|
|
| 00 |
CSPA0(6) |
CSPA0(5) |
CSPA0(4) |
CSPA0(3) |
CSPA0(2) |
CSPA0(1) |
CSBOOT |
б) CSPAR0 (адрес $*FFA44)
|
|
|
|
|
|
|
| 0 0 0 0 0 0 |
CSPA1(4) |
CSPA1(3) |
CSPA1(2) |
CSPA1(1) |
CSPA1(0) |
в) CSPAR1 (адрес $*FFA46)
| 15 |
14 13 |
12 11 |
10 |
|
|
|
0 |
| MODE |
BYTE |
R/W |
STR B |
DSACKi |
SPACE |
IPL |
AVEC |
г) CS0RBT(адрес $*FFA4A), CS0R0-20 (адрес $*FFA4E-FFA76)
Рис.3.12. Формат содержимого регистров блока формирования сигналов выборки
Таблица 3.21. Размеры адресных блоков и разряды базовых адресов
| BLKZ2-0 |
Размер блока |
Разряды базового адреса,задаваемые в поле A23-12 |
| 0 0 0 |
| 0 0 1 |
| 0 1 0 |
| 0 1 1 |
| 1 0 0 |
| 1 0 1 |
| 1 1 0 |
| 1 1 1 |
|
| 2 Кбайт |
| 8 Кбайт |
| 16 Кбайт |
| 64 Кбайт |
| 128 Кбайт |
| 256 Кбайт |
| 512 Кбайт |
| 1 Мбайт* |
|
| A23-11 |
| A23-13 |
| A23-14 |
| A23-16 |
| A23-17 |
| A23-18 |
| A23-19 |
| A23-20 |
|
*В микроконтроллерах с процессором CPU16 размер блока
при BLKSZ1,0=111 составляет 512 Кбайт .
При формировании сигналов выборки модуль SIM вырабатывает внутренний сигнал подтверждения
готовности DSACKi и указывает разрядность используемой шины данных, поэтому внешние сигналы DSACK1,0# могут не использоваться.
Модуль SIM позволяет формировать 12 сигналов выборки CSBOOT#, CS0-10#, поступающие на выводы порта
C. Назначение этих выводов определяется содержимым регистров управления CSPAR0,1 (рис.3.12,б,в). Функции каждого из выводов
определяются содержимым соответствующего поля CSBOOT, CSPA0,1(i) в этих регистрах (табл.3.22, 3.23). При значении CSBOOT,
CSPA0,1(i)=10 или 11 обеспечивается формирование сигнала CSBOOT#, CSi# на соответствующем выводе и внутренних сигналов
подтверждения DSACKi с указанием разрядности используемой шины, которая определяет число циклов передачи, выполняемых
микроконтроллером при данном обращении к шине. При CSPA0,1(i)=01 выводы используются для передачи старших разрядов адреса,
сигналов захвата и типа цикла. При CSPA0,1(i)=00 порт C служит для вывода данных, записанных в регистр PORTC, и выдачи
синхросигналов ECLK (см. раздел Генератор тактовых импульсов). Для выводов, не используемых в качестве выходов данных или синхросигнала ECLK, з
апись значений CSBOOT, CSPA0(i=1-3)=00 запрещена. Функциональное назначение выводов, задаваемое при начальной установке,
определяется табл. 3.18
Таблица 3.22. Содержимое полей CSBOOT, CSPA, определяющее
назначение выводов порта C
| Поле CSPA |
Сигналы выборки |
Альтернативные сигналы |
Вывод данных, ECLK |
| CSBOOT |
| CSPA0(1) |
| CSPA0(2) |
| CSPA0(3) |
| CSPA0(4) |
| CSPA0(5) |
| CSPA0(6) |
|
| CSBOOT# |
| CS0# |
| CS1# |
| CS2# |
| CS3# |
| CS4# |
| CS5# |
|
| CSBOOT# |
| BR# |
| BG# |
| BGACK# |
| FC0 |
| FC1 |
| FC2 |
|
|
| CSPA1(0) |
| CSPA2(1) |
| CSPA1(2) |
| CSPA2(3) |
| CSPA1(4) |
|
| CS6# |
| CS7# |
| CS8# |
| CS9# |
| CS10# |
|
|
|
Таблица 3.23. функциональное назначение выводов порта С
| CSPA0,1(i) CSBOOT |
Функциональное назначение выводов порта С |
0 0 0 1 1 0 1 1 |
Вывод данных из регистра PORTC или ECLK
Передача альтернативных сигналов (табл.3.18)
Выдача CS#,(8-разрядная шина данных)
Выдача CS# (16-разрядная шина данных) |
Содержимое регистров CSORBT, CSOR0-10 (рис.3.12,г) определяет условия формирования
соответствующих сигналов выборки CS# (CSBOOT# или CSi#) и внутренних сигналов подтверждения готовности DSACKi. Рассмотрим
назначение отдельных битов и полей содержимого этих регистров.
Поле BYTE запрещает формирование сигнала выборки, если значение BYTE=00. При значении BYTE=01 сигнал
выборки CS#=0 выдается только при передаче младшего байта, при BYTE=10 - только старшего байта, при BYTE=11 - при передаче
обоих байтов.
Значение битов MODE, STRB задает момент выдачи сигнала выборки. При значении MODE=1 (синхронная выборка)
сигнал выборки принимает значение CS#=0 при выдаче очередного внешнего синхросигнала ECLK. При MODE=0 (асинхронная выборка)
сигнал выборки CS#=0 выдается одновременно с формированием строба адреса AS#=0, если значение бита STRB=0, или строба данных
DS#=0, если STRB=1.
Поле R/W определяет вид цикла, при выполнении которого выдается сигнал выборки: только при чтении,
если значение R/W=01, только при записи, если R/W=10, в обоих случаях, если R/W=11 (значение R/W=00 не используется).
Поле DSACK определяет условия формирования внутреннего сигнала готовности DSACKi при выдаче сигнала
CS#. При значении DSACK=1111 сигнал DSACKi формируется при поступлении внешних сигналов DSACK1,0# (см. раздел Блок внешнего интерфейса и порты ввода - вывода).
Остальные значения поля DSACK вызывают формирование внутренних сигналов готовности DSACKi независимо от поступления внешних
сигналов DSACK1,0#. Если значение DSACK=1110, то выполняются циклы ускоренного обмена, при которых передача данных производится
в течении двух тактов, а не трех, как при обычном обмене (рис.3.11). Если заданы значения DSACK от 0000 до 1101, то формируются
сигналы DSACi, вызывающие введение в цикл обмена от 0 до 13 тактов ожидания между тактами S1 и S2. Число вводимых тактов ожидания
равно значению поля DSACK. Таким образом обеспечивается возможность обращения к внешним устройствам с различным быстродействием.
Поле SPACE указывает тип выполняемого цикла, при котором разрешается формирование сигналов CS#. Тип
цикла определяется сигналами FС2-0 (табл.3.19), которые выдаются процессором. При значении SPACE=01 сигнал выборки формируется
только в циклах, выполняемых в режиме супервизора, при SPACE=10 - в циклах, выполняемых в режиме пользователя, при SPACE=11 -
в обоих типах циклов, при SPACE=00 - в циклах подтверждения прерывания.
Значения поля IPL и бита AVEC учитываются только при выполнении циклов подтверждения прерывания
(SPACE=00). В этом случае сигнал CSi#=0 выдается при любом уровне приоритета обслуживаемого запроса, если значение поля
IPL=000. Другие значения этого поля указывают уровень запроса Li, при обслуживании которого разрешается формирование сигнала
CS#. Бит AVEC используется в цикле подтверждения прерывания, чтобы обеспечить обслуживание внешних устройств, не вырабатывающих
сигнал подтверждения автовекторного прерывания AVEC#=0. Если установлено значение бита AVEC=1, то при поступлении внешнего
запроса прерывания IRQi# в цикле его подтверждения автоматически вырабатывается внутренний сигнал AVEC#, обеспечивающий
автовекторное обслуживание запроса в соответствии с его уровнем приоритета Li (см. раздел Исключения, прерывания и режим отладки BDM).
Формирование сигнала выборки CSi# производится при совпадении следующих факторов:
- значений заданных в регистре CSBARi разрядов базового адреса и соответствующих разрядов адреса, установленного в данном цикле;
- кода типа цикла FC2-0 и типа цикла, указанного в поле SPACE;
- видов цикла, определяемых сигналами R/W# и полем R/W;
- уровня приоритета запроса прерывания, указанного разрядами A3-1 адреса, и значением поля IPL (только для циклов
подтверждения прерывания ).
В этом случае на соответствующем выводе порта C в заданный момент времени
формируется сигнал CSi#=0 и выполняется цикл обмена с требуемым числом тактов ожидания.
Использование сигналов выборки значительно упрощает подключение к микроконтроллеру памяти и внешних
устройств с различным быстродействием