Перейти к содержанию
    

Доброго всем время суток !

 

Ковыряю/ремонтирую древний промышленный девайс. Суть: Есть Атмега8515 с внешним кварцем на 7.3728 MHz, к которой подключена SRAM HM62256LP-12 аж 1988-го года выпуска. Судя по схеме из 32Кбайт используется только 8К. Регистр защёлка сдох. Был 74HCT573... Так как в магазинах оригинала не нашел - поставил то-же, но только HC. Схема завелась. Написал быстро программку чтения/записи для проверки.

Читает всё чётко без ошибок. А вот пишет с ошибками. Причём не только данные, иногда путает адреса.

Заливал все 8К "нулями" - где-то 5% ошибок. Заливал "FF" ошибок практически нет. Писал рандомно - иногда путает адреса, но данные пишет.

Удержание на один такт программно увеличивал - ошибок меньше но они есть.

 

Вопрос: Я думаю что дело в защёлке, но оригинал взять негде. Есть в наличии 74LS373, 74ALS373 (выпаянные со старой компьютерной платы), можно попробовать ? Или другую серию искать ? Ещё раз повторюсь, в оригинале стояла защёлка HCT, то есть КМОП с ТТЛ уровнями, SRAM тоже с КМОП с ТТЛ. Из 573 нашел только HC. В чём загвоздка ? В медленной памяти (120 нс и возможно полудохлой от старости, всё-же 30 лет почти проработала) или в защёлке не родной ?

 

Заранее благодарен за любую помощь !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заранее благодарен за любую помощь !

проверьте для начала питание.. за столько лет оно могло уплыть.. защелки просто так не дохнут..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда-то давно применял подобную комбинацию, еще с AT90S8515.

Там нужно проверять все задержки на шине, чтобы все было в допусках.

Смотреть настройки wait-стейтов.

И может понадобиться защелка типа 74AHC

 

И память HM62256LP-12 вроде имеет ТТЛ выходные уровни, работать с КМОП входами Меги должно внатяг.

За годы работы уровни могли поплыть - тогда это уже не чиниться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там нужно проверять все задержки на шине, чтобы все было в допусках.

Смотреть настройки wait-стейтов.

 

Привезли две UT6264LP-70... Завтра буду пробовать в купе с ALS373.

 

ИМХО схема изначально была собрана внатяг, на грани фолла то бишь... У 8515 тайминги на чтенеие/запись внешней SRAM 55-70 нс. А у HM62256 120-150 нс. Но на честном слове всё это "как-то" работало.

 

Поставив НС я их окончательно растянул и поэтому такая чушь пишется. Но читается всё чётко :)

 

Буду пробовать...

 

Ищите HCT

 

Да в том-то и дело что нет ни у кого в городе... Забыли все уже эту древность. Все на 3-х волльтах уже давно.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ищите HCT

 

Поставил 74LS373 - вообще перестала читать...

Вернул назад 74HC573 и поставил UT6264LP-70 - всё как-бы заработало. Написал тест заливающий все 8К сначала "0", проверяет... Затем "FF", проверяет, Затем "AA" т.е "10101010" и проверяет...

По нулям на все 8К - 1-2 ошибки, либо их вообще нет. По FF - 12-20 ошибок, по "AA" - нет ошибок... :(

Исходя из этого, сообразил, что пишет всё как надо, а вот читает с глюками...

Поставил 74ALS573 - ошибки уменьшились на 1/3. Убрал дополнительный цикл - ошибки уменьшились на половину.

Вернул защелку HC обратно, и установил дополнительный цикл для чтения/записи. 10-20 ошибок по всем тестам.

Тест чтения выдаёт каждый раз ошибки в разных адресах.

Читает криво... Пишет хорошо... :(

 

Похоже Вы правы. Нужно искать HCT...

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читает криво... Пишет хорошо... :(

Не могу понять как такое возможно.

Регистр просто защёлкивает младший байт адреса и делает это одинаково и при чтении и при записи.

Может Ваши тесты не дают верного результата?

 

В DS на ATmega8515 в разделе "Address Latch Requirements" всё довольно доходчиво описано.

И там как раз пишут что при 4V и 8MHz должна HC работать. Ничего не понимаю :wacko:

Лично я всегда ставил HCT защёлку и проблем не было.

Правда последнее изделие с защёлкой было эдак лет 15 назад.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может Ваши тесты не дают верного результата ?

 

Я уже накатал 4 теста. Все 8К я заполняю нулями, FF, AA, и в цикле последовательно числами от 0 до FF.

После каждого заполнения несколько раз читаю и сверяю, и ошибки вылазят почти всегда в разных адресах. Это говорит о том, что запись прошла успешно. Проблема с чтением. Между памятью и МК только защёлка. НС это чистый КМОП с уровнями в 3 В, НСТ это кмоп с ТТЛ выходами. Думаю, что собака здесь зарыта.

Работала-же вся эта схема с атмегой на 8 МГц и медленной 120-150нс памятью без проблем много лет.

 

P.s.

На "буржуйских" сайтах советуют снизить тактовую частоту или пробовать более быструю SRAM, минимум 50-55нс. :)

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работала-же вся эта схема с атмегой на 8 МГц и медленной 120-150нс памятью без проблем много лет.

А чего же ей не работать, если судя по вр. диаграмме адрес на ногах sram будет в течении практически двух тактов процессора - Tpd регистра.

 

На "буржуйских" сайтах советуют снизить тактовую частоту или пробовать более быструю SRAM, минимум 50-55нс. :)

Не думаю что дело в скорости sram.

 

Sram и регистр меняли, а мегу -?

 

 

У 8515 тайминги на чтенеие/запись внешней SRAM 55-70 нс

С чего это при тактовой 8MHz будет 55-70нс????

Опять же судя по вр. диаг. будет 250нс-Tpd ~ 220нс или около того

 

На шине данных кроме МК, регистра и SRAM есть что-то ? не может ли мешать чтению?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В DS на ATmega8515 в разделе "Address Latch Requirements" всё довольно доходчиво описано.

И там как раз пишут что при 4V и 8MHz должна HC работать. Ничего не понимаю :wacko:

Лично я всегда ставил HCT защёлку и проблем не было.

Правда последнее изделие с защёлкой было эдак лет 15 назад.

 

Даташит на атмегу8515 стр 26:

 

Due to the high-speed operation of the XRAM interface, the address latch must be

selected with care for system frequencies above 8 MHz @ 4V and 4 MHz @ 2.7V.

When operating at conditions above these frequencies, the typical old style 74HC series

latch becomes inadequate. The external memory interface is designed in compliance to

the 74AHC series latch. However, most latches can be used as long they comply with

the main timing parameters.

 

Из-за высокой скорости работы интерфейса XRAM, адресная защелка должна быть

Выбранный с осторожностью для системных частот выше 8 МГц при 4 В и 4 МГц при 2,7 В.

При работе в условиях выше этих частот типичная серия 74HC старого стиля

Защелка становится неадекватной. Интерфейс внешней памяти разработан в соответствии с

Защелка серии 74AHC. Однако большинство защелок можно использовать, если они соответствуют

 

 

Такие дела... :( HC серия ведёт себя неадекватно на 8 МГц...

 

К тому-же, во всех примерах найденных мною в сети почему-то забыли про бит дополнительного контрольного регистра EMCUCR SRW11, который даёт возможность помимо дополнительного цикла в MCUCR SWR10 добавить ещё 2 цикла ожидания для чтения/записи, и 1 цикл для выставления адреса.

 

Table 3. Wait States(1)

SRW11 SRW10 Wait States

0 0 No wait states.

0 1 Wait one cycle during read/write strobe.

1 0 Wait two cycles during read/write strobe.

1 1 Wait two cycles during read/write and wait one cycle before driving out new address.

 

Просто биты управления находяться в разных регистрах, и все трындят про только один дополнительно возможный цикл. Это не так... :)

 

Буду пробовать.

 

А вообще, думаю дизассемблировать родную заводскую прошивку. Надо было сразу так сделать. Слава Богу она была не залочена и я её спокойно вынул из МК.

Как-то же работала схема с тупой и древней 120-150 нс-кундной памятью.

Изменено пользователем manul78

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

the typical old style 74HC series latch becomes inadequate.

 

Такие дела... :( HC серия ведёт себя неадекватно на 8 МГц...

Немного некорректно перевели, там смысл другой.

Защелка 74HC будет вести себя совершенно адекватно :)

 

Просто для данной схемы включения на такой частоте кварца её задержки распространения сигнала становятся "неадекватно большими" и предлагается применить защелку из более быстрой серии AHC

 

Я вам уже предлагал разрисовать диаграммы чтения и записи и проверить все важные задержки на мин/макс

Иначе ничего не получиться. Я так всегда делал, когда внешние параллельные шины применял.

 

И выходные уровни памяти тоже проверьте, они ТТЛ (тоже писал), уровень единицы может быть низковат для Меги.

Если очень низкий, можно подтянуть разряды шины к +5В через резисторы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(тоже писал)

Похоже надо несколько раз писать одно и тоже, поскольку ТС до сих под удивляется почему оно работало со 120-150 нс-кундной памятью без дополнительных wait states.

 

Как-то же работала схема с тупой и древней 120-150 нс-кундной памятью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте запитать весь девайс от проверенного источника питания требуемым напряжением и без импульсных помех.

На микросхемах контроллера, регистра, памяти добавьте блок. конденсаторы по питанию.

Пропишите всю память словами (по 2 байта) с содержимым == адресу слова.

Проверьте на чтение - что куда попадает.

Нет ли на плате рядом (или рядом с платой) источника помех.

etc

 

PS

Памяти сдохшего регистра ....

Проверьте монтаж (под микроскопом), непропаи, контакты.

Проверьте работу платы на цикл. тесте, на предмет реакции на вибрацию, легкий изгиб итп.

 

Изменено пользователем k155la3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже надо несколько раз писать одно и тоже, поскольку ТС до сих под удивляется почему оно работало со 120-150 нс-кундной памятью без дополнительных wait states.

 

Ребята, просто винигрет у меня в голове, да и не так силён я в работе с внешней памятью. Как-то не приходилось сталкиваться настолько близко.

 

Сейчас взял даташиты на все используемые в цепочке микросхемы, распечатал временные диаграммы и сижу курю их. С налёта "крепость" взять не получилось... :( Буду брать по медленно, основательно подготовившись. Честно говоря уже спортивная злость появилась. В любом случае я её "схему" добью, даже если придётся лезть в глаза и брать напрокат крутой четырёхканальный пишущий осциллограф.

 

 

Пропишите всю память словами (по 2 байта) с содержимым == адресу слова.

Проверьте на чтение - что куда попадает.

 

За алгоритм теста - отдельное спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

SRAM_test.jpg

 

Написал новый ТЕСТ, который забивает память байтами от 0 до FF...

Читаем. Видим, что случайно, каждый раз по разным адресам считывается младший адресный байт, а не байт данных...

Причём это не всегда, а где-то 5-10 случаев на страницу в 8К.

 

Народ ! У меня уже что-то голова не варит совсем. Это что ? Как такое может быть ?

 

МК выставляет младший и старший адрес на шину. Защёлкивает. Даёт сигнал чтения RD и читает сам себя что-ли ? "Остатки" младшего адреса заместо выставленных памятью данных ?

 

Чушь какая-то... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...