На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 269,
участников - 7 [ Sieben, Несущий свет, Zmej, melom, Sergey4565, wazzoo, rw4hfn]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Главный раздел —› РПУ "Бригантина" 
Новая линейка радиостанций Hytera в нашем магазине


Hytera TC-320
руб.

Hytera TC-508
руб.

Hytera TC-580
руб.

Hytera PD-355
руб.

Hytera X1E
руб.
 Страница:  1  2  3  4  5  ...  12  13  14  15  16  »»Поиск в теме
Автор Сообщение
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 04:53:13 · Поправил: darkstar (12 Ноя 2013 06:22:58) #  

Думаю, будет полезно создать отдельную тему для обсуждения всех особенностей этого РПУ.

Бригантина : Рейтинг

Сам недавно стал обладателем этого чуда отечественной радиотехнической мысли :)





РПУ представляет собой супергетеродин с двойным преобразованием частоты и рабочим диапазоном частот от 10 кГц до 30 МГц с шагом 10 Гц.

ПЧ1 = 65,128 МГц,
ПЧ2 = 128 кГц.

В состав радиоприёмного устройства входят:
- главный тракт приёма,
- тракт обработки телефонных и телеграфных сигналов,
- система синтеза частот,
- микропроцессорная система управления и контроля,
- система питания,
- корпус.

РПУ может питаться от сети 220 В (187...242 В, 45...65 Гц, Рмакс = 60 Вт) или от аккумуляторов с напряжением от 20 до 30 В.
Габаритные размеры: Ш = 45 см, Г = 60 см, В = 18 см.
Вес ~ 27 кг.
Рабочие температуры: от -10 С до +50 С.

Главной особенностью является полный микропроцессорный контроль всех блоков приёмника. То есть, на каждом узле стоит цифровая микросхема, которая, принимая сигнал от МП, устанавливает усиление/ослабление или выбирает нужный путь прохождения сигналов.
На платах управления имеется АЦП, который может подключаться к контрольным точкам схемы. В зависимости от считанных с контрольных точек значений, МП принимает решение о распределении усиления по тракту.

Смежные темы:
РПУ Бригантина и COM-порт
Чтение К573РФ4А
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 05:10:28 · Поправил: darkstar (12 Ноя 2013 05:55:45) #  

Пока что разбираюсь с вычислительным блоком Б10-37.
В него входят:
- 16-разрядный микропроцессор К1801ВМ1 и его магистральные приёмо-передатчики (МПП),
- схема инициализации МП,
- тактовый генератор 12,288 МГц с делителями. Тактовая частота МП = 1,536 МГц.
- блоки памяти с селектором адреса и магистральными приёмо-передатчиками: ОЗУ 4 КБ и ПЗУ 16 КБ.

Вот немного разобрал логику работы этих схем:
http://www.radioscanner.ru/uploader/2013/takt_gen.zip
http://www.radioscanner.ru/uploader/2013/zapusk_cp.zip

Шина блока полностью совместима со стандартной шиной МПИ.
То есть, команды на линиях AD (как в самом процессоре, так и на линиях МПИ) инвертированы, т.е. лог. "1" = 0В, а лог. "0" = +5В.
Это следствие структуры МП: линии 1801ВМ1 - это открытые коллекторы, по схеме подтянутые к плюсу резисторами. Но нагрузочная способность линий этого МП невелика - 1 мА (не более 5 мА), поэтому стоят МПП.
Кстати, сигналом "HALT CPU" можно полностью отключить МП от шины.

Есть некоторые особенности:
- информация, хранящаяся в ПЗУ - не инвертирована. Инверсия происходит при получении адреса и при выдаче данных.
- расположение данных подразумевает, что по нечётному адресу располагается старший байт. Но обращение к блоку памяти (ОЗУ / ПЗУ) происходит только по чётным адресам. При этом выдаётся сразу два байта - старший и младший, т.е. слово.
Реклама
Google
Фотограф
Участник
Offline6.3
с янв 2006
Чкаловский-Круг
Сообщений: 24446

Дата: 12 Ноя 2013 06:50:41 #  
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 07:05:44 · Поправил: darkstar (12 Ноя 2013 08:47:47) #  

Вот прошивка ПЗУ-шек блока Б10-37, объединённая в один файл:
http://www.radioscanner.ru/uploader/2013/d2930.zip
Пардон, что не выкладываю ассемблерных мнемоник - надо сначала отделить мухов от котлетов, т.е. собственно исполняемый код программ и массив чисел установки конденсаторов преселектора.

Не забываем, что старшие байты идут по нечётным адресам.
Поэтому первые байты:
00: 7F
01: 01
следует читать как
00: 017F
или в родном DEC-овском восьмеричном коде
000 000: 000 577 что означает BR 000 400
т.е. переход по адресу 400.

Сама программа располагается начиная с адреса 000 400.

В промежутке адресов от 000 000 до 000 376 находится таблица векторов прерываний.
Задействованные адреса:
000 004 - подпрограмма обработки ошибки связи с внешним устройством.
Если ЦП не получил сигнал /RPLY в ответ на /DIN, /DOUT в течении 64 тактов ("зависание"), то возникает это прерывание.
Или же если была выполнена команда "HALT".
(или если поступил сигнал IRQ1, но в нашем случае IRQ1 не используется).
000 010 - подпрограмма обработки ошибки неверной команды.
Если полученная команда не опознана, возникает это прерывание.
000 034 - подпрограмма TRAP-менеджера.
Возникает при программном выполнении команды TRAP.
000 100 - подпрограмма обработки внешнего прерывания IRQ2.
Похоже, отсутствие сигнала "ГОТОВ" вызывает это прерывание.
000 270 - подпрограмма обработки внешнего прерывания IRQ3.
Если нажата какая-либо клавиша, то возникает это прерывание.
000 340 - подпрограмма обработки внешнего прерывания от ИРПС.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 07:39:03 · Поправил: darkstar (13 Ноя 2013 05:52:06) #  

Итак, программа начинает работать.

Стартового регистра по адресу 177 716 у нас нет, значит программа стартует с адреса 000 000.
А там:
000 000: BR 000 400 ; безусловный переход на 000 400

Перешли.

Первым делом устанавливается указатель стека:
000 400: MOV #110 300,SP ; стек начинается с адреса 110 300

Далее смотрим, что находится по адресу 177 716:
000 404: MOV @#177716,R0 ; содержимое ячейки 177 716 положить в регистр R0
Вообще по адресу 177 716 должен располагаться регистр начального пуска ЦП. Но похоже, что в данном РПУ по этому адресу ничего нет. Либо же должно читаться число 0 (чтобы запустить основную программу).
Возможно также, что при подключении каких-либо внешних устройств, по этому адресу мог быть какой-то другой адрес старта.
Попробую поразбираться.
По хорошему надо бы подключить логический анализатор и посмотреть, что же фактически происходит.

Далее:
000 410: TSTB R0 ; проверяем, что там было по адресу 177 716
Если значение R0 было нулевым, то установится бит Z=1.
Если значение R0 было отрицательным, то установится бит N=1.
Сброс V=0, C=0 происходит автоматически.

И если что-то было, то переходим на адрес 000 510:
000 412: BPL 000 510

Но у нас стартовый адрес равен 000 000, поэтому идём дальше.
000 414: MOV #000 000,R0 ; очищаем регистр R0
000 420: MOV #037 774,R1 ; кладём число 37 774 в регистр R1. Кстати, это адрес последнего слова из ПЗУ.
000 424: MOV (R0),R2 ; кладём число по адресу R0 в регистр R2

Дальше идёт цикл:
000 426: CMP R0,R1 ; сравниваем регистры R0 и R1.
Сравнение происходит путём вычитания значения регистра R0 из значения регистра R1
Если результат R0-R1 = 0, то установится бит Z=1.
000 430: BEQ 000 444 ; если R0=R1, то перейти на 000 444
Если же R0 не равен R1, то:
000 432: ADD #000 002,R0 ; R0 = R0 + 2
000 436: ADD (R0),R2 ; сложить значение ячейки по адресу R0 с содержимым R2
000 440: ADC R2 ; сложить R2 и значение бита переноса С
000 442: BR 000 426 ; вернуться на 000 426

По видимому, это цикл проверки ПЗУ.
По сути, происходит сложение всех значений ячеек ПЗУ по адресам от 000 000 до 037 774.
Результат - в регистре R2.
А после - переход на адрес 000 444.

000 444: JSR PC,@#001 030 ; вызов подпрограммы по адресу 001 030
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 08:45:17 · Поправил: darkstar (13 Ноя 2013 07:44:55) #  

Подпрограмма по адресу 001 030:

001 030: JSR PC,@#016 304 ; нас посылают ещё дальше: вызов подпрограммы по адресу 016 304

Перемещаем кусок данных длинной 4 слова с адреса 1020 (ПЗУ) на адрес 114740 (ОЗУ).
001 020: 000 012
001 022: 000 015
001 024: 000 000
001 026: 000 040

копируется сюда:
114 740: 000 012
114 742: 000 015
114 746: 000 000
114 750: 000 040

Подпрограмма по адресу 016 304:
-----------------------------------------
Перемещает данные.

входные параметры:
первый параметр (R1) - откуда (начальный адрес перемещаемого блока)
второй параметр (R2) - куда (начальный адрес места назначения)
третьий параметр (R3) - какая длина (длина перемещаемого блока)
используемые регистры:
R1, R2, R3

Сохраняем регистры:
016 304: MOV R1,-(SP) ; занести значение регистра R1 в стек; SP=SP-2
016 306: MOV R2,-(SP) ; занести значение регистра R2 в стек; SP=SP-2
016 310: MOV R3,-(SP) ; занести значение регистра R3 в стек; SP=SP-2

016 312: MOV 000 006(SP),R3 ; занести в R3 содержимое ячейки по адресу SP+6, т.е. адрес возврата из подпрограммы

016 316: MOV (R3)+,R1 ; R1 = (R3), R3 = R3+2; занести в R1 значение ячейки, следующей первой за командой вызова подпрограммы (первый параметр); увеличить R3
016 320: MOV (R3)+,R2 ; R2 = (R3), R3 = R3+2; занести в R2 значение ячейки, следующей второй за командой вызова подпрограммы (второй параметр); увеличить R3
016 322: MOV (R3)+,R3 ; R3 = (R3), R3 = R3+2; занести в R3 значение ячейки, следующей третьей за командой вызова подпрограммы (третьий параметр); увеличить R3

016 324: ADD #000 006,000 006(SP) ; сдвинуть адрес возврата из подпрограммы на 6 байт вперёд (т.е. на три слова вперёд).
Адрес сдвигаем вперёд, т.к. сразу за командой вызова подпрограммы идут три слова с данными.

Цикл:
016 332: MOV (R1)+,(R2)+ ; (R2) = (R1), R1 = R1+2, R2 = R2+2;
переместить данные из ячейки с адресом R1 в ячейку с адресом R2, увеличить регистры

016 334: SOB R3,016 332 ; R3 = R3-1; если R3 не равно 0, то перейти к 016 332

Восстанавливаем регистры:
016 336: MOV (SP)+,R3 ; восстановить значение регистра R3 из стека; SP=SP+2
016 340: MOV (SP)+,R2 ; восстановить значение регистра R2 из стека; SP=SP+2
016 342: MOV (SP)+,R1 ; восстановить значение регистра R1 из стека; SP=SP+2
016 344: RTS PC ; вернуться из подпрограммы

Возвращаемся на адрес 001 034 + 000 006 = 001 042
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 12 Ноя 2013 09:51:09 · Поправил: hs_19 (12 Ноя 2013 09:54:34) #  

Доброго дня!

Шибко рад, что Вам интересно разбираться с фирмварью это замечательного аппарата.
Есть небольшое желание изменить кое чего в ней (фирмвари) с целью достижения нормальной
работы аппарата в НБП.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 10:34:52 · Поправил: darkstar (12 Ноя 2013 10:37:48) #  

Что именно хотите поправить?
mmos
Участник
Offline2.1
с ноя 2007
Сообщений: 380

Дата: 12 Ноя 2013 12:02:28 #  

В коде что-то родное просматривается. Уж не МАКРО-11 ли (ассемблер "Электроники-60")?
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 12:06:03 · Поправил: darkstar (12 Ноя 2013 12:21:45) #  

Он самый :)
Это же 1801ВМ1 - однокристальная "Электроника-60"

Дизассемблирую при помощи эмулятора ДВК (в нём есть дизассемблер DESS):
http://zx.pk.ru/showthread.php?t=18351

А также IDA + модуль процессора 1801ВМ1.
http://zx.pk.ru/showthread.php?postid=367209

Спрашиваю совета вот тут:
http://zx.pk.ru/showthread.php?t=22156
и тут:
http://zx.pk.ru/showthread.php?t=11557&page=7
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 12 Ноя 2013 13:06:57 · Поправил: darkstar (13 Ноя 2013 08:12:51) #  

Продолжаем выполнение подпрограммы 001 030:

001 042: MOV #114 766,R3 ; R3=114 766 ; записать адрес 114 766 в R3
001 046: CLR -(R3) ; R3=R3-2 -> R3=114 764 ; очистить ячейку с адресом 114 764
001 050: MOV #000 005,R4 ; R4=000 005 ; положить число 000 005 в R4 - счётчик
001 054: MOV #000 060,R5 ; R5=000 060 ; положить число 000 060 в R5

Цикл:
001 060: MOV R2,-(R3) ; положить содержимое регистра R2 по адресу (R3-2)
001 062: BIC #177 770,(R3) ; сбросить в 0 все разряды ячейки по адресу (R3), кроме трёх младших битов
001 066: ASR R2 ; сдвинуть содержимое R2 вправо
001 070: ASR R2 ; сдвинуть содержимое R2 вправо
001 072: ASR R2 ; сдвинуть содержимое R2 вправо
001 076: SOB R4,001 060 ; R4 = R4-1; если R4 не равно 0, то перейти к 001 060

001 100: BIC #177 776,R2 ; сбросить в 0 все разряды регистра R2, кроме самого младшего бита
001 104: MOV R2,-(R3) ; положить содержимое регистра R2 по адресу (R3=R3-2)
001 106: ADD R5,(R3) ; положить содержимое регистра R5 по адресу (R3)

001 110: RTS PC ; возврат из подпрограммы
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 12 Ноя 2013 13:26:08 · Поправил: hs_19 (12 Ноя 2013 20:17:28) #  

darkstar
Поправить хочу коэфициент деления в синтезаторе, формирующем мсн и режимы АРУ.
Режимы АРУ прикрутить к кнопке J7 в том составе, как в кнопке J3. А мсн формировать
с другим номиналом только с целью правильного прохождения теста.
Проблема на самом деле простая: я поменял эмф верхней на режиме j7 на другой, - с нижней боковой.
Это избавляет от манипуляций при приеме нбп. Но режимы ару привязаны к режимам приема,
соответственно в J7 и J3 набор режимор разный, что создает некоторые неудобства. А мсн в режиме
тестирования нужно просто инвертировать по отношению к 128кГц, чтобы тест-сигнал попадал в полосу
прозрачности фильтра нбп.

В целом, все эти мелочи не особо напрягают, но если получится понять - что и как поменять, будет здорово.


Из практики - советую избавится от жидких проводов от бп до кросс - платы и увеличить
величину фильтрующего кондера по 24в. И обратите внимание как работает линейная шкала.
Всегда ли ацп шкалы грузится одинаково после включения? Т.е. всегда ли полностью
регулировкой по вч удается всю линейку подвигать? На двух своих экземплярах наблюдал
неоднозначность при включении.
Втулку-ось валкодера лучше переточить в латуни,-тоже из практики.
Провода менять лучше с разъемами. На штатных у меня падало по полувольта
на канале +5 во время верчения валкодера.Да и в статике валилось не слабо.


P.S. К слову сказать умысла программеров не понял - почему текущие настройки уровней усиления не
сохраняются на батарейке?

По 1801 искал у себя программеров, - не нашел, хотя есть монстры предпенсионного возраста
работавшие на PDP-11, не хотят. Ни за деньги, ни за коврижки)))
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 05:49:38 · Поправил: darkstar (13 Ноя 2013 09:48:17) #  

Продолжаем выполнять основную программу:

000 450: MOV #000 122,@#114 744 ; положить число 000 122 по адресу 114 744

000 456: JSR PC,@#001 112 ; вызов подпрограммы по адресу 001 112


Подпрограмма 001 112:
------------------------------

001 112: MOV #114 740,R1 ; записать адрес 114 740 в регистр R1

Цикл:
001 116: TST (R1) ; проверить, что за число находится по адресу (R1)
001 120: BEQ 001 140 ; если по этому адресу находится 000 000, то выйти из подпрограммы

Если же по адресу (R1) ненулевое число, то
001 122: MOV (R1)+,@#177 724 ; положить это число в ячейку 177 724 ; R1=R1+2
Кстати, 177 724 - это тестовый адрес регистра Б10-84 (ПДУ, ИРПС1).
Мы туда отправляем данные ОЗУ начиная с ячейки 114 740 и выше, пока не найдём нулевое значение.
Судя по вышеприведённому коду, у нас в ОЗУ такие данные:
114 740: 000 012
114 742: 000 015
144 744: 000 000

Подождать:
001 126: JSR PC,@#016 374 ; вызов подпрограммы по адресу 016 374
Данные для подпрограммы:
001 132: 000 002
001 134: 000 300

001 136: BR 001 116 ; вернуться на 001 116

Возврат в основную программу
001 140: RTS PC
------------------------------

Далее:

000 462: MOV @#037 776,R2 ; записать данные из ячейки по адресу 037 776 в регистр R2
000 466: JSR PC,@#001 030 ; вызов подпрограммы по адресу 001 030
см. выше.

Продолжаем:

000 472: MOV #000 123,@#114 744 ; положить число 000 123 по адресу 114 744
000 456: JSR PC,@#001 112 ; вызов подпрограммы по адресу 001 112
см. выше

Цикл ожидания:
000 504: NOP ; нет операции
000 506: BR 000 504 ; перейти на 000 504

Всё.
Программа остановилась и ждёт прерываний.

Буду более подробно разбираться с блоками.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 06:53:46 · Поправил: darkstar (13 Ноя 2013 07:42:47) #  

Подпрограмма 016 374:
----------------------------
Осуществляет задержку

входные параметры:
первый параметр (R4) - счётчик, (число проходов)
второй параметр (R1) - начальное число для обратного отсчёта
используемые регистры:
R1, R2, R4

Сохраняем регистры:
016 374: MOV R4,-(SP) ; занести значение регистра R4 в стек; SP=SP-2
016 376: MOV R1,-(SP) ; занести значение регистра R1 в стек; SP=SP-2
016 400: MOV R2,-(SP) ; занести значение регистра R2 в стек; SP=SP-2

016 402: MOV 000 006(SP),R2 ; занести в R2 содержимое ячейки по адресу SP+6, т.е. адрес возврата из подпрограммы

016 406: MOV (R2)+,R4 ; R4 = (R2), R2 = R2+2; занести в R4 значение ячейки, следующей первой за командой вызова подпрограммы (первый параметр); увеличить R2
016 410: MOV (R2),R1 ; R1 = (R2); занести в R1 значение ячейки, следующей второй за командой вызова подпрограммы (второй параметр)

016 412: ADD #000 004,000 006(SP) ; сдвинуть адрес возврата из подпрограммы на 4 байта вперёд (т.е. на два слова вперёд).
Адрес сдвигаем вперёд, т.к. сразу за командой вызова подпрограммы идут два слова с данными.

Цикл:
016 420: DEC R4 ; R4=R4-1, уменьшаем счётчик на единицу
016 422: BEQ 016 434 ; если R4 = 0 (счётчик обнулился), то перейти на 016 434 (восстановление и выход)
016 424: MOV (R2),R1 ; R1 = (R2); загрузить параметр-2 в регистр R1
Цикл:
016 426: DEC R1 ; R1=R1-1
016 430: BNE 016 426 ; если R1 не равен 0, то перейти на 016 426

016 432: BR 016 420 ; перейти на 016 420

Восстанавливаем регистры:
016 434: MOV (SP)+,R2 ; восстановить значение регистра R2 из стека; SP=SP+2
016 436: MOV (SP)+,R1 ; восстановить значение регистра R1 из стека; SP=SP+2
016 440: MOV (SP)+,R4 ; восстановить значение регистра R4 из стека; SP=SP+2

016 442: RTS PC ; возврат из подпрограммы

У нас входные данные:
R4 = 000 002
R1 = 000 300
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 11:16:51 #  

Я ошибся с таблицей прерываний.

000 100 - подпрограмма обработки внешнего прерывания IRQ2.
Сигнал "ГОТОВ" = 0 В вызывает это прерывание.
Но чтобы сигнал сформировался, нужно записать 000 001 по адресу 060 340.

000 270 - подпрограмма обработки внешнего прерывания IRQ3.
Возникает, когда ИРПС принял очередной байт.

000 340 - подпрограмма обработки прерывания от клавиатуры и валкодера.
Как только нажимаем клавишу или поворачиваем валкодер, блок Б10-38 формирует сигнал "VIRQ кл" или "VIRQ кпн". Эти сигналы получает блок Б10-82, и сам формирует запрос на прерывание для МП (сигнал "VIRQ").
Если прерывание разрешено, то МП отвечает сигналами "IAKO" и "DIN".
При поступлении этих сигналов, блок Б10-82 выставляет адрес прерывания 000 340.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 11:32:00 · Поправил: darkstar (14 Ноя 2013 10:44:14) #  

Видимо я пошёл не по той ветке (программа ушла на тестирование ПЗУ и связь с ПДУ), и на адресе 177 716 всё же что-то есть.

Допустим, что все проверки прошли успешно, и пришёл сигнал "ГОТОВ".
Возникает прерывание 100, и мы переходим на адрес, следующий за 034 414:

034 416: MOV #000 000,@#060 340 ; пишем число 000 000 в регистр 060 340.
Тем самым мы обращаемся к регистрам блока Б10-82 и блокируем сигнал "ГОТОВ".

034 424: MOV #000 001,@#110 766 ; пишем число 000 001 по адресу 110 766.

034 432: TRAP 044 ; вызов функции с агрументом 044

034 434: TRAP 023 ; вызов функции с агрументом 023

034 436: RTS R3

Адреса блока Б10-82 в системной магистрали:

060 000 - доступ к блочной магистрали
060 040 - клавиатура
060 100 - индикация
060 140 - управление АЦП
060 200 - чтение АЦП, управление блочной магистралью
060 240 - индикация, чтение состояния ИРПС
060 300 - данные ИРПС
060 340 - вектор прерываний, сигнал "ГОТОВ"

Адреса регистров блоков в блочной магистрали:

060 002 - управляющий код Б1-24
060 022 - контроль Б1-24
060 401 - управляющий код Б1-25
061 000 - управляющий код Б1-25
060 021 - контроль Б1-25
064 000 - управляющий код Б1-28
074 000 - контроль Б1-28
064 411 - управляющий код Б1-29
060 031 - контроль Б1-29
062 400 - управляющий код Б10-58
063 006 - управляющий код Б10-58
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 12:57:58 · Поправил: darkstar (13 Ноя 2013 13:11:27) #  

Посмотрим, что там случается при выполнении команды "TRAP".

Возникает программное прерывание по адресу 000 034.
В таблице векторов прерываний по этому адресу указан адрес перехода 004 504.

TRAP-диспетчер:
---------------------
Сохраняем регистры:
004 504: MOV R3,-(SP) ; SP=SP-2; занести значение регистра R3 в стек
004 506: MOV R4,-(SP) ; SP=SP-2; занести значение регистра R4 в стек

004 510: MOV 000 004(SP),R3 ; записать в R3 содержимое ячейки по адресу SP+4, т.е. адрес возврата из прерывания

004 514: MOV R3,R4 ; R4 = R3 = адрес возврата из прерывания

004 516: MOV -(R3),R3 ; R3 = (R3-2) ; достали команду TRAP, вызвавшую прерывание, и положили в регистр R3

004 520: BIC #177 600,R3 ; обнулить все разряды команды TRAP, кроме младших 7 бит - достали аргумент TRAP-а

004 524: MOV R3,-(SP) ; полученный аргумент кладём в стек

004 526: CMP #000 010,R3 ; сравниваем 000 010 - R3

004 532: BMI 004 540 ; если R3 меньше 10, то перейти на 004 540

Если R3 больше 10, то:
004 534: CLR R3 ; очистить R3

004 536: BR 004 544 ; перейти на 004 544

004 540: SUB #000 010,R3 ; вычесть 10 из R3

004 544: MOVB 004 600(R3),-(SP) ; положить в стек значение 004 600+(R3)

004 550: BIC #177 400,(SP) ; очистить старший байт ячейки стека

004 554: ASL R3 ; сдвинуть R3 влево

004 556: JSR PC,@004 646(R3) ; перейти к подпрограмме по адресу 004 646+(R3)
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 13 Ноя 2013 16:54:54 #  

В общем, хорошо бы заиметь логический анализатор.
Никто не подскажет недорогую USB-модель с не менее чем 20 входами?
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 13 Ноя 2013 19:30:14 · Поправил: hs_19 (13 Ноя 2013 19:32:59) #  

darkstar
В общем, хорошо бы заиметь логический анализатор.
С иходниками не вариант?
Понятно, что в чужом коде ковыряться тяжко...
Я попытки предпринимал найти, потом забросил.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 14 Ноя 2013 02:06:25 · Поправил: darkstar (14 Ноя 2013 04:13:32) #  

Вариант, но с анализом полегче :)
Я ж систему команд 1801ВМ1 только месяц назад впервые увидел :)
Тем более, очень скудно описано управление блоками. На блок управления преселектором даже адреса нет...

Наверное на Ардуино-2560 попробую смастрячить простенький анализ - кое какие мысли есть.
Мне же нужно за шиной следить, с известным протоколом и невысокой тактовой.
Ассемблерный код должен успевать выполняться на 16 МГц тактовой, чтобы успевать захватывать команды и данные с шины, и сохранять в ОЗУ. Потом по USB перегонять в гипертерминал.

Вы чем смываете лак на платах?
Хочу подключиться к линиям.
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 14 Ноя 2013 08:05:20 #  

darkstar
Вы чем смываете лак на платах?
Хочу подключиться к линиям.


Остро заточенным скальпелем) Медленно и акуратно, что бы лишнего не порезать.
Проблема у меня была в сиреневой мастике, которая крепит проволочные перемычки к платам, видимо что то агрессивно - кислотное в состав входило, подразъело дорожки на нескольких субмодулях (а может и морской таман соленый, коротче х.з....) пришлось счищать мастику и фрагменты лака, паять новые дорожки взамен поеденных.
Смыть органическими растворителями лак не получилось, может времени нужно больше, чтобы оно хоть как то разрыхлилось, на самом деле этот лак запекается, так что смыть его не легко...
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 14 Ноя 2013 10:05:00 · Поправил: darkstar (14 Ноя 2013 10:06:47) #  

Народ говорит, что такой лак вроде как снимается уничтожителем краски Abro.
Сам не пробовал, не знаю. Потёр ацетоном - ничего не изменилось.
Буду скальпелем сверху сцарапывать...
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 14 Ноя 2013 11:51:05 #  

darkstar
Народ говорит, что такой лак вроде как снимается уничтожителем краски Abro.

Думаю, что подойдет любой, не только Абро,
Престиж тот же. Воняет дико, аж глаза слезятся.
И отмывать плату от отмывателя краски потом придется... А у них есть особенность
- растворяющая составляющая смешана с эмульсией на базе парафина, если я не
ошибаюсь. Растворитель выветривается а парафин остается, вот его потом тоже убирать вместе с вспученным лаком)
Так что скальпелем, не торопясь и экологичней и чище.
Можно еще паяльком лак сжечь, но тоже дым воняет во первых, а во вторых легко содрать
дорожки, если паяльник кипятит выше 250-260 градусов и не держит этой температуры.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 14 Ноя 2013 12:01:10 #  

Нее... я как-то в юности жёг паялом плату от какого-то логического устройства на транзисторах (добывал МП26Б) - припой под лаком плавится, а лак не горит.
Приду домой - поскоблю...
СИРИУС1
Участник
Offline1.2
с апр 2009
Омск
Сообщений: 72

Дата: 14 Ноя 2013 13:27:09 #  

У нас на заводе была смывка специальная, из растворителя и еще чего-то там.. Очень вонючая.
Проблема у меня была в сиреневой мастике, которая крепит проволочные перемычки к платам
Это отдельная тема! На эту мастику часто клеили р/детали к платам, кондеры, реле, транзисторы... Разъедала выводы деталей совершенно. Причем в основном те детали что с позолоченными выводами.
Приходит агрегат в ремонт, а в нем все транзисторы отвалились и внутри болтаются :)
Была инструкция - увидел битумную мастику - меняй сразу все детали на которых она есть!
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 14 Ноя 2013 16:48:20 · Поправил: darkstar (14 Ноя 2013 16:49:22) #  

Поцарапал лак на дорожках - царапается легко, слой очень тонкий.
Теперь надо навешать 32 линии.
Пошёл разматывать МГТФ.
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 14 Ноя 2013 16:56:30 #  

СИРИУС1
Ошибались наверное, в рецептуре)
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 16 Ноя 2013 03:02:58 #  

Навешал все линии:

Попробую написать программу.
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2980

Дата: 16 Ноя 2013 11:25:23 #  

darkstar
Попробую написать программу.
Для анализатора?
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 16 Ноя 2013 12:10:50 · Поправил: darkstar (16 Ноя 2013 12:11:05) #  

Для начала - да, потом посмотрим.
Может получится отключить штатный ЦП и память, а рулить ардуиной.
Реклама
Google
 Страница:  1  2  3  4  5  ...  12  13  14  15  16  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.026; miniBB ®