rx3apf 0 17 апреля, 2017 Опубликовано 17 апреля, 2017 (изменено) · Жалоба А точно это именно тест ЧИТАЕТ неверное значение ? А не уже неверное значение было ЗАПИСАНО, против ожидаемого ? Такое-то поведение было бы проще объяснить... Кстати, такое можно было бы отловить и без быстрого скопа, даже с saleae. По отрицательному результату сравнения выставить где-то строб и посмотреть предисторию, что было на шине данных незадолго перед событием. Изменено 17 апреля, 2017 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 17 апреля, 2017 Опубликовано 17 апреля, 2017 · Жалоба случайно, каждый раз по разным адресам считывается младший адресный байт, а не байт данных... МК выставляет младший и старший адрес на шину. Защёлкивает. Даёт сигнал чтения RD и читает сам себя что-ли ? "Остатки" младшего адреса заместо выставленных памятью данных ? Вам нужно еще раз внимательно прочитать, как работает мультиплексная Интеловская внешняя шина. То, что вы видите, типичное нарушение "времянки" работы шины. Причем сбои могут быть как при записи, так и при чтении, по этому тесту непонятно где. МК выставляет младший и старший адрес на шину. Защёлкивает младший байт адреса. Потом выдает на те же линии данные для записи или выдает строб чтения и ждет на этой линии данные из памяти. Если защелка медленная, она держит данные на DA7:0 слишком долго и возникает коллизия из-за того, что или МК или память выводят значения данных на DA7:0. Кто-то из двух будет пересиливать, данные будут неправильные. На осциллографе коллизии хорошо видны в виде третьих уровней на диаграммах, около половины питания. Еще Bus keeper (XMBK) будет влиять на работу, с ним разберитесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 17 апреля, 2017 Опубликовано 17 апреля, 2017 · Жалоба МК выставляет младший и старший адрес на шину. Защёлкивает младший байт адреса. Потом выдает на те же линии данные для записи или выдает строб чтения и ждет на этой линии данные из памяти. Еще Bus keeper (XMBK) будет влиять на работу, с ним разберитесь. Похоже я где-то рядом... Те кто разрабатывал схему тупо посадили ногу (Enable and read register (transparent mode)) OE защёлки на землю... Защелка не переходит после фиксации в Z состояние. На шине получается висит младший адрес... Получается мне надо привязать эту ногу через инвертор к сигналу ALE ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 17 апреля, 2017 Опубликовано 17 апреля, 2017 · Жалоба ??? 573 фиксирует младший байт адреса с шины данных и отправляет его на соответствующие адресные линии SRAM. Каким образом управление выходом 573 может повлиять на ее вход (шину данных) ? Она же (защелка) однонаправленная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 17 апреля, 2017 Опубликовано 17 апреля, 2017 · Жалоба Те кто разрабатывал схему тупо посадили ногу OE защёлки на землю Правильно сделали. ... Защелка не переходит после фиксации в Z состояние. И не должна она никуда переходить. На шине получается висит младший адрес... И правильно делает. Именно младший адрес и должен там висеть. Получается мне надо привязать эту ногу через инвертор к сигналу ALE ? Зачем? Ненужно его никуда привязывать. Похоже я где-то рядом... Судя по всему вы еще огого как далеко Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Короче победил похоже... (Сейчас тесты гоняю) Аппаратно добил... У UT6264LP-70 в отличии от 62256 два сигнала стробирования СЕ и СЕ2 (инв) работающие в противофазе. Я по анлогии с 62256 повесил СЕ2 на +5 (у 62256 активный 0). Зря я это сделал. Отсюда и глюки... Сейчас я пустил сигнал ALE через 74ALS74 (ТМ2) то есть через D-триггер. Сигнал ALE через триггер выходит прямой на CE и инвертированный на СЕ2 соответственно. Плюс мелкая задержка на самом триггере за счет времени прохождения. Все. Ошибок нет. Пока нет... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Короче победил похоже...добил... Сейчас я пустил сигнал ALE через 74ALS74 (ТМ2) то есть через D-триггер. Сигнал ALE через триггер выходит прямой на CE и инвертированный на СЕ2 соответственно. Плюс мелкая задержка на самом триггере за счет времени прохождения. Все. Ошибок нет. Пока нет... :) Удивительно что еще что-то работает после всего того что Вы нагородили. Прямой CE 6264 подключите к VCC, а инверсный (#CE) к тому #CE который был к 62256 подключен. Неужели так сложно в гугле поискать что-то типа "подключение внешней памяти к микроконтроллеру" раз DS на AVR не доверяете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Короче победил похоже... (Сейчас тесты гоняю) Аппаратно добил... . . . . :) мудрено аднака. посмею предположить, что пока аппаратно решали проблему, то пропаяли неконтакт, и оно аннилигилировалосььььь. (извиняюсь за наглость) Выложите схему, так, ничего личного, просто посмотреть :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 18 апреля, 2017 Опубликовано 18 апреля, 2017 (изменено) · Жалоба посмею предположить, что пока аппаратно решали проблему, то пропаяли неконтакт, и оно аннилигилировалосььььь Ничего подобного. Предыдущее сообщение ввело меня в сомнения и я вернул всё взад... Те-же грабли вылезли. Сейчас выложу следующим комментарием фундаментально что я делал почти 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 память оживает и не имеет на своих входах "мусора" как если-бы она всегда находилась в активном состоянии в ожидании чтения/записи. Вот такие дела... :) Изменено 18 апреля, 2017 пользователем manul78 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба И чего только не делал. Процессор меняли??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Можете конечно заявить, что всё через ж.пу, и противоречит гарвардской архитектуре и интеловским даташитам, но тем не менее всё работает... На последок старый советский анекдот: Горный аул. Житель заходит к соседу. - Слушай, завтра сына женю, одолжи барана! - Не могу, но вот тебе совет : сходи к тому дому, там тебе дадут барана! Пошел к тому дому. - Слушай, завтра сына женю, одолжи мне барана! - Не могу, но вот тебе совет: сходи вон к тому дому, там тебе дадут барана! Пошел к вон тому дому. - Слушай, я завтра сына женю, одолжи мне одного барана! - Не могу, но вот тебе совет - сходи к дальнему дому, уж там тебе точно дадут барана! Ходил, ходил, ходил... встречает аксакала: - Слушай, отец! Почему мне никто не дает барана, но все дают совет, где взять барана?! - Потому, дорогой, что у нас не страна баранов. У нас - Страна Советов!!! На просторах интернета масса теоретиков, которые паяльник-то в руках не держали ни разу. В теории всё работает. На деле, когда начинаешь возиться с железом - вылезает куча граблей и подводных камней. Я не хочу здесь никого обидеть, просто прошу давать советы тем, кто конкретно в железе работал с определенными устройствами, а не где-то слышал или видел... P.S. Никак не доходят руки дизассемблировать родную заводскую прошивку устройства, но почему-то уверен, что обмен с памятью реализован обычным "ногодрыганьем", не смотря на наличие у 8515 специального интерфейса. Взялись похоже за проект (поляки кстати), помыкались, помыкались с "таймингами"и написали сами со своими задержками и пр. На 4 МГц (как во всех интернет примерах) я подозреваю что всё действительно работает, а вот на 8+ уже похоже нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Когда положительный строб ALE заставляет защёлку запомнить младший адрес Попробуйте выяснить как работает защелка 74HC573 (Octal D-type transparent latch; 3-state) всё через ж.пу, и противоречит гарвардской архитектуре и интеловским даташитам Это Вы точно подметили. Если когда нибудь Вы всё таки разберётесь с гарвардской архитектурой и интеловскими даташитами, то будете сами над собой смеяться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Процессор меняли??? Я не знаю, с сарказмом это вопрос или серёзно, но в моём почти милионном городе 90% жителей занимаются перевпариванием продуктов чужого труда и приличных (относительно) радиомагазинов всего три. Если уж найти вонючую HCT573 которой цена три копейки оказалось проблемой, то уж древнюю атмегу8515 в PLCC 44 и подавно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Я не знаю, с сарказмом это вопрос или серёзно... PLCC 44 Я и не думал шутить. Лично у меня еще и AT90S8515 в дипе где-то валяются. Но PLCC это уже перебор Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Попробуйте выяснить как работает защелка 74HC573 (Octal D-type transparent latch; 3-state) Это Вы точно подметили. Если когда нибудь Вы всё таки разберётесь с гарвардской архитектурой и интеловскими даташитами, то будете сами над собой смеяться. Я прекрасно понимаю как она работает. :) И смеяться я над собой не буду... Потому что через ж..пу - но работает. А по всем правилам и канонам в данном конкретном случае - НЕТ :( Замечу так-же, что шмель летает вопреки всем законам аэродинамики. Возможно, где-то в схеме сидит глюк, или просто уже старая мега мудрит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться