radist108(25.03.2022)
У меня появился новый вопрос.
Почему при старте процессор 1806 после выдачи сигнала SEL сразу обращается к адресам 000170, а затем 172, будто у меня прерывание по сигналу HALT? Сама ножка HALT притянута через резистор к питанию. Внешний безадресный регистр =000000. Это из за бита 8=лог.1 в PSW?
radist108(25.03.2022)
Выложу. Но у меня сперва вопрос про микросхемы памяти 573РФ5 и им подобные.
Я правильно понимаю, что входа-выхода у них работают так?
Вход адреса:
0 вольт - лог.0
5 вольт - лог.1
Выход данных (открытый коллектор через с подтяжкой):
коллектор открыт - 0 вольт с резистора - лог.0
коллектор закрыт - 5 вольт с резистора - лог.1
То есть перед записью микросхемы мне надо сделать инверсию в таблице и на адрес, и на данные?
У 573РФ5 выход 3 состояния. Но состояние +5в. с малой нагрузочной способностью.
У очищенной РФ5 вроде как FF состояние выхода, что в понятиях ф. Интел +5в.
Адрес начала массива у РФ5 - 0в. на всех адресных выводах.
Текст программы инверсии адреса и данных, от маркера ( адрес 004674, длина 14 слов ( дес. ) ) :
Адрес начала массива - 020000, длина массива - 020000 ( 8 Кбайт ).
- - - Добавлено - - -
Вообще, что бы не иметь проблем с контентом ППЗУ, целесообразно шину памяти пропустить через АП9.
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU
radist108(25.03.2022)
Вот причина: на ноге AD14 процессор в момент логической "1" выдаёт вот что:
Почему такое может происходить?
- - - Добавлено - - -
Разобрался. Помехи шли с входной ноги 556РТ4. Она у меня отвечает за выбор RAM или ROM в зависимости от адреса.
Только непонятно, почему помеха идет от входной ноги (A2)? Подтяжка резисторами есть
- - - Добавлено - - -
Кажется, нашел проблему. У меня регистр адреса был подключен неправильно. Не в режиме триггера-защелки, а в режиме "пропустить насквозь/Z" по сигналу SYNC. Вечером проверю работу на ЛИ. Дребезг по шине пропал. Логические уровни улучшились
Итак мне удалось запустить схему. Выражаю огромную благодарность всем тем, кто мне помогал. Но ожидаемо возник еще ряд вопросов:
Безадресный регистр у меня на плате имеет значение 000000 (джамперы выкл.). Соответственно, следующим шагом должно начаться чтение с адреса 000000. С этого адреса у меня начинается область ПЗУ. Заполняю память 573РФ4 для младших байтов, а для старших оставляю пустую ПЗУ с нулями. С двух микросхем на шине получаю:
000000: 000001
000002: 000340
000004-000377: 000000
000400-...: 244 (команды NOP)
Прошивка для "для младшей" половину ПЗУ:
Собственно, проблема: если в адресе 000000 ПЗУ я прописываю значение 000001, то чтение моей основной программы начинается не с адреса 000001, как мне казалось должно было быть (это тест, я знаю, что там должно быть 000340). Процессор берет значение из ячейки ПЗУ 000000 и записывает его в счетчик команд не все 16 бит подряд, а только его младший байт да еще и на место старшего байта PC. В итоге получаем в счетчике не 000001, а 000400 (0000 0001 0000 0000 вместо 0000 0000 0000 0001).
(на рисунке я подписал значения на шине адреса и на шине данных в момент измерения)
Получается, я физически не могу стартовать программу с адреса, меньшего чем 000400. Но в документации про этот момент написано совсем иначе:
Согласно ТО, R7:= (АВП). То есть 16-ти битный PC должен загружаться 16-ти битным значением из ячейки 000000 параллельным переносом, а не одной его половиной и со сменой мест.
Помогите пожалуйста прояснить этот момент
Последний раз редактировалось radist108; 25.03.2022 в 12:00.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)