zombi 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба А по моему троллите меня Вы! Вы пишете одно, предполагаете другое и предполагаете ошибочно. Как вас понять? как отвечать? Форум буржуйский озвучите? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба И какая максимально медленная память в принципе должна работать, без дополнительных wait states, согласно Ваших расчётов? Написал же, что не смотрел - уснул. Может быть сегодня вечером гляну, если снова не усну :) Базовая схема подразумевает что CE1 тупо посажен на землю, а ~CE2 на шину питания.То есть IO памяти всё время открыты. Всякие там входы типа Chip Enable, Chip Select, и т.д. и их инверсии применяются исключительно для облегчения построения адресных дешифраторов в случае, когда на шине находится несколько устройств. Типа как я когда то делал: SRAM 8K, внешние регистры 74HC на ввод и вывод, второй УАРТ 16С550. Там нужно разделять адресное пространство. Когда на шине только одно устройство, как у вас, все эти ноги подключаются к разрешающим уровням постоянно. При этом если сигналы RD (OE) и WR (WE) пассивны (высокие), то шина данных памяти находится в Z-состоянии. Под "открыты" я имел в виду что они не в высокоомном состоянии, и их входные цепи могут как-то держать заряды. За счет внутреней емкости входов например. Как я еще могу объяснить нахождение на мультиплексированной шине маладшего адреса в момент когда МК уже перевел их с выхода на вход и читает данные? Терминология у вас неправильная, поэтому сложно вас понимать. У любого сигнала есть "задержка распространения", они и описаны в даташитах, и они и определяют "времянку". Когда вы подали сигнал чтения на вход памяти - данные на выходе появятся только через это время. И снимутся они тоже только через некоторое время. Для записи вам нужно, чтобы на входах памяти данные были заранее перед стробом записи. И держаться после строба тоже еще определенное время. Иначе будут сбои как у вас. Вот вы все картинки показываете, а они то типовые, всем хорошо известны. Важны именно цифры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Всем доброго дня ! Когда сегодня 19 апреля 2017-го года я утром выглянул в окно и увидел, что выпало 15 см снега я подумал, что теперь меня уже ничем не удивишь, тем более глюками с МК... :) Но это так... лирическое отступление. Значится так. Первым делом сегодня я проверил сохраненные фьюзы родной заводской прошивки. И таки да. 4 МГц внутреннего генератора. Вероятно поляки посадили кварц на 7.3728 МГц и вывели RS-232 для каких-то своих отладочных целей, или это просто базовая плата МК с памятью, универсальная для разных применений. Вот что и изначально сбило меня. До 10 утра гонял тесты с моей доработкой в виде D-триггера. Ошибок нет от слова ВООБЩЕ. Так как родная прошивка работает на 4 МГц и надо проверить работу памяти на этой частоте - спаял приблуду на К176ИД2 и семисегментном индикаторе дабы видеть результаты тестов без использования USART. Прогнал тесты на 4 МГц-ах - ошибок нет. Залил заводскую прошивку и поставил на оборудование. В тестовом режиме разумеется... :) Всё работает. В 11 часов привозят новую АТмегу8515 в DIP40... Время есть. Решил проверить ВСЁ. Подцепил новую АТмегу. Залил тесты. Всё работает. Ошибок нет. Отцепил свой триггер и вернул всё в назад как было изначально. И... Всё работает. Ошибок нет. Переключился на внешний кварц 7.3728 - всё работает. Ошибок нет. Решил добить всю схему до конца и поставил старую родную память HM62256-120, защёлку оставил 74ALS573, не стал менять на НС. Прогнал тест. На 7.3728 - более 10% ошибок, то есть более 800 на 8Кб. На 4 МГц - менее 0.1% ошибок, то есть 1-2 на 8Кб. Ставил дополнительные циклы - изменения незначительные. На 7.3728МГц - куча ошибок, на 4 МГц - 1-2... Исходя из этого, вернул UT6264, залил заводскую прошивку, выставил 4 Мгц внутреннего генератора и поставил на оборудование. Всё работает. Считаю, что проблема была комплексная. Старая АТмега8515 с поплывшими мозгами/портами + сдохшая не известно по какой причине защёлка + тупая 120нс память 88-го года выпуска. Прошу всех извинить меня за резкости и кривую постановку задачи и её обсуждение. Торопился, злился, писал с телефона и пр... :) Тему можно считать закрытой. Всем огромное спасибо за помощь и сотрудничество ! P.s. Для тех кому интересно, оборудование - австрийский термопластавтомат ENGEL, доработанный поляками и проданный в Россию 15 лет назад. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Поздравляю! :) Но терминологию подтяните... :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Для записи вам нужно, чтобы на входах памяти данные были заранее перед стробом записи. И держаться после строба тоже еще определенное время. Иначе будут сбои как у вас. Вот вы все картинки показываете, а они то типовые, всем хорошо известны. Важны именно цифры. После того как я заменил 62256-10 на 6264-70 - к записи данных претензий не было. Проблема была с чтением. Да и как я мог оперировать временными параметрами, если использовал аппаратный интерфейс микроконтроллера 8515 для работы с внешней памятью ? :) Там всего 4 бита управления задействованы. SRW - вкл/выкл интерфейс. SRW10 и SRW11 - выбор числа тактов ожидания (4 варианта соответственно) XMBK - Bus Keeper вкл/выкл. Про биты разрядности старшего байта XMM0, XMM1, XMM2 и биты определения секторов внешней памяти SRL0, SRL1, SRL2 я молчу, они роли не играют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Подцепил новую АТмегу. Залил тесты. Всё работает. Ошибок нет. Отцепил свой триггер и вернул всё в назад как было изначально. И... Всё работает. Ошибок нет. Переключился на внешний кварц 7.3728 - всё работает. Ошибок нет. Еще в #9 сообщении я спросил меняли ли мегу. Но ТС с шутками, прибаутками и анекдотами упорно продолжал тулить какие-то триггера и делать странные умозаключения. Адрес буржуйского форума держите в секрете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Еще в #9 сообщении я спросил меняли ли мегу. Но ТС с шутками, прибаутками и анекдотами упорно продолжал тулить какие-то триггера и делать странные умозаключения. Адрес буржуйского форума держите в секрете? Да что-то за 20 лет практики (промышленное оборудование) не сталкивался в полудохлыми МК, обычно на МК думаешь в самую последнюю очередь. Ну бывало порты выгорали, прошивка слетала, крыша съезжала у МК тоже встречал, но вот чтобы "то работает то нет" это первый случай. Обычно в промышленности используются довольно надёжные крепкие и толерантные к помехам схемы. Да и менять то было не на что. :) https://wiki.mcselec.com/bavr/Adding_XRAM_w...emory_Interface Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба Вот за что я уважаю буржуйские форумы https://wiki.mcselec.com/bavr/Adding_XRAM_w...emory_Interface Как оказалось и на буржуйских сайтах можно чушь прочитать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 19 апреля, 2017 Опубликовано 19 апреля, 2017 (изменено) · Жалоба :bb-offtopic: Пользуясь случаем, дабы не создавать новый топик, хочу спросить у тех кто много работал/работает с AVR Studio У меня стоит студия "Семёрка". Но в ней нет симуляции 8515... Считается древним камнем. В AVR Studio 4.19 разумеется есть симулятор. Вопрос: Можно заставить в настройках видеть в окнах Memory помимо Data,I/O,EEPROM,Reg видеть внешнюю память ? По умолчанию доступна только внутренняя. Настройки Linker-а на студию как я понял не действуют. То есть я распределяю "кучу", стек, и пр. Всё как надо. Upd: Нашел... Debug --> AVR Simulation options (Alt + O) --> Device selection --> галочка Use External memory. Изменено 19 апреля, 2017 пользователем manul78 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться