|
ATmega8515 + SRAM, Читает чисто, пишет с ошибками и путает адреса... |
|
|
|
Apr 13 2017, 15:31
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Доброго всем время суток !
Ковыряю/ремонтирую древний промышленный девайс. Суть: Есть Атмега8515 с внешним кварцем на 7.3728 MHz, к которой подключена SRAM HM62256LP-12 аж 1988-го года выпуска. Судя по схеме из 32Кбайт используется только 8К. Регистр защёлка сдох. Был 74HCT573... Так как в магазинах оригинала не нашел - поставил то-же, но только HC. Схема завелась. Написал быстро программку чтения/записи для проверки. Читает всё чётко без ошибок. А вот пишет с ошибками. Причём не только данные, иногда путает адреса. Заливал все 8К "нулями" - где-то 5% ошибок. Заливал "FF" ошибок практически нет. Писал рандомно - иногда путает адреса, но данные пишет. Удержание на один такт программно увеличивал - ошибок меньше но они есть.
Вопрос: Я думаю что дело в защёлке, но оригинал взять негде. Есть в наличии 74LS373, 74ALS373 (выпаянные со старой компьютерной платы), можно попробовать ? Или другую серию искать ? Ещё раз повторюсь, в оригинале стояла защёлка HCT, то есть КМОП с ТТЛ уровнями, SRAM тоже с КМОП с ТТЛ. Из 573 нашел только HC. В чём загвоздка ? В медленной памяти (120 нс и возможно полудохлой от старости, всё-же 30 лет почти проработала) или в защёлке не родной ?
Заранее благодарен за любую помощь !
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
 |
Ответов
(45 - 53)
|
Apr 19 2017, 09:53
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(zombi @ Apr 19 2017, 00:31)  И какая максимально медленная память в принципе должна работать, без дополнительных wait states, согласно Ваших расчётов? Написал же, что не смотрел - уснул. Может быть сегодня вечером гляну, если снова не усну  Цитата(manul78 @ Apr 19 2017, 00:46)  Базовая схема подразумевает что CE1 тупо посажен на землю, а ~CE2 на шину питания.То есть IO памяти всё время открыты. Всякие там входы типа Chip Enable, Chip Select, и т.д. и их инверсии применяются исключительно для облегчения построения адресных дешифраторов в случае, когда на шине находится несколько устройств. Типа как я когда то делал: SRAM 8K, внешние регистры 74HC на ввод и вывод, второй УАРТ 16С550. Там нужно разделять адресное пространство. Когда на шине только одно устройство, как у вас, все эти ноги подключаются к разрешающим уровням постоянно. При этом если сигналы RD (OE) и WR (WE) пассивны (высокие), то шина данных памяти находится в Z-состоянии. Цитата(manul78 @ Apr 19 2017, 08:28)  Под "открыты" я имел в виду что они не в высокоомном состоянии, и их входные цепи могут как-то держать заряды. За счет внутреней емкости входов например. Как я еще могу объяснить нахождение на мультиплексированной шине маладшего адреса в момент когда МК уже перевел их с выхода на вход и читает данные? Терминология у вас неправильная, поэтому сложно вас понимать. У любого сигнала есть "задержка распространения", они и описаны в даташитах, и они и определяют "времянку". Когда вы подали сигнал чтения на вход памяти - данные на выходе появятся только через это время. И снимутся они тоже только через некоторое время. Для записи вам нужно, чтобы на входах памяти данные были заранее перед стробом записи. И держаться после строба тоже еще определенное время. Иначе будут сбои как у вас. Вот вы все картинки показываете, а они то типовые, всем хорошо известны. Важны именно цифры.
|
|
|
|
|
Apr 19 2017, 10:25
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Всем доброго дня ! Когда сегодня 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 лет назад.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 19 2017, 10:58
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Цитата(Baser @ Apr 19 2017, 12:53)  Для записи вам нужно, чтобы на входах памяти данные были заранее перед стробом записи. И держаться после строба тоже еще определенное время. Иначе будут сбои как у вас.
Вот вы все картинки показываете, а они то типовые, всем хорошо известны. Важны именно цифры. После того как я заменил 62256-10 на 6264-70 - к записи данных претензий не было. Проблема была с чтением. Да и как я мог оперировать временными параметрами, если использовал аппаратный интерфейс микроконтроллера 8515 для работы с внешней памятью ?  Там всего 4 бита управления задействованы. SRW - вкл/выкл интерфейс. SRW10 и SRW11 - выбор числа тактов ожидания (4 варианта соответственно) XMBK - Bus Keeper вкл/выкл. Про биты разрядности старшего байта XMM0, XMM1, XMM2 и биты определения секторов внешней памяти SRL0, SRL1, SRL2 я молчу, они роли не играют.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 19 2017, 11:55
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Цитата(zombi @ Apr 19 2017, 14:24)  Еще в #9 сообщении я спросил меняли ли мегу. Но ТС с шутками, прибаутками и анекдотами упорно продолжал тулить какие-то триггера и делать странные умозаключения. Адрес буржуйского форума держите в секрете? Да что-то за 20 лет практики (промышленное оборудование) не сталкивался в полудохлыми МК, обычно на МК думаешь в самую последнюю очередь. Ну бывало порты выгорали, прошивка слетала, крыша съезжала у МК тоже встречал, но вот чтобы "то работает то нет" это первый случай. Обычно в промышленности используются довольно надёжные крепкие и толерантные к помехам схемы. Да и менять то было не на что. https://wiki.mcselec.com/bavr/Adding_XRAM_w...emory_Interface
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 19 2017, 18:23
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Пользуясь случаем, дабы не создавать новый топик, хочу спросить у тех кто много работал/работает с 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.
Сообщение отредактировал manul78 - Apr 19 2017, 19:01
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|