|
|
  |
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 лет почти проработала) или в защёлке не родной ?
Заранее благодарен за любую помощь !
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 13 2017, 20:51
|

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

|
Цитата(Baser @ Apr 13 2017, 19:52)  Там нужно проверять все задержки на шине, чтобы все было в допусках. Смотреть настройки wait-стейтов. Привезли две UT6264LP-70... Завтра буду пробовать в купе с ALS373. ИМХО схема изначально была собрана внатяг, на грани фолла то бишь... У 8515 тайминги на чтенеие/запись внешней SRAM 55-70 нс. А у HM62256 120-150 нс. Но на честном слове всё это "как-то" работало. Поставив НС я их окончательно растянул и поэтому такая чушь пишется. Но читается всё чётко  Буду пробовать... Цитата(zombi @ Apr 13 2017, 20:24)  Ищите HCT Да в том-то и дело что нет ни у кого в городе... Забыли все уже эту древность. Все на 3-х волльтах уже давно.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 14 2017, 13:02
|

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

|
Цитата(zombi @ Apr 13 2017, 20:24)  Ищите HCT Поставил 74LS373 - вообще перестала читать... Вернул назад 74HC573 и поставил UT6264LP-70 - всё как-бы заработало. Написал тест заливающий все 8К сначала "0", проверяет... Затем "FF", проверяет, Затем "AA" т.е "10101010" и проверяет... По нулям на все 8К - 1-2 ошибки, либо их вообще нет. По FF - 12-20 ошибок, по "AA" - нет ошибок...  Исходя из этого, сообразил, что пишет всё как надо, а вот читает с глюками... Поставил 74ALS573 - ошибки уменьшились на 1/3. Убрал дополнительный цикл - ошибки уменьшились на половину. Вернул защелку HC обратно, и установил дополнительный цикл для чтения/записи. 10-20 ошибок по всем тестам. Тест чтения выдаёт каждый раз ошибки в разных адресах. Читает криво... Пишет хорошо...  Похоже Вы правы. Нужно искать HCT...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 14 2017, 13:44
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(manul78 @ Apr 14 2017, 16:02)  Читает криво... Пишет хорошо...  Не могу понять как такое возможно. Регистр просто защёлкивает младший байт адреса и делает это одинаково и при чтении и при записи. Может Ваши тесты не дают верного результата? В DS на ATmega8515 в разделе "Address Latch Requirements" всё довольно доходчиво описано. И там как раз пишут что при 4V и 8MHz должна HC работать. Ничего не понимаю Лично я всегда ставил HCT защёлку и проблем не было. Правда последнее изделие с защёлкой было эдак лет 15 назад.
|
|
|
|
|
Apr 14 2017, 17:16
|

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

|
Цитата(zombi @ Apr 14 2017, 16:44)  Может Ваши тесты не дают верного результата ? Я уже накатал 4 теста. Все 8К я заполняю нулями, FF, AA, и в цикле последовательно числами от 0 до FF. После каждого заполнения несколько раз читаю и сверяю, и ошибки вылазят почти всегда в разных адресах. Это говорит о том, что запись прошла успешно. Проблема с чтением. Между памятью и МК только защёлка. НС это чистый КМОП с уровнями в 3 В, НСТ это кмоп с ТТЛ выходами. Думаю, что собака здесь зарыта. Работала-же вся эта схема с атмегой на 8 МГц и медленной 120-150нс памятью без проблем много лет. P.s. На "буржуйских" сайтах советуют снизить тактовую частоту или пробовать более быструю SRAM, минимум 50-55нс.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 14 2017, 17:45
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(manul78 @ Apr 14 2017, 20:16)  Работала-же вся эта схема с атмегой на 8 МГц и медленной 120-150нс памятью без проблем много лет. А чего же ей не работать, если судя по вр. диаграмме адрес на ногах sram будет в течении практически двух тактов процессора - Tpd регистра. Цитата(manul78 @ Apr 14 2017, 20:16)  На "буржуйских" сайтах советуют снизить тактовую частоту или пробовать более быструю SRAM, минимум 50-55нс.  Не думаю что дело в скорости sram. Sram и регистр меняли, а мегу -? Цитата(manul78 @ Apr 13 2017, 23:51)  У 8515 тайминги на чтенеие/запись внешней SRAM 55-70 нс С чего это при тактовой 8MHz будет 55-70нс???? Опять же судя по вр. диаг. будет 250нс-Tpd ~ 220нс или около того На шине данных кроме МК, регистра и SRAM есть что-то ? не может ли мешать чтению?
|
|
|
|
|
Apr 15 2017, 06:18
|

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

|
Цитата(zombi @ Apr 14 2017, 16:44)  В DS на ATmega8515 в разделе "Address Latch Requirements" всё довольно доходчиво описано. И там как раз пишут что при 4V и 8MHz должна HC работать. Ничего не понимаю Лично я всегда ставил 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 - Apr 15 2017, 07:10
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 15 2017, 12:54
|

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

|
Цитата(manul78 @ Apr 15 2017, 09:18)  the typical old style 74HC series latch becomes inadequate. Такие дела...  HC серия ведёт себя неадекватно на 8 МГц... Немного некорректно перевели, там смысл другой. Защелка 74HC будет вести себя совершенно адекватно  Просто для данной схемы включения на такой частоте кварца её задержки распространения сигнала становятся "неадекватно большими" и предлагается применить защелку из более быстрой серии AHC Я вам уже предлагал разрисовать диаграммы чтения и записи и проверить все важные задержки на мин/макс Иначе ничего не получиться. Я так всегда делал, когда внешние параллельные шины применял. И выходные уровни памяти тоже проверьте, они ТТЛ (тоже писал), уровень единицы может быть низковат для Меги. Если очень низкий, можно подтянуть разряды шины к +5В через резисторы.
|
|
|
|
|
Apr 15 2017, 19:13
|

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

|
Цитата(zombi @ Apr 15 2017, 20:04)  Похоже надо несколько раз писать одно и тоже, поскольку ТС до сих под удивляется почему оно работало со 120-150 нс-кундной памятью без дополнительных wait states. Ребята, просто винигрет у меня в голове, да и не так силён я в работе с внешней памятью. Как-то не приходилось сталкиваться настолько близко. Сейчас взял даташиты на все используемые в цепочке микросхемы, распечатал временные диаграммы и сижу курю их. С налёта "крепость" взять не получилось...  Буду брать по медленно, основательно подготовившись. Честно говоря уже спортивная злость появилась. В любом случае я её "схему" добью, даже если придётся лезть в глаза и брать напрокат крутой четырёхканальный пишущий осциллограф. Цитата(k155la3 @ Apr 15 2017, 20:34)  Пропишите всю память словами (по 2 байта) с содержимым == адресу слова. Проверьте на чтение - что куда попадает. За алгоритм теста - отдельное спасибо.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 17 2017, 08:05
|

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

|
 Написал новый ТЕСТ, который забивает память байтами от 0 до FF... Читаем. Видим, что случайно, каждый раз по разным адресам считывается младший адресный байт, а не байт данных... Причём это не всегда, а где-то 5-10 случаев на страницу в 8К. Народ ! У меня уже что-то голова не варит совсем. Это что ? Как такое может быть ? МК выставляет младший и старший адрес на шину. Защёлкивает. Даёт сигнал чтения RD и читает сам себя что-ли ? "Остатки" младшего адреса заместо выставленных памятью данных ? Чушь какая-то...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|