Программа Сервисный Центр
0

Подключение внешней SRAM 512 Кбайт к Arduino Mega. Часть 1 - Теория


Очень часто при разработке приложений и систем на базе Arduino встает проблема нехватки памяти, присущая среде программирования микроконтроллеров. С помощью серия Arduino Mega возможно решение данной проблемы, т.к.имеются варианты исполнения данной платформы с Flash-памятью программ 128 КБайт или 256 КБайт. А как насчет встроенной памяти SRAM? Максимальный объем в нашем случае (Arduino Mega) не превышает 8 КБайт.
Подключение внешней SRAM 512 Кбайт к Arduino Mega. Часть 1 - Теория
К счастью, серия Mega позволяет работать с внешней SRAM, и что самое главное, программа может получать беспрепятственно доступ к ней, как если бы это была внутренняя SRAM микроконтроллера. В статье мы рассмотрим аппаратное и программное решение задачи расширения памяти на базе микроконтроллера Atmel AVR ATmega1280. XMEM В техническом описании на микроконтроллер ATmega1280 содержится вся информация для инженеров, необходимая для расширения памяти. В документе это 9 глава «External Memory Interface» (XMEM). Блок схема ниже поясняет, как микроконтроллер организует связь с внешней памятью.
Подключение внешней SRAM 512 Кбайт к Arduino Mega. Часть 1 - Теория
 Рис. 1. Блок-схема организации работы с внешней памятью с помощью XMEM.  Блок в центре - высокоскоростной 8-битный регистр-защелка.
Наиболее интересная часть в этой схеме – блок в центре, который представляет собой высокоскоростную 8-разрядную защелку. Мультиплексирование и защелка Адресное пространство Arduino Mega позволяет подключать внешнюю память объемом до 64 КБайт при 8-битной организации. Обычно для этого требуется немалое количество линий ввода/вывода: 16 для адресной шины, 8 для шины данных и как минимум еще 2 для управления. Чтобы сократить количество используемых линий ввода/вывода, для подключения внешней памяти, микроконтроллер мультиплексирует младшие 8 адресных линий с 8 линиями данных, экономя при этом 8 линий. При такой реализации используется 8-битная защелка (8-разрядный регистр), при этом временные диаграммы работы с внешней памятью следующие:
Подключение внешней SRAM 512 Кбайт к Arduino Mega. Часть 1 - Теория
 Рис. 2. Временные диаграммы работы интерфейса внешней памяти.
Период времени, обозначенный красной линией, показывает промежуток между установкой действительного адреса (достоверные данные на линиях A0 – A15) и началом передачи данных (действительные данные на линиях D0 – D7). Логика микроконтроллера начинает операции с внешней памятью, подтверждая действительный адрес на линиях A0 – A15. Мультиплексированные линии проходят через 8-разрядный регистр-защелку, который работает в «прозрачном» режиме (transparent mode). Затем регистр переключается в режим хранения (Hold mode), при котором игнорируются изменения на входе и продолжается хранение последних принятых данных на выходе. Микроконтроллер затем устанавливает действительные данные на мультиплексированных линиях (это уже будут данные D0 – D7) и, в результате, мы имеем успешно установленные все линии для работы с внешней памятью и сохранили 8 линий ввода/вывода, которые могут понадобиться при работе основного приложения. Стоит заметить, что регистр-защелка должен успевать работать на тактовой частоте 16 МГц, поэтому серия 74HC не подойдет для нашей цели. В техническом описании на микроконтроллер рекомендуется серия 74AHC. Адресация при объеме SRAM более 64 КБайт Теперь, основная задача – это работа с внешней памятью объемом 512 КБайт с адресным пространством всего на 64 КБайт. Решение – разделить 512 КБайт на 8 банков памяти по 64 КБайт и сделать управление «видимостью» одного банка в каждый момент времени с использованием 3 выводов микроконтроллера. Память объемом 512 КБайт при обращении к ней требует 19-битного адреса (адресные линии A0 – A18). Линии A0 – A15 мы подключим по интерфейсу xmem (интерфейс внешней памяти микроконтроллера) и управление 3 оставшимися (A16 – A18) осуществим с помощью цифровых линий ввода/вывода микроконтроллера.
Подключение внешней SRAM 512 Кбайт к Arduino Mega. Часть 1 - Теория
 Рис. 3. Разделение внешней SRAM на 8 банков памяти объемом 64 КБайт.
Следующее ограничение, которое накладывает карта памяти микроконтроллеров ATmega – нижние 8 КБайт SRAM (адресное пространство для такого объема) всегда занимаются внутренней памятью микроконтроллера. Это означает, что адресация внешней памяти осуществляется в диапазоне 0х2200 – 0хFFFF, т.е. мы теряем 69632 байта из общего объема 524288 Байт внешней SRAM. В спецификации на микроконтроллер объясняется метод адресации этих потерянных 8 КБайт, однако автор посчитал, что в данной задаче это не актуально. Во второй части статьи представлены принципиальная схема подключения внешней ОЗУ к микроконтроллеру, список компонентов и рисунки печатной платы.На английском языке: Add 512K of external SRAM to Arduino Mega. Part 1 - TheoryПеревод: Vadim по заказу РадиоЛоцман

По материалам сайта www.rlocman.ru

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (15)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"