Пока еще не освоил всех тонкостей синтаксиса С. Прошу помощи. - Как в Ардуиновском скетче написать команду записи / чтения байта в / из конкретный адрес ОЗУ ? Считаем, что адрес заведомо свободен.
насчет скетча это к BOB51 (по ардуинам он главнюк тут на форуме ), тем более ранее выкладывалось как. Потестил обычным Си c малок в протеусе с внешней RAM - вроде работает, хотя полностью не уверен. Упрощенный тест: Спойлер
Проблема с шиной А15. 0x8000 выставляет на шине А15 единицу. Можно адресовать с 0x1100 но это включает шину А12. В протеусе работает. Назад прочитать командой
Пока еще не освоил всех тонкостей синтаксиса С. Прошу помощи. - Как в Ардуиновском скетче написать команду записи / чтения байта в / из конкретный адрес ОЗУ ? Считаем, что адрес заведомо свободен.
Для простейшего теста внешней аппаратной обвязки схемы можно просто симитировать аппаратный блок в МК примитив-дрыголапом. Это позволит исключить ошибки в настройках РСФ аппаратного блока управления внешней памятью, в том числе и "накладку адресов" в младшей части адресного пространства. Относительно чтения/записи по конкретному адресу через Си - надо таки будет сначала аппаратный модуль управления внешним ОЗУ настроить... да и макет для проверки соорудть, чтоб в реале посмотреть. У меня для такого разве что мега8515...
Всем большое спасибо. Понял как пользоваться пойнтером *Ptr.
Что касается схемотехники - В роли регистра адреса лучше использовать 74HCT574(четыре !). Надо ввести в схему цепи задержки сигналов ALE, #WR и #RD относительно сигналов адреса/данных. В роли задержки - пара инверторов. Два инвертора - повторитель. Шесть инверторов из микры (напр. 74HCT04) как раз то что требуется. Без них Протеус показывает лажу. В данном случае он не врет, логически все верно. Полагаться на супер-пупер быстродействие регистра адреса и микры памяти - опрометчивое дело. Выставил в настройках проца задержки по максимуму - оказалось недостаточно. Даташит предупреждает об этом же.
Что касается схемотехники - В роли регистра адреса лучше использовать 74HCT574(четыре !)
В папке протеуса есть примеры (для ардуинщиков много), а среди примеров есть папка AVR External Memory. Там по схеме регистр 74LS373 и память 6264, есть и диаграммы работы схемы - может есть смысл рассмотреть. Я брал эту схему, только заменил микроконтроллер атмега8515 мегой128 - программно, как выше в постах видно - протеус нормально работает. з.ы. в протеусе есть и сама среда ардуино
То все-таки симулятор... Соответственно допуски определенные заложены. В реале у той же ОЗУ есть варианты с различным временем доступа, да и прокладка трасс линий адреса/данных многое меняет - это ежли реал-макет делается. На котуинке, к примеру, стоит 74HC573(К1533ИР33) + UM61512AK-15/W24512AK-15 (15nS доступ).... ( у 6264 из тех, что попадались "вживую" - только 70nS...) И то при кварце в 11,0592МГц (тактовая МК ~ 1Мгц). Выше частоту поднимать таки не рисковал - ибо там не только данные, но и исполняемая программа размещается. В принципе... тот блок ВПД можно и с мегой8515/162й протестировать... https://img.radiokot.ru/files/20529/2k8oskg0us.JPG монтаж совершенно примитивный верхняя сторона с регистром https://img.radiokot.ru/files/20529/17kiakfs6n.jpg нижняя сторона с собственно ОЗУшкой https://img.radiokot.ru/files/20529/17kiakxghg.jpg Кстати... не обязательно абсолютное соответствие старшего байта адресов у МК раскладке микросхемы памяти делать. Можно и по принципу "как удобнее" - для МК они все равно будут последовательно считываться, несмотря на "физически размещенную чехарду".
да и прокладка трасс линий адреса/данных многое меняет - это ежли реал-макет делается
Andy, который реальный тест проводил (выше ссылка была) проложил трассы как попало: Спойлер но использовал SRAM Alliance AS7C4096A 12ns 44 pin TSOP-II Latch NXP 74AHC373 20 pin TSSOP-20 первоисточник перевода на радиолоцмане: https://andybrown.me.uk/2011/08/28/512k ... ega-build/ з.ы. там цивильная разводка того же есть
Искал почему в Протеусе внешняя память не пишется, не читается. Когда ввел для задержек микру с инверторами - Протеус заработал. Об этом написано в предыдущем моем посте. В реале наверняка придется сделать как в Протеусе, те ввести микру с инверторами. Про недостаточность задержек в процессоре упоминается в его даташите.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения