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

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

|
Цитата(manul78 @ Apr 17 2017, 11:05)  случайно, каждый раз по разным адресам считывается младший адресный байт, а не байт данных...
МК выставляет младший и старший адрес на шину. Защёлкивает. Даёт сигнал чтения RD и читает сам себя что-ли ? "Остатки" младшего адреса заместо выставленных памятью данных ? Вам нужно еще раз внимательно прочитать, как работает мультиплексная Интеловская внешняя шина. То, что вы видите, типичное нарушение "времянки" работы шины. Причем сбои могут быть как при записи, так и при чтении, по этому тесту непонятно где. МК выставляет младший и старший адрес на шину. Защёлкивает младший байт адреса. Потом выдает на те же линии данные для записи или выдает строб чтения и ждет на этой линии данные из памяти. Если защелка медленная, она держит данные на DA7:0 слишком долго и возникает коллизия из-за того, что или МК или память выводят значения данных на DA7:0. Кто-то из двух будет пересиливать, данные будут неправильные. На осциллографе коллизии хорошо видны в виде третьих уровней на диаграммах, около половины питания. Еще Bus keeper (XMBK) будет влиять на работу, с ним разберитесь.
|
|
|
|
|
Apr 17 2017, 16:33
|

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

|
Цитата(Baser @ Apr 17 2017, 14:31)  МК выставляет младший и старший адрес на шину. Защёлкивает младший байт адреса. Потом выдает на те же линии данные для записи или выдает строб чтения и ждет на этой линии данные из памяти. Еще Bus keeper (XMBK) будет влиять на работу, с ним разберитесь. Похоже я где-то рядом... Те кто разрабатывал схему тупо посадили ногу (Enable and read register (transparent mode)) OE защёлки на землю... Защелка не переходит после фиксации в Z состояние. На шине получается висит младший адрес... Получается мне надо привязать эту ногу через инвертор к сигналу ALE ?
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 17 2017, 17:11
|

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

|
Цитата(manul78 @ Apr 17 2017, 19:33)  Те кто разрабатывал схему тупо посадили ногу OE защёлки на землю Правильно сделали. Цитата(manul78 @ Apr 17 2017, 19:33)  ... Защелка не переходит после фиксации в Z состояние. И не должна она никуда переходить. Цитата(manul78 @ Apr 17 2017, 19:33)  На шине получается висит младший адрес... И правильно делает. Именно младший адрес и должен там висеть. Цитата(manul78 @ Apr 17 2017, 19:33)  Получается мне надо привязать эту ногу через инвертор к сигналу ALE ? Зачем? Ненужно его никуда привязывать. Цитата(manul78 @ Apr 17 2017, 19:33)  Похоже я где-то рядом... Судя по всему вы еще огого как далеко
|
|
|
|
|
Apr 18 2017, 08:14
|

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

|
Короче победил похоже... (Сейчас тесты гоняю) Аппаратно добил... У UT6264LP-70 в отличии от 62256 два сигнала стробирования СЕ и СЕ2 (инв) работающие в противофазе. Я по анлогии с 62256 повесил СЕ2 на +5 (у 62256 активный 0). Зря я это сделал. Отсюда и глюки... Сейчас я пустил сигнал ALE через 74ALS74 (ТМ2) то есть через D-триггер. Сигнал ALE через триггер выходит прямой на CE и инвертированный на СЕ2 соответственно. Плюс мелкая задержка на самом триггере за счет времени прохождения. Все. Ошибок нет. Пока нет...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 13:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(manul78 @ Apr 18 2017, 11:14)  Короче победил похоже... (Сейчас тесты гоняю) Аппаратно добил... . . . .  мудрено аднака. посмею предположить, что пока аппаратно решали проблему, то пропаяли неконтакт, и оно аннилигилировалосььььь. (извиняюсь за наглость) Выложите схему, так, ничего личного, просто посмотреть
|
|
|
|
|
Apr 18 2017, 16:35
|

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

|
Цитата(k155la3 @ Apr 18 2017, 16:31)  посмею предположить, что пока аппаратно решали проблему, то пропаяли неконтакт, и оно аннилигилировалосььььь Ничего подобного. Предыдущее сообщение ввело меня в сомнения и я вернул всё взад... Те-же грабли вылезли. Сейчас выложу следующим комментарием фундаментально что я делал почти 2(!) недели.  Значится так: Повторюсь. АТмега8515, защёлка 74HCT573 (дохлая), память HM62256-120 нс, кварц 7.3728 МГц (для RS-232) Схема подключения стандартная, коих как грязи в интернете. Единственная разница, что из 32К используются только 8К Выпаял "покойника", впаял "кроватку" и заменил его на 74HC573. Запустил... Пошли глюки. Считал прошивку. Залил свою с тестом и начались танцы с бубнами... Я выпаял память. Впаял кроватку и нашел такую-же микросхему памяти от старого принтера. Ошибки... Ошибки... Ошибки... Дикое количество. Менял "защёлки", ALS, LS, 573... 373... Ошибки, ошибки, ошибки... Рандомные. По разным адресам, разные данные... Менял настройки интерфейса памяти 8515, Bus keeper, дополнительные циклы и пр. НИХРЕНА. Всё те-же ошибки в разных местах. И питание дал чистейшее. И всё обвязал по питанию конденсаторами на 100N... И чего только не делал. Наконец принесли U6264-70 нс. Поставил. Загнал CE на землю и СЕ2 на плюс...  Было... HM62256-120  Стало... U6264-70 Остальное осталось как и было. Защёлка НС573 Прогнал тест. Количество ошибок уменьшилось в разы... на 8К где-то 20-30... Сменил защёлку на ALS. Ошибок стало ещё меньше 5-10... И нарисовалась чёткая тенденция. Заместо данных из памяти МК читает значение младшего адреса. И опять я и биты MCUCR и EMCUCR менял и чего только не делал... Нихрена. 5-10 ошибок по разным совершенно непредсказуемым адресам... Начал крепко курить даташиты: ATmega8515  HM 64256-120    И её таблица...  Теперь UT 6264-70...    "Дьявол как известно прячется в деталях..." (с) Внимательно читаем notes... Что я сделал: Взял обычный D-триггер 74AST74 (он-же ТМ2) На ноги D и Clock подал сигнал ALE с 8515. Выход Q на LE защёлки... Выход ~Q на ~CE2 памяти 6264.. Что это даёт. Когда положительный строб ALE заставляет защёлку запомнить младший адрес на входе ~CE2 памяти низкий уровень, который переводит её входы/выходы в Z состояние и соответственно после снятия сигнала ALE память оживает и не имеет на своих входах "мусора" как если-бы она всегда находилась в активном состоянии в ожидании чтения/записи. Вот такие дела...
Сообщение отредактировал manul78 - Apr 18 2017, 16:00
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 17:00
|

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

|
Можете конечно заявить, что всё через ж.пу, и противоречит гарвардской архитектуре и интеловским даташитам, но тем не менее всё работает...
На последок старый советский анекдот: Горный аул. Житель заходит к соседу. - Слушай, завтра сына женю, одолжи барана! - Не могу, но вот тебе совет : сходи к тому дому, там тебе дадут барана! Пошел к тому дому. - Слушай, завтра сына женю, одолжи мне барана! - Не могу, но вот тебе совет: сходи вон к тому дому, там тебе дадут барана! Пошел к вон тому дому. - Слушай, я завтра сына женю, одолжи мне одного барана! - Не могу, но вот тебе совет - сходи к дальнему дому, уж там тебе точно дадут барана! Ходил, ходил, ходил... встречает аксакала: - Слушай, отец! Почему мне никто не дает барана, но все дают совет, где взять барана?! - Потому, дорогой, что у нас не страна баранов. У нас - Страна Советов!!!
На просторах интернета масса теоретиков, которые паяльник-то в руках не держали ни разу. В теории всё работает. На деле, когда начинаешь возиться с железом - вылезает куча граблей и подводных камней. Я не хочу здесь никого обидеть, просто прошу давать советы тем, кто конкретно в железе работал с определенными устройствами, а не где-то слышал или видел...
P.S. Никак не доходят руки дизассемблировать родную заводскую прошивку устройства, но почему-то уверен, что обмен с памятью реализован обычным "ногодрыганьем", не смотря на наличие у 8515 специального интерфейса. Взялись похоже за проект (поляки кстати), помыкались, помыкались с "таймингами"и написали сами со своими задержками и пр. На 4 МГц (как во всех интернет примерах) я подозреваю что всё действительно работает, а вот на 8+ уже похоже нет...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 17:09
|

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

|
Цитата(manul78 @ Apr 18 2017, 19:35)  Когда положительный строб ALE заставляет защёлку запомнить младший адрес Попробуйте выяснить как работает защелка 74HC573 (Octal D-type transparent latch; 3-state) Цитата(manul78 @ Apr 18 2017, 20:00)  всё через ж.пу, и противоречит гарвардской архитектуре и интеловским даташитам Это Вы точно подметили. Если когда нибудь Вы всё таки разберётесь с гарвардской архитектурой и интеловскими даташитами, то будете сами над собой смеяться.
|
|
|
|
|
Apr 18 2017, 17:16
|

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

|
Цитата(zombi @ Apr 18 2017, 19:46)  Процессор меняли??? Я не знаю, с сарказмом это вопрос или серёзно, но в моём почти милионном городе 90% жителей занимаются перевпариванием продуктов чужого труда и приличных (относительно) радиомагазинов всего три. Если уж найти вонючую HCT573 которой цена три копейки оказалось проблемой, то уж древнюю атмегу8515 в PLCC 44 и подавно...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 17:31
|

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

|
Цитата(zombi @ Apr 18 2017, 20:09)  Попробуйте выяснить как работает защелка 74HC573 (Octal D-type transparent latch; 3-state)
Это Вы точно подметили. Если когда нибудь Вы всё таки разберётесь с гарвардской архитектурой и интеловскими даташитами, то будете сами над собой смеяться. Я прекрасно понимаю как она работает. И смеяться я над собой не буду... Потому что через ж..пу - но работает. А по всем правилам и канонам в данном конкретном случае - НЕТ  Замечу так-же, что шмель летает вопреки всем законам аэродинамики. Возможно, где-то в схеме сидит глюк, или просто уже старая мега мудрит...
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 18:27
|

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

|
Цитата(zombi @ Apr 18 2017, 20:37)  т.е. Ваши тесты идут. Осталось еще на оригинальной прошивке проверить Завтра проверю.  Кстати, по поводу того как работает 74HC573...  Вы это имели в виду, что "мусорные" значения остаются на входах до полного перехода LE в "ноль" ? И что мне это даст ? Используя интерфейс внешней памяти 8515 я могу оперировать только дополнительными циклами удержания RD RW, ну Bus Keeper ещё...
Сообщение отредактировал manul78 - Apr 18 2017, 18:54
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 19:28
|

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

|
Цитата(rx3apf @ Apr 18 2017, 22:13)  Я бы в такой ситуации, прежде чем играться с тестированием всего массива, зациклил бы одну пару операций запись-чтение и скопом ее родимую, скопом. Все времянки, как и что. И для полного счастья шину данных (один бит хотя бы) на полпитания притянул бы, чтобы отличать реальный вывод данных от Z-состояния.
Да, и о SRAM - быструю статику можно поискать на старых ненужных "четверках".  Я уже приводил скрин в чём была проблема. Причём каждый раз в совершенно разных адресах. МК читал с шины младший адрес вместо данных. Устранил я это подключением дополнительного D-триггера, который принудительно каждую процедуру чтения/записи в момент выставления на защёлку младшего адреса переводит входы/выходы микросхемы памяти в Z состояние и туда ничего не попадает. Активируется память только тогда когда на A0-A7 и A8-A15 нходится всё что надо. Никаких переходных процессов ни на шине данных ни на адресной шине память не "чует".
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 20:12
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Вовсе не факт, что читался младший байт адреса. Вполне может быть, что этот байт ЗАПИСЫВАЛСЯ в SRAM (вместо данных), а потом уже читался из SRAM совершенно корректно. И, если бы у меня была задача разобраться, как и что - я сказал, как сделал бы. Чтобы все ж понять, в чем причина, а не шаманить с бубном...
|
|
|
|
|
Apr 18 2017, 20:41
|

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

|
Upd: Вот за что я уважаю буржуйские форумы, так это то что там посетители максимально кратко и по делу отвечают на поставленные вопросы. Конкретно об ATmega8515. " If you do go with the external ram , be careful of the clock speed. Using a 4 MHz crystal , will require a SRAM with 70 nS access time or less. Also the data latch (74HC573) will have to be from a faster family such as a 74FHC573 if you go beyond 4 MHz. " Т.е. уже для 4 МГц уже нужна 70нс (и менее) память и быстрая "защёлка" серии FHC... Я при помощи "говна и палок" умудрился добиться стабильной работы 70нс памяти на 8 МГц-ах, то есть в 2 раза быстрее. Биты SRW10 и SRW11 у меня на максимуме уже. Дальше некуда. Теперь вопрос к полякам, у которых всё работало на 120нс-ой памяти и 8 МГц-ах... 1 машинный такт на 8 МГц-ах = 125нс... "Ногодрыганье" ? Буржуи так прямо и ответили: что это - невозможно. У меня уже чёт одно объяснение напрашивается, что кварц на 7.3728 подключен чисто для отладки,настройки по USART. А на самом деле МК работает от внутреннего генератора на более низких частотах 1 , 2 или 4 МГц... Завтра фьюзы посмотрю. Вот это будет номер... Цитата(rx3apf @ Apr 18 2017, 23:12)  Вовсе не факт, что читался младший байт адреса. Вполне может быть, что этот байт ЗАПИСЫВАЛСЯ в SRAM (вместо данных), а потом уже читался из SRAM совершенно корректно. И, если бы у меня была задача разобраться, как и что - я сказал, как сделал бы. Чтобы все ж понять, в чем причина, а не шаманить с бубном... Пишет всё чисто. Изначально. Кучу тестов прогнал... Читал криво. Причём в совершенно разных местах каждый прогон теста. Иногда даже вообще без ошибок.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 18 2017, 20:57
|

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

|
Цитата(manul78 @ Apr 18 2017, 23:41)  Upd: Вот за что я уважаю буржуйские форумы, так это то что там посетители максимально кратко и по делу отвечают на поставленные вопросы. Ну конечно буржуйские только правильно всегда говорят. Это ж не наши теоретики, паяльника никогда не державшие! Цитата(manul78 @ Apr 18 2017, 23:41)  Т.е. уже для 4 МГц уже нужна 70нс (и менее) память и быстрая "защёлка" серии FHC... Скорее всего Вас там просто тролят. Цитата(manul78 @ Apr 18 2017, 23:41)  Теперь вопрос к полякам, у которых всё работало на 120нс-ой памяти и 8 МГц-ах...  Фантастика судя по буржуйскому форуму. Я Вам еще раз повторяю : при тактовой частоте 7.372.800Hz должна работать даже 240-нс память без всяких SRW10 и SRW11. А что за буржуйский форум? просто интересно.
|
|
|
|
|
Apr 18 2017, 21:46
|

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

|
Цитата(Baser @ Apr 19 2017, 00:23)  Так что дело у вас не в регистре защелки. Это я понял уже...  Замечу, что это как у меня сейчас через триггер и в момент сигнала ALE вход ~CE2 переводит IO памяти в Z состояние. Просто CE1- тупо подтянут к земле. Ошибок нет. Базовая схема подразумевает что CE1 тупо посажен на землю, а ~CE2 на шину питания.То есть IO памяти всё время открыты. Что там на них в процессе перехода на шине - одному Богу известно...
Сообщение отредактировал manul78 - Apr 18 2017, 21:48
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 19 2017, 05:28
|

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

|
Цитата(zombi @ Apr 19 2017, 00:57)  Во жесть! Уточните, для себя, каким сигналом открываются IO памяти. Под "открыты" я имел в виду что они не в высокоомном состоянии, и их входные цепи могут как-то держать заряды. За счет внутреней емкости входов например. Как я еще могу объяснить нахождение на мультиплексированной шине маладшего адреса в момент когда МК уже перевел их с выхода на вход и читает данные? По поводу "уточните", "прочтите", "узнайте" и пр - не надо пожалуйста. Вы считаете что буржуи троллят меня? А по моему троллите меня Вы! Я создал топик чтобы узнать конкретные соображения по поводу своей проблемы, а не хлебать чей-то снобизм и ответы типа "Где находится Пекин?" - "На Земле... Географический справочник почитайте..."
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Apr 19 2017, 06:20
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (manul78 @ Apr 19 2017, 08:28)  По поводу "уточните", "прочтите", "узнайте" и пр - не надо пожалуйста. Вы считаете что буржуи троллят меня? А по моему троллите меня Вы! Простите, но нога ~OE работает одинаково у всех микросхем - ОЗУ, ПЗУ, регистров, шинных формирователей, дешифраторов (что еще забыл?). И ее описание занимает две-три строчки. Это примерно как 2+2 = 4. Какой реакции на форуме математиков вы ожидаете на вопрос "сколько будет 2+2"?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
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
|
|
|