ATmega8515 и внешняя ОЗУ

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва

Сообщение Gurvinok »

Всем привет!
Вопрос: Какую максимально по объему внешнюю память можно использовать с mega8515?
Есть такая книжка "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel" Практически мануал на русском. Там написано что внешнюю ОЗУ можно адресовать до 64к. В реале последний адрес 0xFFFF. Ну по крайне мере в Протеусе работает. Это вроде как 512к получается. И вот еще. Купил флеш память AT29C020-12JC 256кХ8 Как ее заполнить полностью?
Мне просто нужно считывать инфу и записывать в память. Большого объема. Вот как состыковать флеш и контроллер? Заранее спасибо. Надеюсь не запутал всей этой ерундой! :)))
Я не волшебник, я только лечусь
Контактная информация:
Реклама
Друг Кота
Сообщения: 5232
Зарегистрирован: Пт авг 25, 2006 09:26:19
Откуда: Москва

Сообщение Rokl »

Gurvinok писал(а):Всем привет!
Вопрос: Какую максимально по объему внешнюю память можно использовать с mega8515?
Есть такая книжка "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel"... Там написано что внешнюю ОЗУ можно адресовать до 64к. В реале последний адрес 0xFFFF. ... Это вроде как 512к получается. ....
Это как раз 64к получается, а не 512к
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Во-первых, 0xFFFF это 65535, т.е. ровно 64К.
Во-вторых, память бОльшего объема так просто к этой меге не подключишь... Хотя если задавать адреса программно, то все возможно. Младшие 16 битов адреса надо подавать на микросхему памяти так, как написано в описании МК, а старщие придется устанавливать отдельными командами, т.е. запись/чтение будет осуществляться как бы блоками по 64К.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва

Сообщение Gurvinok »

Да, точно. Я тут родной мануал на контроллер внимательно прочел и посчитал. Верно 64к. Точнее 65535 - 608(своя память) = 64927. А как это блоками по 64к. Не понимаю. Можно по подробнее!
Я не волшебник, я только лечусь
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Блоками, это примерно так. МК аппаратно поддерживает работу с внешним ОЗУ до 64К, т.е. 16 линий адреса. А если у нас не 16, а 17 или более линий адреса? Тогда мы на этих "лишних" линиях задаем отдельными портами МК условно говоря "номер" страницы внешнего ОЗУ. Таким образом, адрес байта в памяти будет вычислен так: 00хххххххххххххххх - где, 00 это дополнительные биты, а иксами обозначены обычные, аппаратно реализуемые 16 адресных разрядов.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва

Сообщение Gurvinok »

Понял. Спасибо. Так как я буду дополнительно подвязывать две ноги порта. Можно ли сделать так: у памяти 18 ног адреса. Поставить два счетчика 74НС4040 и просто дергать их после установки данных. Возможно ли такой расклад?
Я не волшебник, я только лечусь
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

смысл в том, что к 64К МК может обращаться с минимумом программных извратов, т.е. необходимые сигналы RD/WR и всякие там защелки адреса/данных формируются аппаратно. Поэтому мне кажется, наиболее просто делать без лишних счетчиков: просто взять 2 свободных порта с МК и завести на А16 и А17 памяти, а А0...А15 подключить так, как написано в даташите на МК. Тогда пока надо обращаться к адресам менее 0x10000 - держим порты А16 и А17 в нуле, когда надо обратиться к адресам 0х10000...0х1FFFF, то устанавливаем порт A16=1 и обращаемся как будто по адресу в пределах первых 64К, т.е. 0x0000...0xFFFF. И так далее все 256К страницами по 64К. При таком подходе минимум программного гемора.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 198
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Откуда: Москва

Сообщение Gurvinok »

Большое спасибо за совет!
Я не волшебник, я только лечусь
Контактная информация:
Закрыто

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