ИМХО собственно МК и компьютеры идет параллельно под разные задачи, не тянет МК берте другой, не помогло - компьютер... а строить из МК -> копютер, чисто спортивный интерес (не практично).
да не строит он ничего.. так панты корявые колотит. читаем первый пост
8 штук 74AHC595
угу прям блин адресация и все такое затребованое в дальше по тексту?
Соглашусь, когда вопрос стоит "вобщем", в смысле неконкретно и когда есть "выбор". Да, берем железяку по задаче.
В моей ситуации вопрос стоит ИНАЧЕ: уже есть Мега2560, и внезапно приплыла микруха памяти ... и вопрос стоит КАК приделать одно к другому. Поскольку Мега и всё остальное барахло к ней бралось исключительно для обучательных целей рыбенку, в т.ч. и "на вырост" и как альтернатива Лего Майндшторм, то "между делом" есть ещё и "подзадача": реализовать комплект деталек НЕ ХУЖЕ, а по возможности значительно лучше Лего.
Отсюда, вопрос "куда применить" - как таковой не стоит. Память себе применение всегда найдет.
Можно упростить схему, заодно улучшив её функциональность:
1. Регистр-защелка (74AHC373 к примеру) входами вешаем на порт А ардуинки (AD0..AD7 xmem интерфейса). Сигнал ALE подаем на 11 вход защелки (LE), его выбор кристалла (OE) тупо заземляем. Выходы защелки втыкаем напрямую в младший байт адреса микросхемы памяти А0..7 .
Регистр в этом случае будет принимать младший байт адреса из Ардуино и отдавать его на микроскхему памяти "он лайн".
2. Адреса xmem A8..A12 от Ардуино подаем напрямую на память как адреса А8..12. Сигналы интерфейса RD,WR тоже туда же.
Итого имеем размер страницы памяти в 8 килобайт.
3. Диспетчер страниц делаем на двух микросхемах К1531РУ8, они "жрут меньше" ... тока 55мА при скорости доступа 35нс. Аналог - 74F189:
3.1. На входы микросем РУ8 подаем туже шину адреса-данных из xmem AD0..3 - на первую, AD4..7 - на вторую. Выходы РУ8 отправляем напрямую в старшие адреса памяти А13..А20. Разрешение CS тупо заземляем.
Итого, таким способом можно адресовать до 2 мегабайт реальной оперативы. Такие микросхемы есть. Можно меньше, тогда часть разрядов просто не будет востребована.
3.2. Остаток адреса А13,А14,А15 xmem интерфейса подаем на адресные ножки РУ8, обоих одинаково А0,А1,А2. Получаем доступ к 8 регистрам страниц памяти - "окнам". Нулевой регистр нам бесполезен - это область адресов "внутренней памяти". То бишь имеем 7 страниц "произвольного доступа" по 8Кб.
3.3. Старший бит адреса микросхем РУ8 можно вытащить на ножку Ардуино, например D38. В этом случае, будем иметь "2 банка страниц", переключение между которыми происходит "мгновенно", изменением состояния на этой ноге. Думаю будет полезно для создания 2-х пространств памяти: "рабочее" и "прерываний".
3.4. Управление всей этой фигней выводим на ещё одну ножку Ардуино, например D40. Этот сигнал подаем в прямом виде на вход разрешения памяти и в инверсном виде (через ключевой транзистор) на входы записи РУ8. В этом случае, или разрешен интерфейс и работаем с памятью ИЛИ разрешена запись номера страниц в регистр страницы.
Итого потребуется: 74AHC373 - 1шт (3-5руб), 74F189 (КР1531РУ8) - 2шт (ок. 20руб) и микросхема памяти SRAM ... цены на них в диапазоне 50 ..200руб. :)
Получаем: расширенную сегментированную память заданного объема, с двумя банками по 7 окон доступа в адресном пространстве проца по 8 килобайт каждое. Память можно маппировать любыми порциями по 8к на любое окно адресов. Банки можно переключать простым изменением вывода.
Чета я размечтался .. раз получается подключить ноги РУ8 прямо к шине данных, то может можно организовать операцию "чтение - запись" номера страницы напрямую из SRAM, не отключая интерфейс xmem в процессоре? :)
Пасибки, уже обошелся и даже "лучше больше и веселее" без неё и даже почти развел. Давно просто не возился, поставил kicad пока ещё осваиваюсь. А eagle у меня почему-то не встал... распаковщик зависает и вываливается с требованием доп. либы.. а какой - не указывает. Линукс Дебилиан, 64бита.
P.S. Тему наверное надо переименовать. Изжило себя это название.
В целом - вопрос закрыт. Разве что есть заинтересованный народ в таком шилде ... тогда отправлю PCB файл китаезам, они же и запаять могут... но там "от 10шт" надо чтобы цена стала разумной. :)
ИМХО собственно МК и компьютеры идет параллельно под разные задачи, не тянет МК берте другой, не помогло - компьютер... а строить из МК -> копютер, чисто спортивный интерес (не практично).
да не строит он ничего.. так панты корявые колотит. читаем первый пост
8 штук 74AHC595
угу прям блин адресация и все такое затребованое в дальше по тексту?
Соглашусь, когда вопрос стоит "вобщем", в смысле неконкретно и когда есть "выбор". Да, берем железяку по задаче.
В моей ситуации вопрос стоит ИНАЧЕ: уже есть Мега2560, и внезапно приплыла микруха памяти ... и вопрос стоит КАК приделать одно к другому. Поскольку Мега и всё остальное барахло к ней бралось исключительно для обучательных целей рыбенку, в т.ч. и "на вырост" и как альтернатива Лего Майндшторм, то "между делом" есть ещё и "подзадача": реализовать комплект деталек НЕ ХУЖЕ, а по возможности значительно лучше Лего.
Отсюда, вопрос "куда применить" - как таковой не стоит. Память себе применение всегда найдет.
Похоже щеки таки начали лопаться... веселее, дружище! :)
Итого.
Можно упростить схему, заодно улучшив её функциональность:
1. Регистр-защелка (74AHC373 к примеру) входами вешаем на порт А ардуинки (AD0..AD7 xmem интерфейса). Сигнал ALE подаем на 11 вход защелки (LE), его выбор кристалла (OE) тупо заземляем. Выходы защелки втыкаем напрямую в младший байт адреса микросхемы памяти А0..7 .
Регистр в этом случае будет принимать младший байт адреса из Ардуино и отдавать его на микроскхему памяти "он лайн".
2. Адреса xmem A8..A12 от Ардуино подаем напрямую на память как адреса А8..12. Сигналы интерфейса RD,WR тоже туда же.
Итого имеем размер страницы памяти в 8 килобайт.
3. Диспетчер страниц делаем на двух микросхемах К1531РУ8, они "жрут меньше" ... тока 55мА при скорости доступа 35нс. Аналог - 74F189:
3.1. На входы микросем РУ8 подаем туже шину адреса-данных из xmem AD0..3 - на первую, AD4..7 - на вторую. Выходы РУ8 отправляем напрямую в старшие адреса памяти А13..А20. Разрешение CS тупо заземляем.
Итого, таким способом можно адресовать до 2 мегабайт реальной оперативы. Такие микросхемы есть. Можно меньше, тогда часть разрядов просто не будет востребована.
3.2. Остаток адреса А13,А14,А15 xmem интерфейса подаем на адресные ножки РУ8, обоих одинаково А0,А1,А2. Получаем доступ к 8 регистрам страниц памяти - "окнам". Нулевой регистр нам бесполезен - это область адресов "внутренней памяти". То бишь имеем 7 страниц "произвольного доступа" по 8Кб.
3.3. Старший бит адреса микросхем РУ8 можно вытащить на ножку Ардуино, например D38. В этом случае, будем иметь "2 банка страниц", переключение между которыми происходит "мгновенно", изменением состояния на этой ноге. Думаю будет полезно для создания 2-х пространств памяти: "рабочее" и "прерываний".
3.4. Управление всей этой фигней выводим на ещё одну ножку Ардуино, например D40. Этот сигнал подаем в прямом виде на вход разрешения памяти и в инверсном виде (через ключевой транзистор) на входы записи РУ8. В этом случае, или разрешен интерфейс и работаем с памятью ИЛИ разрешена запись номера страниц в регистр страницы.
Итого потребуется: 74AHC373 - 1шт (3-5руб), 74F189 (КР1531РУ8) - 2шт (ок. 20руб) и микросхема памяти SRAM ... цены на них в диапазоне 50 ..200руб. :)
Получаем: расширенную сегментированную память заданного объема, с двумя банками по 7 окон доступа в адресном пространстве проца по 8 килобайт каждое. Память можно маппировать любыми порциями по 8к на любое окно адресов. Банки можно переключать простым изменением вывода.
... мне кажется "оно того стоит"... :)
Чета я размечтался .. раз получается подключить ноги РУ8 прямо к шине данных, то может можно организовать операцию "чтение - запись" номера страницы напрямую из SRAM, не отключая интерфейс xmem в процессоре? :)
И вбухать туда полноценный веб сервер :) Ток ворочаться наверно будет как семерка на 386 :)
Нужна микросхема, содержащая 8 регистров по 8 бит, так чтобы их можно было выбирать и загружать последовательным интерфейсом (сдвигами)
PCA9555 4 шт на шине I2C по разным адресам как раз и будет 64 битный сдвиговый регистр
и либа на ардуину есть
Пасибки, уже обошелся и даже "лучше больше и веселее" без неё и даже почти развел. Давно просто не возился, поставил kicad пока ещё осваиваюсь. А eagle у меня почему-то не встал... распаковщик зависает и вываливается с требованием доп. либы.. а какой - не указывает. Линукс Дебилиан, 64бита.
P.S. Тему наверное надо переименовать. Изжило себя это название.
В целом - вопрос закрыт. Разве что есть заинтересованный народ в таком шилде ... тогда отправлю PCB файл китаезам, они же и запаять могут... но там "от 10шт" надо чтобы цена стала разумной. :)
Не, веселее. Уже есть задумка посмотреть в сторону двух-портовых микрух от Цитрус-лоджик... и организовать DMA на дополнительном порту... :)