Страница 1 из 1

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

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

надеюсь, понятно объяснил? =)

Добавлено: Ср июн 24, 2009 08:44:17
DrWatson
Железа внешнего прибавится много. Зачем это? Самый верный способ - по старинке. Можно, конечно, поставить еще один регистр-защелку на линии данных LCD, в который будет писаться значение при активном уровне линии A15, и эту же линию подать на второй вход выбора #CS внешнего ОЗУ. Тогда младшие 32кБ будет ОЗУ, а старшие 32КБ - линии данных для LCD, т.е. по любому адресу этой верхней половины писать как в память в LCD данные. А сигналы управления LCD - по старому - через дерганье отдельных ног.

Добавлено: Ср июн 24, 2009 09:21:14
DrWatson
Хотя, если не ошибаюсь, в Меге можно настроить разные задержки при обращении к разным участкам внешнего ОЗУ, тогда можно сделать так (схема в файле). Но сначала уточнить по даташитам, удастся ли сделать так, чтобы LCD "успевал" за МК. В этом варианте получается, что LCD будет занимать пространство верхних 32кБайт, по четным адресам - его регистр данных, а по нечетным - регистр команд. Т.е. по адресам 8000h, 8002h, ..., FFFEh - чтение-запись регистра данных, а по адресам 8001h, 8003h, ..., FFFFh - чтение-запись регистра команд.

Добавлено: Ср июн 24, 2009 11:43:05
adrenocrome
во, вот примерно так я и предполагал сделать.
только вот как это всё в софте будет. реально ли вобще.
сейчас вобще поковыряю даташиты.
просто вдруг кто нибудь делал уже так? и есть ли смысл?
просто параллельно повесить ЖК вполне реально и во время работы с ним отключать внешнюю память. а вот чтобы именно переменную разместить в адресном пространстве ЖК =) или это изврат уже...

Добавлено: Ср июн 24, 2009 12:18:17
DrWatson
В софте, как я уже отметил выше, обращение к регистру управления и регистру данных будет производиться как обращение к ОЗУ.
Нет, аппаратно ремапить память ЖК-контроллера в область памяти МК никак не получится. А внешнюю память отключать не надо, при обращении к ЖК она сама будет отключаться: линия A15 на вход выбора ОЗУ и инвертированная к входу выбора ЖК-контроллера.
Т.е. В адресном пространстве 0000h-7FFFh будет активно ОЗУ (на линии А15 будет 0, который выбирает ОЗУ, а входы ЖК отключает от шины данных). А при чтении-записи по адресам 8000h-FFFFh будет активен индикатор (на линии A15 будет 1, которая отрубает ОЗУ, и активирует линии ЖК).