Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Проблема с Красногорском

  1. #1
    Activist Аватар для Doktor
    Регистрация
    07.06.2010
    Адрес
    Зиген, Германия
    Сообщений
    223
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проблема с Красногорском

    Для своего нового Спекки-ноутбука решил спаять (как всегда на макетке) «Красногорск», т.к.
    - сделал их 5 шт. в 91г., имею сейчас функционирующий экземпляр (один из тех пяти)
    - Conan прислал отсутствующую схему в приличном качестве
    - схема простая, всего 42 корпуса, но главное – времянка запрограммирована в ПЗУ 573РФ2, что позволит проще получить сигналы, необходимые для подключения LCD.

    Первое включение (без ROM) порадовало чистым правильным матрацем. С ПЗУ виснет или зацикливается при проверке ОЗУ (красные вертикальные линии на чёрном экране). Тест памяти после 10 мин. работы выдаёт «Неисправность буфера чтения данных». Замена регистра D35 (555ИР22=LS373, благо, что стоит в панельке) на заведомо исправные разных типов (S, F, HCT) ничего не дала. Сама память тоже 100% рабочая, проверена на другом компьютере.

    Долгие поиски неисправности путём сравнения с работающей платой (прозвонка соединений, сравнение сигналов осциллографом) ни к чему не привели: ошибок в схеме и в собранной плате нет. Далее сделал приладу для пошагового исполнения программы, подключил параллельный порт и после многочисленных проб закодировал такую вот тест-программу:

    1) настройка порта на вывод
    2) заполнение всей памяти кодом 00, области атрибутов кодом 38 (paper=black, ink=white)
    3) заполнение области экрана кодом FF (белый экран)
    4) запись AA в ячейку 4000 (начало экрана)
    5) чтение ячейки 4000 и вывод содержимого аккумулятора в порт
    6) переход к пункту 5)

    Стартую программу в автоматическом режиме и после зацикливания переключаю на пошаговый. Состояния шин адреса, данных и порта отображаются индикаторами. Программа работает правильно (останов происходит по переходу сигнала MREQ из 1 в 0), содержимое ячейки 4000 можно контролировать визуально на экране. При чтении из ячейки 4000 на ШД всегда правильный код АА, а вот в порт выводится что попало (87, 8F, FF, иногда и АА). Т.е. проблема заключается в неправильной загрузке аккумулятора с шины данных в цикле чтения.

    В связи с описанной проблемой обращаюсь ко всем форумчанам, кто может помочь, за советом: куда копать дальше?

    Начал разбираться с прозрачным доступом к памяти. Кто знает, какому клону соответствуют времянки на «диаграмме» и какой сигнал используется для тактирования процессора?

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

Название:	диаграмма.jpg 
Просмотров:	384 
Размер:	41.7 Кб 
ID:	23668  
    Вложения Вложения

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для fan
    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,789
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Doktor Посмотреть сообщение
    Кто знает, какому клону соответствуют времянки на «диаграмме»
    Вероятно фениксу (покудо выкладывал Mick). А также прочему синхронному зверью вроде кая , ленинграда , скорпиона , ...
    Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
    REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/

  4. #3
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fan Посмотреть сообщение
    Вероятно фениксу (покудо выкладывал Mick). А также прочему синхронному зверью вроде кая , ленинграда , скорпиона , ...
    Это скажем упрощенная схема тактирования памяти. Она приминительна к большинству клонам спекки имеющих синхронный доступ к памяти.
    Я ее рисовал, когда разбирался как там все работает

    ---------- Post added at 18:22 ---------- Previous post was at 18:17 ----------

    Цитата Сообщение от Doktor Посмотреть сообщение
    какой сигнал используется для тактирования процессора?
    Если ты про диаграмму, то для тактирования процессора используется сигнал RAS/, вернее чуть задержанный одним логическим элементом.

    ---------- Post added at 18:26 ---------- Previous post was at 18:22 ----------

    Цитата Сообщение от Doktor Посмотреть сообщение
    При чтении из ячейки 4000 на ШД всегда правильный код АА, а вот в порт выводится что попало (87, 8F, FF, иногда и АА). Т.е. проблема заключается в неправильной загрузке аккумулятора с шины данных в цикле чтения.
    А причем тут чтение, если ты в порт пишешь не правильно.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  5. #4
    Activist Аватар для Doktor
    Регистрация
    07.06.2010
    Адрес
    Зиген, Германия
    Сообщений
    223
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    для тактирования процессора используется сигнал RAS/, вернее чуть задержанный одним логическим элементом.
    Вот это я и хочу выяснить. RAS/ я так понимаю, идёт на 4-е ноги м/схем ОЗУ. Для тактирования процессора используется этот же сигнал, пусть чуть задержанный, но в фазе с RAS/, или инвертированный логическим элементом?

    ---------- Post added at 09:02 ---------- Previous post was at 08:40 ----------

    Цитата Сообщение от Mick Посмотреть сообщение
    причем тут чтение, если ты в порт пишешь не правильно
    При останове по низкому уровню сигнала MREQ/ при выполнении команды ld A, (HL) на ШД выдаётся содержимое регистра чтения данных (правильное значение АА). При переходе к следующему шагу эта команда завершается загрузкой ШД в аккумулятор. Далее за 2 шага выполняется команда out (A0), A и в порте появляется содержимое аккумулятора, отличающееся от считанного значения.

    Добавдю ещё, что команды ld A, nn; out (A0), A выподняются всегда правильно, процессон 100% рабочий.

  6. #5
    Junior
    Регистрация
    10.04.2008
    Адрес
    Воскресенск М.О.
    Сообщений
    23
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Doktor

    Вопрос снимается.Разобрался.
    Последний раз редактировалось sserg14; 06.01.2011 в 13:38.

  7. #6
    Activist Аватар для Doktor
    Регистрация
    07.06.2010
    Адрес
    Зиген, Германия
    Сообщений
    223
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уважаемый Mick,

    прошу ответить на мой вопрос насчёт сигналов RAS/ и Clk процессора.

  8. #7
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,911
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Doktor Посмотреть сообщение
    Вот это я и хочу выяснить. RAS/ я так понимаю, идёт на 4-е ноги м/схем ОЗУ. Для тактирования процессора используется этот же сигнал, пусть чуть задержанный, но в фазе с RAS/, или инвертированный логическим элементом?
    В одной фазе с RAS/. Правда хочу заметить встречаются клоны у которых тактирующая совмещена с CAS/, но они считай редкость..
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #8
    Activist Аватар для Doktor
    Регистрация
    07.06.2010
    Адрес
    Зиген, Германия
    Сообщений
    223
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проблема решена

    После 3-х недель (!) поисков причина неправильного чтения из ОЗУ найдена и проблема решена. Весьма поучительный пример.
    Задержка тактовых импульсов процессора относительно сигнала RAS/ ничего не дала, более того, как теперь понятно, лишь усугубляла проблему. При изучении времянок процессора обнаружил, что в цикле чтения данные защёлкиваются по отрицательному фронту Т3. А я считал, что по положительному, как и в цикле чтения команд. Как говорится, мат-часть надо знать. Нарисовав диаграмму понял, что этот фронт совпадает с передним фронтом строба записи данных из ОЗУ в регистр чтения данных (но уже из другой ячейки памяти) и это может быть критичным. Сигналы Clk=RAS/ и строб формируются из выходных сигналов синхронного счётчика D10, первый-инвертированием меандра 3,5 MHz элементом D5.5, а второй-логическим И сигналов 3,5 MHz и 1,75 MHz (элемент D14.2) и последующим инвертированием логическим элементом D14.3 . При использовании м/схем D5 и D14 одной серии передний фронт строба автоматически сдвинут на 5-10 нс относительно заднего фронта Clk и данные из регистра считываются правильно. Я же запаял D5=74LS04, а D14=74ALS00 (не было LS), которые раза в 2-3 быстрее. В результате поимел накладку фронтов и геморрой на 3 недели. Задержка строба двумя инверторами вылечила компьютер, работает стабильно при напряжении питания в диапазоне 4,2-5,8 В.
    Вывод: не всегда можно заменять микросхемы более быстродействующими!

    P.S. Прилагаю временную диаграмму цикла чтения/записи процессора, дополненную описанной проблемой.
    Вложения Вложения

  10. #9
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,975
    Спасибо Благодарностей отдано 
    171
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    88 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Doktor, а можно выложить в этой теме в графическом виде ту часть схемы, где добавлялась задержка? Очень интересно! Скоро тоже буду воевать с рабочей схемой и памятью, но глюкодромом при совместном использовании. (http://zx.pk.ru/showpost.php?p=339601&postcount=107)

    p.s. Схему скачал, но не совсем понял, в разрыв какого сигнала поставлены два инвертора?
    Последний раз редактировалось SoftFelix; 13.01.2011 в 13:43.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  11. #10
    Activist Аватар для Doktor
    Регистрация
    07.06.2010
    Адрес
    Зиген, Германия
    Сообщений
    223
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Между выходом 11 элемента D14 и входом 11 регистра D35.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. проблема с SID
    от breeze в разделе Commodore 16/64/128
    Ответов: 23
    Последнее: 17.03.2009, 12:24
  2. TR-DOS Проблема
    от AlexFantasy в разделе Внешние накопители
    Ответов: 11
    Последнее: 07.07.2008, 08:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •