Автор |
Сообщение |
|
Дата: 21 Янв 2014 15:58:16 · Поправил: darkstar (21 Янв 2014 16:27:54)
#
ИРПС вообще не нужен :)
Устал я чего-то... но это временная слабость :) Как глянул сколь кода ещё лопатить - аж в глазах задвоилось... Хитрые выверты программёров сносят башню.
Вот отосплюсь - и возьмусь с новыми силами распутывать этот клубок. Никуда он от меня не денется.
Тянул за две ниточки - обработка прерывания от клавиатуры, и обработка прерывания от ИРПС.
Обе нитки заводят в дебри перекрёстного кода с условиями по данным из ОЗУ (которых, понятное дело - нету).
Но чем больше процедур прописываю, тем яснее становится ситуация :)
25 % кода уже собрано в последовательный файл. Плюс примерно столько же - в разрозненных функциях.
Так что не всё так плохо.
Непонятные с логической точки зрения команды оказались не командами, а данными, вызываемыми функциями весьма необычным способом :)
Некоторые ячейки забиты бесполезными командами, навроде условного перехода к следующему шагу: если условие выполняется, то осуществляется переход, если не выполняется - переход происходит всё равно...
В ПЗУ нет чётко выделенной области команд и области данных - они нашинкованы последовательно и вперемешку.
Всё это создаёт впечатление сырого кода - сляпали на скорую руку, сдали изделие и забыли. Одно несохранение уровня громкости чего стоит...
Сам принцип сканирования клавиатуры тоже не радует - аппаратно отслеживается нажатие, а какая именно клавиша нажата должен определить процессор в результате исполнения довольно сложного и длительного алгоритма. При этом если пользователь отпустил клавишу, нажатие не считается...
Кстати, второй гетеродин фиксирован и не двигается :(
Зато можно подвигать третий гетеродин 128 кГц +/- 10 кГц с шагом 10 Гц.
Вижу это так: первый гетеродин настраиваем со смещением, чтобы полоса сигнала прошла фильтры ПЧ2. Третий гетеродин ставим на скат фильтра, чтобы получить нужную боковую...
|
|
Дата: 21 Янв 2014 19:36:30 · Поправил: hs_19 (21 Янв 2014 22:04:35)
#
Кстати, второй гетеродин фиксирован и не двигается :(
Зато можно подвигать третий гетеродин 128 кГц +/- 10 кГц с шагом 10 Гц.
Как вариант - ввести коррекцию показаний частоты при приеме нбп, на величину сдвега мсн.
Кстати, второй гетеродин фиксирован и не двигается :(
Знаю, мсн дрыгается...
|
Реклама Google
|
|
|
Дата: 22 Янв 2014 07:10:57 · Поправил: darkstar (22 Янв 2014 10:01:38)
#
|
|
Дата: 22 Янв 2014 11:33:36
#
Да, блин, не так все просто)
Но если получится - будет круто.
|
|
Дата: 22 Янв 2014 13:12:34 · Поправил: darkstar (23 Янв 2014 06:33:48)
#
|
|
Дата: 24 Янв 2014 11:54:52
#
Собрано 65%:
http://www.radioscanner.ru/uploader/2014/rom_24_01_2014.zip
С адреса 023 150 идут какие-то огромные таблицы. Похоже это и есть настроечные таблицы преселектора :)
Кстати, подумалось мне - ведь ёмкости в преселекторе подстраиваются довольно точно, и на борту РПУ есть АЦП!
А не откорректировать ли настроечную таблицу самому?
Весь процесс можно автоматизировать... |
|
Дата: 24 Янв 2014 12:27:31
#
darkstar
А не откорректировать ли настроечную таблицу самому?
Весь процесс можно автоматизировать...
Не понял идеи. Он же вроде автоматизирован? Или я не про то? Таблица, насколько я понимаю - зараннее просчитанные величины емкостей под конкретное значение частоты настройки, с каким то шагом. Кстати, таблицы могут быть еще и про АРУ. Стадо делителей с ключами переключают. АЦП по видимому туда и увязан.
|
|
Дата: 24 Янв 2014 15:00:18 · Поправил: darkstar (24 Янв 2014 17:10:59)
#
Идея такова:
1. изготовление преселектора не идеально, следовательно будет разброс относительно заранее посчитанных данных.
2. подать на вход частоту.
3. замерить уровень радиочастоты в тракте РПУ при помощи АЦП.
4. подвигать конденсаторы преселектора немного туда-сюда. Вплоть до снятия кусочка фактической АЧХ.
5. При улучшении ситуации - запомнить комбинацию.
6. перейти к следующей частоте, см. п. 2
Если генератор управляется ЭВМ (к примеру - трансивер с интерфейсом), то этот муторный процесс можно автоматизировать.
Только есть ли смысл?
|
|
Дата: 24 Янв 2014 20:11:27 · Поправил: hs_19 (24 Янв 2014 20:28:36)
#
darkstar
Только есть ли смысл?
Думаю нет. Полоса по входу посчитана и оптмизирована. Тем паче, что у ОНИИПа есть неплохой опыт по преселекторам данного исполнения. Я сужу по эволюции от блока б2-32 Р-160го.
Идея та же, реализация несколько иная, более компактная и умная.
Думается мне преселектор прозрачен по низам 30-50 кГц, а по верхам 170-200. Сузить уже первого фос - зачем? Алгоритм анализа помеховой обстановки не навернется?
|
|
Дата: 25 Янв 2014 05:31:52
#
Да, преселектор у 160-ого знатный.
Ну тогда не о чем и говорить.
|
|
Дата: 26 Янв 2014 15:52:20
#
Не нашёл ответной части на разъём "ДУ".
Врезал рядом 9-пиновый разъём RS-232 и перекинул все линии туда. Будет удобнее работать.
|
|
Дата: 26 Янв 2014 16:00:55 · Поправил: hs_19 (26 Янв 2014 16:01:41)
#
darkstar
Поторопился...
Разъемы есть, - не дефицит у меня.
RS232 вывел уже с преобразованного с20?
|
|
Дата: 26 Янв 2014 16:39:50 · Поправил: darkstar (26 Янв 2014 16:40:27)
#
Может и поторопился, но внешне хорошо вошло :)
Чисто механически врезал разъём и перекинули линии с "ДУ" на него. Благо там тоже было 9 проводков.
Вот только распиновки нету у меня.
Знаю, где вход-выход, земля и включение, остальные 3 линии пока непонятно что.
Преобразование уровней решил внутри РПУ не делать. Тем более, что можно было напрямую взять ТТЛ уровни.
Пускай будет оптическая развязка.
|
|
Дата: 26 Янв 2014 16:53:54 · Поправил: hs_19 (26 Янв 2014 17:28:25)
#
darkstar
Понял.
На всякий случай:
Х22
1. Вкл.Ду
2. Выход ПРД
3. Вх.ПРД
4. Выход ПРМ
5. Вх. ПРМ
6. Корп.
7._
8. Корп.
9. ГГ ПП
10. Выход ТЛФ.
Что такое ГГ ПП с ходу не нашел, уходит в КРОСС куда то...
|
|
Дата: 27 Янв 2014 16:51:33 · Поправил: darkstar (27 Янв 2014 16:53:07)
#
|
|
Дата: 27 Янв 2014 16:58:30
#
darkstar
Есть такая надпись. После нее остается на той частоте настройки, на которой тестировался.
|
|
Дата: 27 Янв 2014 17:20:46
#
Хм... Тогда вопрос - после какого теста эта надпись появляется и сколько минут длится этот тест?
|
|
Дата: 27 Янв 2014 20:54:31
#
Длинный.
Тестируются все режимы и несколько частот, по видимому, расчет в длинном тесте направлен на полную проверку фильтров, синтеза и преселектора, т.к. начинает с самых низов.
Там опрч и длинный тест. Программы 01 и 02.
|
|
Дата: 28 Янв 2014 02:30:10
#
Наверное у меня не хватило терпения дождаться :)
|
|
Дата: 28 Янв 2014 08:31:43 · Поправил: hs_19 (28 Янв 2014 08:32:40)
#
darkstar
Возможно)
Главное -динамик выключить, а то тоном орет очень уж...
|
|
Дата: 28 Янв 2014 14:37:49 · Поправил: darkstar (28 Янв 2014 14:48:16)
#
Усё. Дизассемблирование завершено:
http://www.radioscanner.ru/uploader/2014/rom_28_01_2014.zip
Продолжаю разбирать подпрограммы.
Теперь уже со стороны адресов блоков, т.к. теперь есть весь текст программы.
ПЗУ-шка от Конкурса, имхо, новее. Там есть веточки, которые пропущены у hs_19.
Кстати, громкость запоминается в ОЗУ, но почему-то при включении не прописывается в блок... |
|
Дата: 28 Янв 2014 15:20:10
#
darkstar
Поздравляю с окончанием!
Труд немалый)
|
|
Дата: 28 Янв 2014 15:34:32 · Поправил: darkstar (28 Янв 2014 15:39:02)
#
Чтобы поставить сзади гнездо СОМ-порта, пришлось снимать жопу...
м-да... и этот пучёк тоненьких проводов питает все схемы РПУ? и ленточные кабели с разъёмами...
Заменить разъёмы нечем, да и работа неслабая - всё перепаять.
Напрямую МГТФ-ом? Как-то нехорошо.
Вот думаю - заменю старые УФРПЗУ на новые ЭРПЗУ, так и токопотребление снизится :)
И вот ещё что: ярковаты индикаторы. Может как-нибудь скинуть ток, только равномерно?
Тут два пути - врезать гасящие резисторы по всем линиям (долго и муторно), или изменить скважность (но это не спасёт от импульсного потребления тока).
|
|
Дата: 28 Янв 2014 16:10:02 · Поправил: hs_19 (28 Янв 2014 20:16:47)
#
darkstar
Я мгтф везде поставил. Правда на ножевые разъемы он не запаковался, пришлось
из кросса корчевать синие старые, вместо них паять новые, у которых под пайку
ответные части. Труда немало было угрохано. На старых проводах - разъемах падало прилично.
Особливо доставляла картинка канала +5В на осциллографе, когда ручку крутишь.
Точишко на индикаторах скинуть можно резисторами, - работы тоже немеряно, как вариант:
тонкий рез пп и сверху смдшный резистор.
|
|
Дата: 28 Янв 2014 16:48:48
#
|
|
Дата: 28 Янв 2014 17:59:31 · Поправил: darkstar (28 Янв 2014 18:20:40)
#
spbtvmaster, hs_19
Моё почтение за труд!
Да ерунда, всего каких-то восемь тысяч строк :)
В принципе, IDA сделал бы это за 3 секунды, но тогда я бы так и не разобрался в языке...
Теперь вся программа загружена в мою память, а по ночам снится ассемблерный код :)
Но ещё рано радоваться - цель-то пока не достигнута...
|
|
Дата: 29 Янв 2014 21:40:09
#
всего каких-то восемь тысяч строк :)
Да уж!
|
|
Дата: 29 Янв 2014 22:36:12
#
волшебство =)) /учась в пятом классе раздобыли спектрум с книжкой /игра была порядка 11 / на 10ой тысяче мыргнул свет =( больше набирать Не рискнули листая талмут /был бейсик /
Станиславу огромное респектище за проделаную работу / почитываю сторонний форум /интересно что и как /да укнц обещали живую подогнать
сорри за офф
|
|
Дата: 29 Янв 2014 23:17:06 · Поправил: nikifor_r (29 Янв 2014 23:17:44)
#
darkstar
Тут два пути
Есть еще один путь. На плате 5005 микросборки 04АР01 можно запитать через диод, но опасно - напряжение на входе может превысить напряжение питания. Или у 04KT06 земляной вывод подключить к земле через диод, возможно через германиевый. Ток через светодиды должен уменьшиться.
|
|
Дата: 30 Янв 2014 02:20:26 · Поправил: darkstar (30 Янв 2014 02:35:57)
#
nikifor_r, хм, интересно. Может и попробую. Спасибо.
Нашёл процедуры обращения к адресам блоков.
Преселектор и мелкая сетка довольно-таки понятно как устанавливаются.
Но не могу найти установку крупной сетки... может она с чем-то совмещена?
По клавиатуре пока никак - хожу по адресам из таблицы и слабо понимаю, что за перестановки с данными происходят.
Уже устал ждать программатор с анализатором :)
Выписываю соответствие между адресами портов и ячейками ОЗУ, откуда происходит запись в порт. Это поможет разобраться, что за операции производятся над ячейками.
Опять покрутил ручку настройки. Если крутить медленно, то перестраивается нормально. Но если крутить быстро, то проц не успевает обрабатывать данные - перестройка всё равно идёт медленно. Раньше думал заменить узел целиком, или хотя бы диск с оптопарой на детали от мышки. Но теперь думаю будет достаточно просто выточить вал поплотнее, без люфтов.
Сверху стоит екд-300, кручу также и его - совсем нет тормозов и люфтов, перестройка мгновенная. Вот если бы Бригантина так могла!
Думаю, много времени убивается на анализ и распределение усиления по тракту. Это же должно происходить после каждого тика валкодера...
|
Реклама Google |
|