Здравствуйте!
У нас есть 8-ми разрядный микроконтроллер AT90S8515
Его параметры:
Встроенная память - 8 Кбайт flash-память и 512 байт EEPROM, 512 байт SRAM
32 регистра
32 шины I/O
Итак вопрос: какой объем внешней памяти(ПЗУ) можно подключить к такому микроконтроллеру и чем он ограничен?
Для памяти программ ещё не факт что МК поддерживает внешнюю память, надо смотреть. Если да — ограничен разрядностью шины.
Если для данных — то практически ничем не ограничен (размером и компактностью кода).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Память программ расширить невозможно потому что шина наружу не выведена.
ОЗУ/ПЗУ параллельную можно подключить до 64К с прозрачным доступом к данным со стороны проца. Выше только через программную прослойку.
Адресация больше не позволяет. Смотри на скриншот в сообщениях выше - последний адрес FFFF, первый 0260. Вот с первого по последний только и можешь адресовать.
Zanksa писал(а):Почему не больше?как это обосновать?
Так заявлено производителем компонента в технической документации на компонент (на первой же странице). Читайте техдокументацию. Это займёт не больше, а то и меньше времени, чем вопрошание по форумам. Кроме того, производитель не обманет, в отличие от анонимов в интернетах.
Zanksa писал(а):Почему максимально можно только 64 Кбайта?Почему не больше?как это обосновать?
Обоснование простое до безобразия.
"Плясать" всегда нужно от "железа". Какова разрядность шины адреса, к которой подключается внешнее ОЗУ? Правильно, 16 (от AD0 до AD15). Каково максимальное значение числа (адреса), которое можно записать шестнадцатью двоичными разрядами? Правильно, 0xFFFF (оно же FFFFh, оно же 65535 DEC).
Тем не менее, в даташите сказано, что минимальный адрес внешнего ОЗУ - 0x260 (260h). Значит, объем подключаемого внешнего ОЗУ составляет FFFFh - 260h = FD9Fh (64927 DEC)
То есть, Вы подключаете внешнюю микросхему ОЗУ объемом 64КБ (65535 байт), но при попытке обратиться к адресам младше 260h доступ будет осуществляться к внутреннему ОЗУ микроконтроллера.
Zanksa писал(а):64К - это что?Кбайты или какие-то другие единицы измерения?
Девушка, "я с Вас удивляюсь". Это же элементарнейшая вещь
1. неужели ни у кого нет нормального конспекта?!
2. неужели в гугле забанили?!
3. если на вопросы 1 и 2 ответ "да", то проще получить пару, вылететь из учебного заведения и пойти на курсы маникюрш.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
AT90S8515 или более современная ATmega8515 может работать с блоками внешней ПАМЯТИ ДАННЫХ (но не памяти программ/данных!) с параллельным доступом и непосредственной аппаратной адресацией до 64 килобайт.
Однако некоторыми простейшими схемотехническими добавками можно весьма просто увеличить размер подключаемого накопителя минимум до 8*64 килобайта. Кроме того можно ведь и память с последовательным доступом для хранения данных использовать - там "горизонты необозримы" - от простейшей I2C на 64 кила до ММС карточек и других вкусностей.
Ну, путём самодельной страничной адресации с загрузкой адреса страницы через любой последовательный интерфейс МК в сдвигающий регистр можно размер внешней оперативки увеличить до любого желаемого размера. Хоть до 2^24 (16 МБ, 8 бит адреса страницы), хоть до 2^32 (4 ГБ, 16 бит адреса страницы). Вот только переключение страниц будет не аппаратное, а совтовое, так же как и доступ ко всяким SD-флешкам или ММC-карточкам. Программа должна быть написана соответсвующе.