Раздел:
Документация0 ...
43 44 45 46 47 48 49 ...
195 используемых для управления внешней памятью битов этих регистров приведено в Табл. 2.16 и Табл. 2.17. Обратите внимание на то, что в моделях ATmega640x/128xx/256xx биты SRWxx регистра XMCRA сгруппированы совершенно иначе, нежели в остальных моделях.
Таблица 2.16. Биты регистров XMCRA (модели Alhiega64x/128x) и EMCUCR
Бит | Название | Описание |
7 | - | Зарезервирован, читается как 0 |
6 | SRL2 | Задание границ секторов. Значение этих битов определяет положение границы между двумя секторами внешней памяти |
5 | SRL1 |
4 | SRL0 |
3 | SRW01 | Выбор числа тактов ожидания (нижний сектор). Эти биты являются селектором длительности обращения к первому (нижнему) сектору внешней памяти |
2 | SRW00 |
1 | SRW11 | Выбор числа тактов ожидания (верхний сектор). Этот бит является старшим битом селектора длительности обращения ко второму (верхнему) сектору памяти (младший бит — в регистре MCUCR) |
0 | - | Зарезервирован, читается как 0 |
Таблица 2.17. Биты регистров XMCRA (модели Alhiega640x/128xx/256xx) |
Бит | Название | Описание |
7 | SRE | Разрешение работы с внешней памятью. Установка этого бита в 1 разрешает работу с внешней памятью. Установки регистров направления передачи данных для соответствующих выводов (см. Табл. 2.13) при этом игнорируются. При сброшенном бите SRE обращение к внешней памяти запрещено, а выводы используются как линии ввода/вывода общего назначения |
6 | SRL2 | Задание границ секторов. Значение этих битов определяет положение границы между двумя секторами внешней памяти |
5 | SRL1 |
4 | SRL0 |
3 | SRW11 | Выбор числа тактов ожидания (верхний сектор). Эти биты являются селектором длительности обращения ко второму (верхнему) сектору внешней памяти |
2 | SRW10 |
1 | SRW01 | Выбор числа тактов ожидания (нижний сектор). Этот бит является старшим битом селектора длительности обращения к первому (нижнему) сектору памяти |
0 | SRW00 |
Формат регистров XMCRB и SFIOR приведен на Рис. 2.22. В этих регистрах для работы с внешней памятью используются только 4 бита. Как и в регистре EMCUCR, в регистре SFIOR остальные биты используются для других целей. Описание используемых для управления внешней памятью битов регистров XMCRB и SFIOR приведено в Табл. 2.18.
Чтение (R)/3anncb(W) R/W Начальное значение о
R/W о
R/W о
sfior | X | хмвк | XMM2 | ХММ1 | хммо | X | X | к |
Чтение (R)/3anncb (w) Начальное значение | r/w 0 | R/W 0 | R/W 0 | R/W 0 | r/w 0 | r/w 0 | r/w 0 | ra/v 0 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
XMCRB | ХМВК | - 1 | - | - | - | ХММ2 | ХММ1 | хммо |
R/W о
ATmega8515x ATmega 162х
ATmega64x ATmega 128х ATmega640x ATmega1280x/1281x ATmega2560x/2561x
Рис. 2.22. Формат регистров XMCRB и SFIOR
Таблица 2.18. Биты регистров XMCRB и SFIOR
Бит | Название | Описание |
XMCRB | SFIOR |
7 | 6 | ХМВК | Разрешение удержания значений на шине данных. Если этот бит установлен в 1, то на выводах AD7...AD0 всегда удерживается последнее выведенное значение (даже если микроконтроллер должен перевести их в третье состояние). При сброшенном бите эта функция отключена. Установка бита ХМВК действует, даже если работа с внешней памятью запрещена! |
2 | 5 | ХММ2 | Маска старшего байта шины адреса. Содержимое этих битов определяет количество выводов порта С, задействованных под шину адреса. Незадействованные выводы могут использоваться как линии ввода/вывода общего назначения |
1 | 4 | ХММ1 |
0 | 3 | ХММО |
Микроконтроллеры семейства Mega позволяют использовать микросхемы внешнего ОЗУ с различным временем доступа. Подстройка под различные микросхемы осуществляется изменением длительности цикла обращения к внешней памяти. Более того, имеется возможность разбить все адресное пространство внешнего ОЗУ на два сектора, для каждого из которых может быть задана своя длительность цикла обращения. В общем виде конфигурация внешнего ОЗУ, подключенного к микроконтроллеру, показана на Рис. 2.23.
Внешняя память (О 64Кх8)
Внутренняя память
SRW01 SRWOO
SRW11 SRW10
$00000
$025F/$045F/$04FF/$10FF/$21FF $0260/$0460/$0500/$1100/$2200
SRL[2 0]
$FFFFF
Рис. 2.23. Конфигурация внешнего ОЗУ
Положение границы между секторами определяется содержимым битов SRL2...SRL0 согласно Табл. 2.19. По умолчанию эти биты сброшены в 0, т. е. вся область памяти состоит из одного сектора.
Таблица 2.19. Определение секторов внешней памяти
| | | Нижняя граница 1-го сектора |
SRL2 | SRL1 | SRL0 | ATrnega8515x, ATrnegal62x, ATrnega64x/128x | ATmega640x, ATmegal280x/1281x, ATtaega2560x/2561x |
0 | 0 | 0 | - | - |
0 | 0 | 1 | $1FFF | - |
0 | 1 | 0 | $3FFF | $3FFF |
0 | 1 | 1 | $5FFF | $5FFF |
1 | 0 | 0 | $7FFF | $7FFF |
1 | 0 | 1 | $9FFF | $9FFF |
1 | 1 | 0 | $BFFF | $BFFF |
1 | 1 | 1 | $DFFF | $DFFF |
Изменение длительности цикла обращения к внешней памяти осуществляется заданием дополнительных тактов ожидания с помощью битов
0 ...
43 44 45 46 47 48 49 ...
195