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

Re: ATmega8515 и внешняя ОЗУ
Добавлено: Вс июн 17, 2007 17:00:36
Rokl
Gurvinok писал(а):Всем привет!
Вопрос: Какую максимально по объему внешнюю память можно использовать с mega8515?
Есть такая книжка "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel"... Там написано что внешнюю ОЗУ можно адресовать до 64к. В реале последний адрес 0xFFFF. ... Это вроде как 512к получается. ....
Это как раз 64к получается, а не 512к
Добавлено: Вс июн 17, 2007 17:02:39
ARV
Во-первых, 0xFFFF это 65535, т.е. ровно 64К.
Во-вторых, память бОльшего объема так просто к этой меге не подключишь... Хотя если задавать адреса программно, то все возможно. Младшие 16 битов адреса надо подавать на микросхему памяти так, как написано в описании МК, а старщие придется устанавливать отдельными командами, т.е. запись/чтение будет осуществляться как бы блоками по 64К.
Добавлено: Вс июн 17, 2007 17:07:13
Gurvinok
Да, точно. Я тут родной мануал на контроллер внимательно прочел и посчитал. Верно 64к. Точнее 65535 - 608(своя память) = 64927. А как это блоками по 64к. Не понимаю. Можно по подробнее!
Добавлено: Вс июн 17, 2007 17:29:15
ARV
Блоками, это примерно так. МК аппаратно поддерживает работу с внешним ОЗУ до 64К, т.е. 16 линий адреса. А если у нас не 16, а 17 или более линий адреса? Тогда мы на этих "лишних" линиях задаем отдельными портами МК условно говоря "номер" страницы внешнего ОЗУ. Таким образом, адрес байта в памяти будет вычислен так: 00хххххххххххххххх - где, 00 это дополнительные биты, а иксами обозначены обычные, аппаратно реализуемые 16 адресных разрядов.
Добавлено: Вс июн 17, 2007 17:58:18
Gurvinok
Понял. Спасибо. Так как я буду дополнительно подвязывать две ноги порта. Можно ли сделать так: у памяти 18 ног адреса. Поставить два счетчика 74НС4040 и просто дергать их после установки данных. Возможно ли такой расклад?
Добавлено: Вс июн 17, 2007 19:00:50
ARV
смысл в том, что к 64К МК может обращаться с минимумом программных извратов, т.е. необходимые сигналы RD/WR и всякие там защелки адреса/данных формируются аппаратно. Поэтому мне кажется, наиболее просто делать без лишних счетчиков: просто взять 2 свободных порта с МК и завести на А16 и А17 памяти, а А0...А15 подключить так, как написано в даташите на МК. Тогда пока надо обращаться к адресам менее 0x10000 - держим порты А16 и А17 в нуле, когда надо обратиться к адресам 0х10000...0х1FFFF, то устанавливаем порт A16=1 и обращаемся как будто по адресу в пределах первых 64К, т.е. 0x0000...0xFFFF. И так далее все 256К страницами по 64К. При таком подходе минимум программного гемора.
Добавлено: Вс июн 17, 2007 19:10:50
Gurvinok
Большое спасибо за совет!