внешняя память и ЖК в одном адресном пространстве АВР - как?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 365
Зарегистрирован: Вт окт 21, 2008 15:03:06
Откуда: moscow

Сообщение adrenocrome »

друзья, подскажите плз!
есть мега128, внешняя память 32кБ по даташиту подцеплена. но можно,насколько я понял, адресовать до 60кБ внешнего пространства.
возникла задумка подцепить на шину стандартный ЖК типа 2х16 или графического так,чтобы не ногами дёргать,а кидать данные в него как во внешнюю память. реально вобще такое?

надеюсь, понятно объяснил? =)
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Железа внешнего прибавится много. Зачем это? Самый верный способ - по старинке. Можно, конечно, поставить еще один регистр-защелку на линии данных LCD, в который будет писаться значение при активном уровне линии A15, и эту же линию подать на второй вход выбора #CS внешнего ОЗУ. Тогда младшие 32кБ будет ОЗУ, а старшие 32КБ - линии данных для LCD, т.е. по любому адресу этой верхней половины писать как в память в LCD данные. А сигналы управления LCD - по старому - через дерганье отдельных ног.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Реклама
Опытный кот
Аватара пользователя
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Хотя, если не ошибаюсь, в Меге можно настроить разные задержки при обращении к разным участкам внешнего ОЗУ, тогда можно сделать так (схема в файле). Но сначала уточнить по даташитам, удастся ли сделать так, чтобы LCD "успевал" за МК. В этом варианте получается, что LCD будет занимать пространство верхних 32кБайт, по четным адресам - его регистр данных, а по нечетным - регистр команд. Т.е. по адресам 8000h, 8002h, ..., FFFEh - чтение-запись регистра данных, а по адресам 8001h, 8003h, ..., FFFFh - чтение-запись регистра команд.
Вложения
lcdram.GIF
(7.12 КБ) 403 скачивания
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 365
Зарегистрирован: Вт окт 21, 2008 15:03:06
Откуда: moscow

Сообщение adrenocrome »

во, вот примерно так я и предполагал сделать.
только вот как это всё в софте будет. реально ли вобще.
сейчас вобще поковыряю даташиты.
просто вдруг кто нибудь делал уже так? и есть ли смысл?
просто параллельно повесить ЖК вполне реально и во время работы с ним отключать внешнюю память. а вот чтобы именно переменную разместить в адресном пространстве ЖК =) или это изврат уже...
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

В софте, как я уже отметил выше, обращение к регистру управления и регистру данных будет производиться как обращение к ОЗУ.
Нет, аппаратно ремапить память ЖК-контроллера в область памяти МК никак не получится. А внешнюю память отключать не надо, при обращении к ЖК она сама будет отключаться: линия A15 на вход выбора ОЗУ и инвертированная к входу выбора ЖК-контроллера.
Т.е. В адресном пространстве 0000h-7FFFh будет активно ОЗУ (на линии А15 будет 0, который выбирает ОЗУ, а входы ЖК отключает от шины данных). А при чтении-записи по адресам 8000h-FFFFh будет активен индикатор (на линии A15 будет 1, которая отрубает ОЗУ, и активирует линии ЖК).
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»