На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 170,
участников - 23 [ Timofejka, REDDIS, entropy, Fenix747, Sergey4565, Carwizard, AydZ, Voevoda, Silent, starche, muha131, vkot2013, Konstantin, maikl60, marquis, motor, slava68, Евгений1121, ua6lfj, Edd, evga, darwin, RadioRT]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Разработка, ремонт, схемы, модификации —› Проект микроконтроллерного управления чипом R820T с целью создания на его основе самодельных РПУ 
Портативные любительские радиостанции Yaesu


Yaesu FT-60R
руб.

Yaesu VX-3R
руб.

Yaesu VX-6R
руб.

Yaesu VX-8DR
руб.

Yaesu FT-1D
руб.
 Страница:  ««  1  2  3  4  5  6  7  8  9  10  »»Поиск в теме
Автор Сообщение
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 16 Мар 2018 14:01:52 · Поправил: killer258 (16 Мар 2018 15:09:49) #  

А с управлением усилением не разбирались ещё и с полосой фильтра ПЧ?

Собирал перехваты при движении ползунка регулировки усиления. Посылки идут в регистры 0х05 и 0х07. Тут всё оказалось довольно просто.

Tuner Gain _ рег.[0x05] _ рег .[0x07]
---------------------------------------
0 дб __________ 0х10 ______ 0х60
0.9 дб _________ 0х11 ______ 0х60
1.4 дб _________ 0х11 ______ 0х61
2.7 дб _________ 0х12 ______ 0х61
3.7 дб _________ 0х12 ______ 0х62
7.7 дб _________ 0х13 ______ 0х62
8.7 дб _________ 0х13 ______ 0х63
12.5 дб_________ 0х14 ______ 0х63
14.4 дб_________ 0х14 ______ 0х64
15.7 дб_________ 0х15 ______ 0х64
16.6 дб_________ 0х15 ______ 0х65
19.7 дб_________ 0х16 ______ 0х65
20.7 дб_________ 0х16 ______ 0х66
22.9 дб_________ 0х17 ______ 0х66
25.4 дб_________ 0х17 ______ 0х67
28.0 дб_________ 0х18 ______ 0х67
29.7 дб_________ 0х18 ______ 0х68
32.8 дб_________ 0х19 ______ 0х68
33.8 дб_________ 0х19 ______ 0х69
36.4 дб_________ 0х1A ______ 0х69
37.2 дб_________ 0х1A ______ 0х6A
38.6 дб_________ 0х1B ______ 0х6A
40.2 дб_________ 0х1B ______ 0х6B
42.1 дб_________ 0х1C ______ 0х6B
43.4 дб_________ 0х1C ______ 0х6C
44.5 дб_________ 0х1D ______ 0х6D
48.0 дб_________ 0х1E ______ 0х6D
49.6 дб_________ 0х1F ______ 0х6E



Полоса фильтра ПЧ -это биты 6:5 регистра 0х0В:

00 ------------> widest
01 и 10 ----> middle
11 ------------> narrowest

(SDR-sharp и HDSDR ставят "narrowest").


кроме того, в регистре 0х09 бит 7 описывается как "IF Filter Power ON/OFF"
0---> on
1----> off

Вот только пока не ясно, что здесь означает "OFF": - просто отключится питание этого узла и сигнал перестанет вообще с него идти, или же он станет "прозрачным" , и сигнал со смесителя пойдёт наружу напрямую (как хотелось бы мне, чтобы ставить снаружи фильтр с другим значением ПЧ. У меня есть такой на 30.150 мгц с узкой полосой. от вч блочка Sanyo CLT 55KM)
Надо будет провести эксперимент : прямо во время работы приёмника , по I2C установить в единичку бит 7 регистра 0х09 и посмотреть, пропадёт сигнал на выходе ПЧ или нет
ZayaTCCC
Участник
Offline1.7
с апр 2016
Краснодар
Сообщений: 286

Дата: 16 Мар 2018 15:43:06 · Поправил: ZayaTCCC (16 Мар 2018 15:48:22) #  

Я про вот это:


Надо глянуть в исходниках extio_rtl_tcp и librtlsdr, что они там меняют.
Реклама
Google
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 16 Мар 2018 16:01:32 · Поправил: killer258 (16 Мар 2018 16:29:21) #  

По перехватам I2C было видно,что при работе HDSDR в случае перехода в режим Direct Sampling помимо прочего, происходит запись в регистр [0x09]<---0xC0 , то есть бит 7=1
и значит, выход фильтра ПЧ при этом становится прозрачным (и скорее всего, выходное усиление 0-39 дб также наверное, перестаёт быть, поскольку этот узел выключается. Но, тут уж, надо желать, чтоб лишь бы не ослабляло, а шло бы 1:1.).

И, наверное, вход тоже становится прозрачным благодаря записи чего-то в какой-то ещё регистр, раз этот директ самплинг существует как режим. А раз это так , то значит, выяснив, какими битами каких регистров отключается входной RF фильтр при директ самплинге, мы можем загнать чип в такой же точно режим, но оставить неотключенными, работающими VCO и смеситель.
И тогда путь к приёму частот от длинных волн и выше будет открыт. При использовании на входе своего внешнего RF фильтра, а на выходе своего ПЧ фильтра повышенной частоты (около 27-30 мгц), ну и добавить каскад своего усиления в тракте ПЧ, поскольку вместе с отключением фильтра ПЧ пропадает и усиление VGA в чипе. Хотя, на длинных и средних волнах не нужна чувствительность в доли микровольта.
electronic man
Участник
Offline1.2
с мар 2008
Минск
Сообщений: 119

Дата: 16 Мар 2018 17:15:48 · Поправил: electronic man (16 Мар 2018 19:15:12) #  

killer258
Боюсь, динамического диапазона входных цепей R820T(2) на КВ, длинные (а там есть что ловить?) и средние волны не хватит. Где-то я видал результаты измерений одного дядьки... Если найду - выложу.

ZayaTCCC
Похожий проект, только чип T2:Управление R820T2
дык это оно и есть

to all: https://www.rtl-sdr.com/decapping-the-r820t-and-rtl2832u-chips/ если боян - извиняйте...
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 16 Мар 2018 18:22:33 · Поправил: killer258 (16 Мар 2018 19:06:07) #  

Я про вот это:

А вот про это спасибо, что напомнили. Действительно, пришло время посмотреть теперь и это тоже:

Увеличить


Я вспомнил, что когда я в этом списке производил переключения, то по I2C шине каждый раз проскакивал какой-то обмен, но мне тогда было интереснее другое, как поставить частоту.
А сейчас я пожалуй, возьму и проснифферю все эти пункты меню с полосой частот, посмотрим, что же там при этом меняется в регистрах.
ZayaTCCC
Участник
Offline1.7
с апр 2016
Краснодар
Сообщений: 286

Дата: 16 Мар 2018 18:57:37 #  

Это выбор полосы для АЦП, но возможно полоса фильтра в драйвере привязана к ней.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 16 Мар 2018 19:06:45 · Поправил: killer258 (17 Мар 2018 16:13:33) #  

возможно полоса фильтра в драйвере привязана к ней.
я тоже так предполагаю

длинные (а там есть что ловить?)
У нас тут например, есть на этом диапазоне "ВЧ-связь" по ЛЭП


Оформите теперь все в виде подключаемого файла .h и файла с примером использования и можно на github выкладывать...
Я думаю, для гитхаба в этом почти ничего нового не будет. Это получится практически тот же самый ихний исходник драйвера tuner_r82xx.c , из которого просто ,было выброшено то, что лично я посчитал ненужным для решения моей задачи, и добавлен учёт PPM

Ещё неизвестно, будет ли он с R820T2 работать. Вдруг там слэйв-адрес другой, я не снифферил обмен с Т2
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 17 Мар 2018 12:17:27 · Поправил: killer258 (17 Мар 2018 18:49:12) #  

Просмотрел я логи со всех полос, от 0.25 до 3.2 мгц абсолютно идентичны, кроме самого последнего (3.2 мгц), в котором к регистрам нашего чипа обращений не оказалось вообще, они в нем есть только к несуществующему чипу. (в остальных логах обращения к несуществующему тоже есть)

Регистр 0х0B вообще не переписывался ни в одном из логов. а именно он определяет ширину ПЧ
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 17 Мар 2018 16:20:31 · Поправил: killer258 (17 Мар 2018 17:00:13) #  

Начинаю подумывать о протоколе дистанционного управления этой атмегой по RS-232 или RS-422 по проводам, или по эфиру с брелка автомобильной сигнализации, или может, управлять через домашний радиотелефон DECT, набирая номер на клавиатуре трубки в DTMF,который, будучи принят базовым блоком,будет декодирован и интерпретирован атмегой как частота приёма в килогерцах, для чипа.. По радиоканалу декта можно было бы передать обратно аудио демодулированный сигнал. Только дект наверное, не "пробьёт" несколько этажей, если всё это на крыше будет находиться, он только как радиорелейка , в прямой видимости работать может. С воздушным шаром или квадрокоптером..

Я так полагаю, что в случае варианта RS232/422 передаваться в атмегу будет 3 или 4 байта для установки частоты приема, и при неободимости также два байта для установки усиления, и возможно, ещё какие-то команды, либо дополнительно одна универсальная команда на все случаи жизни, просто заставляющая атмегу в регистр Х чипа записать байт У.
Avtomatizator
Участник
Offline3.0
с июн 2015
Ростов-на-Дону
Сообщений: 2490

Дата: 17 Мар 2018 19:19:55 #  

killer258
Начинаю подумывать о протоколе дистанционного управления - можно обратить внимание на микроконтроллеры ESP8266(Wifi 802.11), ESP8285(Wifi 802.11), ну, и относительно новый ESP32(Wifi 802.11+Bluetooth v4.2 (в том числе Low Energy)) У него увеличенное количество портов и периферии: ADC, DAC, 4 SPI, 2 I2S, 2 I2C, 3 UART, CAN. Интерфейс SD карт (как мастер так и слейв). Ethernet MAC. Готовых модулей на основе этих МК на Ali навалом. Готовых проектов и документации тоже, один из сайтов разработчиков --> esp8266 - Сообщество разработчиков. P.S. МК довольно интересный, так сказать, всё в "одном флаконе" :) Единственный "минус" - это "дальнобойность". Давно не интересовался, может быть уже и есть шилды с повышенной "пробиваемостью". А, так, в ознакомительных целях делал на них несколько простых проектов, зарекомендовали чипы себя с хорошей стороны. Ещё бы, ESP32 - двухъядерный 32-битный Tensilica Xtensa LX6 с FPU и MAC. 240 МГц (600 DMIPS), 448 кБайт ПЗУ, 520 кБайт ОЗУ. Внешние ОЗУ/ПЗУ на SPI интерфейсе, до 4-16 МБайт. И цены на модули - демократические :) Рекомендую для всяких "самоделок". Хотя, это дело вкуса :)
vinny
Участник
Offline2.9
с июн 2013
Zhukovskiy
Сообщений: 767

Дата: 17 Мар 2018 21:46:51 #  

Во-вторых, отпиленную ножовкой левую часть платы не надо откладывать в сторону, а лучше вообще не отпиливать, а предусмотреть некую коммутацию, чтобы в носимом варианте приемник был аналоговым, а при подключении к компьютеру превращался в полноценный SDR.
Ветерок, сейчас компьютеры стали настолько маленькими, что их можно вполне уместить в корпус.

А аналоговость... Это на каждый тип модуляции свой приёмник собирать. При всей красоте задумки практического применения пока не видно (а помимо приёмников неплохо бы прикрутить запись аудио, сохранять в файлы с указанием даты, времени, частоты, туда же RTC прилеплять). Да и для приёма одной частоты использовать приёмник, с шириной 3-4МГц - как раз то самое "из пушки по воробьям", это вместо одного плагина в SDR# кучу аналоговых приёмничков для приёма нескольких сигналов в одной полосе (да и по "диктофону" на каждый).

Кстати для приёма ДВ-СВ-КВ можно прикрутить что-то вроде SI4735, двойной приём и всё такое... (хотя там свои недостатки типа невозможности менять модуляцию). На FM тот же TEA5767 (чтобы прям много всего одновременно принимать можно было)...

Плюс раз уж есть микроконтроллеры, то можно декодировать морзянку, ADSB, что-нибудь ещё...

Есть проекты по приёму на 820 чуть ли не от 100кГц, этот функционал тоже как-то прикрутить бы...

Отсутствие ТЗ никак не ограничевает полёт фантазии хотелок.


У меня эта тема возникла из-за того, что ещё года два назад захотелось разместить свисток на крыше впритык к антенне, а не через 30 метров кабеля, но USB работает еле-еле на 10 метров, и то если витой парой только и питание отдельно. Было решено все принимаемые частоты превращать в низкую 3.57, а уж её-то в кабеле не потеряешь, потери ноль, вести вниз.
killer258, ну с таким подходом может и есть некоторый смысл, но Raspberry Pi же есть, им по сети управлять (хотя питание и патчкорд тянуть). Или активную антенну MiniWhip с питанием по проводу.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 17 Мар 2018 23:02:35 · Поправил: killer258 (17 Мар 2018 23:08:41) #  

Функция для использования в программах как бы есть. А для того, чтобы сделать прошивку для непрограммирующих пользователей, чтоб те могли просто прошить атмегу и с её помощью поиграться с чипом,надо придти к какому-то решению о том, как вводить в атмегу (или другой контроллер, не суть важно) данные о частоте, усилении, PPM, и команды произвольной записи/чтения любого регистра чипа.
Самый тупой вариант, -это ввод всего этого в параллельном коде через ножки портов 128-ой атмеги, которая в ответ на любое их изменение прочтёт свои входы и отправит в чип нужную последовательность.
Второй вариант, который подойдет в том числе и для управления на большом расстоянии- это по RS232, но тут надо будет придумать какое-то программное управление потоком. Какое-нибудь стартовое синхрослово для парсера или ещё что-нибудь. Будет ли длина пакета всегда одной и той же, или будет переменной. Придумать свой протокол или взять что-то стандартно употребляемое. Или управлять терминальными командами, как это сделано в управлении приёмником PCR-1000..Надо что-то выбрать.
fly2015
Участник
Offline1.8
с июн 2006
Новокузнецк
Сообщений: 274

Дата: 18 Мар 2018 08:06:41 #  

Придумать свой протокол или взять что-то стандартно употребляемое.
Может лучше стандартный CAT протокол использовать. Можно будет из многих программ управлять. Тот же SDRSharp это может.
Burr Master
Участник
Offline2.9
с ноя 2006
Самара
Сообщений: 543

Дата: 18 Мар 2018 09:07:26 · Поправил: Burr Master (18 Мар 2018 09:12:32) #  

killer258
fly2015
Может лучше стандартный CAT протокол использовать.
И лучше от Кенвуда, проще не придумаешь. Прост как мычание. Берем мануал TS-2000 в Файлах и в конце мануала список команд, выбираем по вкусу. И HDSDR его понимает. По умолчанию. Нет подходящей (?) - недолго свою написать. Игрался.
ZayaTCCC
Участник
Offline1.7
с апр 2016
Краснодар
Сообщений: 286

Дата: 18 Мар 2018 09:50:35 #  

Я думаю, для гитхаба в этом почти ничего нового не будет. Это получится практически тот же самый ихний исходник драйвера tuner_r82xx.c , из которого просто ,было выброшено то, что лично я посчитал ненужным для решения моей задачи, и добавлен учёт PPM

Как бы ничего нового, но это можно будет спокойно добавлять в свои проекты, не занимаясь разбором работы чужого кода. Если сделать библиотеку под Arduino, можно очень упростить разработку для тех кто с программированием не очень дружит. Опять же, гитхаб - это очень удобно в плане запросов о добавлении новых фич и исправления багов...
Хайо
Участник
Offline3.1
с дек 2015
Оренбург
Сообщений: 9420

Дата: 18 Мар 2018 10:29:04 #  

killer258
мне тоже кажется, что надо управление делать удобным и в плане универсального внедрения в разные проекты. Кому нужен оптимизированный по битам проект, пускай выбирает спецконтроллер и пишет код.
Но цель было изначально, создать универсальную платформу, с простым обращением. Поэтому вспомогательный контроллер для достижения универсальности - разумное решение.

Всётаки массово в магазинах народ найдёт AVR и ST* , осталное уже программирующий народ и профессионалы с больим бюджетом фирмы могут себе позволить широкий спектр контроллеров.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 18 Мар 2018 12:47:03 · Поправил: killer258 (18 Мар 2018 13:24:43) #  

Поэтому вспомогательный контроллер для достижения универсальности - разумное решение.
Своего рода "Master Kit" получится :-) Если бы ещё и свистки были бы в подходящем для этого виде,например, в таком : https://www.rtl-sdr.com/r820t2-breakout-board/

И лучше от Кенвуда, проще не придумаешь. Прост как мычание. Берем мануал TS-2000 в Файлах и в конце мануала список команд, выбираем по вкусу. И HDSDR его понимает. По умолчанию.

я сейчас посмотрел, в общем-то да. Две буквы как код команды,потом несколько параметров и точка с запятой в конце как признак окончания посылки. Кенвудовская команда "FA ххххххххххх ;" во всяком случае, вполне годится для установки или чтения частоты настройки.
Можно это и из терминальной программы отправить, коих в интернете великое множество.
А вот протокол CAT трансивера FT-817 (там просто блок из 5 байтов, первые4 байта- данные и пятый- команда, интервал между байтами не должен превышать 200 миллисекунд) его интересно, HDSDR тоже понимает?
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 18 Мар 2018 13:42:51 · Поправил: killer258 (18 Мар 2018 17:30:58) #  

Во-вторых, отпиленную ножовкой левую часть платы не надо откладывать в сторону,

У меня вначале была мысль не откладывать в сторону, а использовать одну часть внизу, подключенной к работающей HDSDR, а вторую там на крыше впритык к антенне, то есть работа в штатном режиме, но по кабелю передавалась бы ПЧ, а I2C команды от чипа RTL2832 принимать I2C -слэйвом одной атмеги, и далее этой атмегой отправлять команды по RS232 к другой атмеге, той, что находится на крыше, и та бы уже вдувала по I2C в R820T , но тут нас может поджидать засада. RTL2832 не только пишет в чип, но и читает его состояние. Чип R820T отвечает на такой запрос моментально, на нужных тактах SCL, которые ему идут, а при передаче по линии связи с преобразованиями I2c->RS232->I2C возникнет задержка, на время которой Slave должен будет "попридержать" линию SCL в низком состоянии для временной приостановки мастера RTL2832, чтобы тот подождал немного, но умеет ли эту ситуацию на I2C шине обрабатывать чип RTL2832, фиг его знает. (судя по тому, как, когда несуществующий чип не отвечает ему, он всё равно продолжает в него какое-то время гнать байты, скорее всего он и придерживание линии SCL тоже проигнорирует). Проще наверное SCL и SDA через два отдельных оптоволокна туда на крышу пустить, только я не умею работать с приемниками и передатчиками на концах такого волокна . Обычные свето- и фото- диоды, приткнутые в торцы оптоволокон наверное, не прокатят ..
Burr Master
Участник
Offline2.9
с ноя 2006
Самара
Сообщений: 543

Дата: 18 Мар 2018 17:47:54 #  

killer258
Кенвудовская команда "FA ххххххххххх ;" во всяком случае, вполне годится для установки или чтения частоты настройки.
Я ее использовал, юзалась терминальная прога. 32-бит слово получалось после прохода буфера стандартной функцией atoi (ASCII-to-Integer) , как это сделал Георгий Яцук в Пионе. Этот момент можно подсмотреть в исходниках Пиона.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 18 Мар 2018 19:31:54 · Поправил: killer258 (19 Мар 2018 07:57:42) #  

Ну, вот, я сейчас перевёл обе функции на "язык, похожий на Си". ( в среде компилятора MikroC For AVR от Mikroelectronika, говорят, что он "не совсем СИ", но для такого проекта, как здесь, я думаю, это не имеет большого значения. Программной памяти немного поменьше заняло, чем на микропаскале (хотя они оба, конечно, генерят далеко не оптимальный код). Слегка поправить синтаксис, и можно будет это же самое написать например для CodeVisionAVR, но я на ней ещё не писал)
В этом виде это уже наверное ,станет привычнее тем, кто на Си пишет. Примитив конечно, без всякого там высшего пилотажа, ну да здесь он в такой программе и не требуется. Работоспособность на железе вот в этом варианте ещё не проверял, но компилятор микросей ошибок не нашел. Но проверить потом надо будет, ибо подводные камни есть везде. Всё никак на Си не могу перейти, мне паскаль всё равно привычнее
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 18 Мар 2018 19:32:45 · Поправил: killer258 (18 Мар 2018 20:34:31) #  

// первая функция


//=================================================
void Init_R820T() // приведение чипа в рабочее состояние, c усилением 40.2 дб
//=================================================

{
// прописываем адреса 0х05 - 0х0B
START_IIC;
set_byte_I2c (0x34); // slave addr+write
set_byte_I2c (0x05); // from addr 0x05

set_byte_I2c (0x1B); // рег. 0х05 усиление
set_byte_I2c (0x12); // "lna power control" близко к максимальному
set_byte_I2c (0x6B); // рег 0х07. (вместе с рег 0х05) выставлено усил. 40.2дб
set_byte_I2c (0xC0); // рег 0х08. PWD_amp и PW0_amp включены
set_byte_I2c (0x40); // рег 0х09. if filter power=ON, low IF Filter current
set_byte_I2c (0xD2); // рег 0х0A. channel filter ON, полоса фильтра "fine tune" узкая
set_byte_I2c (0x6B); //рег 0х0B. ширина фильтра IF="narrowest" (самая узкая из 3 вариантов)
STOP_IIC;

delay_us(200);

// прописываем адреса 0х0С-0х12

START_IIC;
set_byte_I2c (0x34);
set_byte_I2c (0x0C);

set_byte_I2c (0xF0); // рег 0х0С vga_power on, IF VGA controlled by vagc pin,
//IF VGA manual gain=-12db
set_byte_I2c (0x53); // 0х0D power детекторы
set_byte_I2c (0x75); // 0x0E power детекторы
set_byte_I2c (0x68);//0x0f clk pin output вкл,internal agc clock вкл
set_byte_I2c (0x84); //REG10 mix_div= 32
set_byte_I2c (0xBB); // reg 0x11 PLL analog drop out regulator=1.9v
set_byte_I2c (0x80); // reg 0x12 блок SDM (участвует в дробности) включен
STOP_IIC;

delay_us(200);

// прописываем адреса 0х13 - 0х19

START_IIC;
set_byte_I2c (0x34);
set_byte_I2c (0x13);

set_byte_I2c (0x31); // ----
set_byte_I2c (0x06); // REG14 уст частоты
set_byte_I2c (0x12); //REG 15 уст частоты
set_byte_I2c (0x66); //REG16 уст частоты
set_byte_I2c (0x38);
set_byte_I2c (0x48);
set_byte_I2c (0xEC); //
STOP_IIC;

delay_us(200);

// прописываем адреса 0х1a -0хF0
START_IIC;
set_byte_I2c (0x34);
set_byte_I2c (0x1A);

set_byte_I2c (0x2A); // 1A!!
set_byte_I2c (0x69);
set_byte_I2c (0x24);
set_byte_I2c (0xDD);
set_byte_I2c (0x6E);
set_byte_I2c (0xC0); // filter extension under weak signal enable,pwd timing-среднее
set_byte_I2c (0x00); //-------
STOP_IIC;

delay_us(200);


}

//вот и всё.
// можно было конечно всё проще написать, просто "зарядить" массив всеми этими значениями и в цикле прописать все регистры, но я специально расписал всё по группам, чтобы немного прокомментировать происходящее
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 18 Мар 2018 20:25:54 · Поправил: killer258 (19 Мар 2018 08:54:07) #  

//=========== а это вторая функция, ставящая частоту приема и PPM=====
unsigned Set_Freq_R820T(unsigned long f_pr, signed long ppm )
//=====================================================

// f_pr вводится в килогерцах. (при желании можно и в герцах, но тогда ниже надо будет кое-где поправить)

{
unsigned long Fget,f_vco,f_ref,del_int,vco_fra,sdm,n_sdm ;
unsigned char div_mix,si,ni,error;
unsigned char reg10,reg12,reg14,reg15,reg16,reg1a, reg1a_fast;

error=0;
f_ref=28800*1000; //чтобы до единиц герц
fget=f_pr+3570; div_mix=64;

if( (fget> 22656)&& (fget < 55312)) { div_mix= 64; reg10=0xA4; }
if( (fget>= 55312)&& (fget < 110625)) {div_mix= 32; reg10=0x84; }
if( (fget>=110625)&& (fget < 221225)) {div_mix= 16; reg10=0x64; }
if( (fget>=221225)&& (fget < 442450)) {div_mix= 8; reg10=0x44; }
if( (fget>=442450)&& (fget < 884900)) {div_mix= 4; reg10=0x24; }
if( (fget>=884900)&& (fget < 1770000)) {div_mix= 2; reg10=0x04; }

if( (fget<= 22656)||(fget > 1770000)) {error=1; return 1; } // проверка валидности водимой частоты

// portA=reg10; // ======TEST=======

f_ref+=ppm*29; // учёт поправки ppm (28.8 гц на один ppm)
f_vco=div_mix*fget; // какой нужна будет частота VCO
f_vco=f_vco*1000; // килогерцы -> в герцы}

del_int=f_vco / (f_ref*2) ; // Целая часть коэфф деления в петле ФАПЧ (д.б. <= 63 для 820т!!!
if (del_int > 63) return 2 ; // выход с ошибкой
ni=(del_int-13) / 4; si= del_int-4*ni-13; // вспомогательные переменные
reg14 =ni+si*64; // вычислили регистр "целого"
// portB=reg14; // ======TEST=======

vco_fra=f_vco-del_int*(f_ref*2); // аргумент для SDM калькулятора
if (vco_fra==0) reg12=0x88 ; else reg12=0x80; //нет дробной части- отключаем блок SDM
// portC= reg12; // ======TEST=======

//--------- sdm calculator-----------
/* sdm calculator */
sdm=0; n_sdm=2;

while (vco_fra > 1) {
if (vco_fra > (2 * f_ref / n_sdm)) {

sdm = sdm + 32768 / (n_sdm / 2);

vco_fra = vco_fra - 2 * f_ref / n_sdm;

if (n_sdm >= 0x8000)

break;
}

n_sdm <<= 1;
}
// --------end of sdm calculator ---------------

reg16= sdm >> 8; // выделение старшего байта SDM
reg15= sdm & 0xff; // выделение младшего байта SDM


// portD= reg16; // ======TEST=======
// portE= reg15; // ======TEST=======

// настройки RF фильтра, (рег 0х1А) зависящие от частоты

if((f_pr>24000) && (f_pr<306400)) {reg1A= 0x2a ; reg1a_fast= 0x22;}
if((f_pr>=306400) && (f_pr<584450)) {reg1A= 0x69 ; reg1a_fast= 0x61;}
if (f_pr>=584450) { reg1A= 0x68 ; reg1a_fast= 0x60 ; }

portF= reg1a;// ======TEST=======
// reg1a_fast-это для быстрого захвата ФАПЧ



// применим вычисленные настройки
SEND_byte_to_reg_R820t(0x10, reg10); // рег 0х10 задает коэфф деления VCO перед смеситедем
SEND_byte_to_reg_R820t(0x12, reg12); // рег 0х12 задает вкл/выкл SDM узла
SEND_byte_to_reg_R820t(0x14, reg14); // рег 0х14 задает целую часть коэф дел в петле ФАПЧ
SEND_byte_to_reg_R820t(0x16, reg16); // рег 0х16 задает старший байт дробной части коэф дел ФАПЧ
SEND_byte_to_reg_R820t(0x15, reg15); // рег 0х15 задает младший байт дробной части коэф дел ФАПЧ
SEND_byte_to_reg_R820t(0x1A, reg1a); // рег 0х1A перестраивает частоту входного RF фильтра и ещё чтото

// итого , 6 вдуваний нужно для перестройки частоты

return 0;
}
vinny
Участник
Offline2.9
с июн 2013
Zhukovskiy
Сообщений: 767

Дата: 18 Мар 2018 23:39:56 #  

У меня вначале была мысль не откладывать в сторону, а использовать одну часть внизу, подключенной к работающей HDSDR, а вторую там на крыше впритык к антенне, то есть работа в штатном режиме, но по кабелю передавалась бы ПЧ
Об этом я прочитал в более поздних сообщениях))

Проще наверное SCL и SDA через два отдельных оптоволокна туда на крышу пустить, только я не умею работать с приемниками и передатчиками на концах такого волокна .
Опять слишком сложно (чем интернет-провод и одноплатный компьютер хуже? или активная антенна + спутниковый кабель ?).

А вообще работа по реверс-инжинирингу масштабная, впечатляет.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 19 Мар 2018 07:14:23 · Поправил: killer258 (19 Мар 2018 08:03:08) #  

Активная антенна хуже тем, что у меня начинали вылезать повсюду помехи от вещалок FM диапазона и жужжание GSM вышек, повылезали фантомы и грязь, причём внизу режекторами это уже не подавить, так как это уже продукты, по всем частотам. Видимо, точку компрессии превысил где-то.
А там, наверху, к каждой из своих антенн ставить целую толпу режекторов перед их усилителями, или кучу дистанционно переключаемых узкополосных дипазонных фильтров нет желания, хотя это конечно, большой сложности не представляет.
Хайо
Участник
Offline3.1
с дек 2015
Оренбург
Сообщений: 9420

Дата: 19 Мар 2018 07:38:42 #  

killer258
проблема с АА решаемая....
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 19 Мар 2018 08:05:06 · Поправил: killer258 (19 Мар 2018 08:44:06) #  

если от антенны для мониторинга не требуется максимальная широкополосность, то да
Windk
Участник
Offline3.3
с апр 2007
Тюмень
Сообщений: 3613

Дата: 19 Мар 2018 08:58:55 #  

Сорри за офтоп, подскажите, чем снифирите сигналы на управляющих выводах чипов? Хочу трубку от Панаса на СиБи попробовать перетянуть, но не могу даташит на синтезатор найти, в то время как вряд-ли там чтоль сложное в пару регистров загнать коэфы деления, надо лишь clock и data прослушать.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 19 Мар 2018 09:10:21 · Поправил: killer258 (19 Мар 2018 10:05:48) #  

подскажите, чем снифирите сигналы на управляющих выводах чипов?

Я ещё с 90 годов пользуюсь старым добрым Unilogic (под MS-dos), его можно скачать в интернете и сейчас.
http://www.cnc-lab.com/ulogic.htm

Он очень неплохо работает даже для сегодняшнего времени, досовская программа с окнами, курсором мыши, бегунками прокрутки и тд. работает он с LPT. Запоминает до 64к отчётов, есть режим дифференциальной записи (только изменения)
В незарегистрированной версии там недоступен декодер SPI, доступен только декодер I2C.
Но прога сохраняет записанное в файл, там ничего сложного,просто значения входного регистра LPT порта , соответственно сочетанию сигналов на линиях, так что можно обработать всё и самому. А если есть терпение и обьем небольшой, то можно и визуально по эпюрам на экране . Я тут недавно LC72131 снифферил в вч блочке домашнего кинотеатра, так вручную с экрана SPI продекодировал, да и по R820T вначале вручную декодировал I2c, потом уже стал запускать декодер по записанному файлу.
Я помню, в те времена эти м унилоджиком и аналогичными ему программами собственного напаисания снифферил обмен управления синтезаторов радиотелефонов Sanyo CLT 55KM и Panasonic KX-T 9080, и ломал протокол обмена с чипом чипованных картриджей ксероксов, (был похож на I2C, но с некоторыми отступлениями от классического протокола, не мешавшими ему работатьв в составе ксерокса, но когда чип вставляли в программатор, чтобы прочесть его, он замечал эту разницу и делал себе "харакири" и нужно было создать собственный программатор, учитывавший это отстступление от протокола, чтобы чип себя не уничтожил) когда у меня не было ни интернета, ни нужных даташитов.
Если скорость перехватываемых сигналов оказывалась слишком высока, и были пропуски, то я на время сниффинга заменял кварц в радиотелефоне на более низкочастотный.
Если трубка имеет трёхвольтовое питание, то можно сигналы подавать через 12-15 килоом на базу какого-нибудь транзючка типа КТ315, в коллектор 5 вольт через резистор 2 килоома, а с коллектора уже подавать в унилоджик. В случае с чипом R820T я тоже так сделал.
Windk
Участник
Offline3.3
с апр 2007
Тюмень
Сообщений: 3613

Дата: 19 Мар 2018 09:35:56 · Поправил: Windk (19 Мар 2018 09:36:43) #  

Понял, жаль только что лпт , несколько неудобно,... надо поискать может для атмег есть проекты виртуализации лпт в системе при подключении по усб.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2322

Дата: 19 Мар 2018 09:59:47 · Поправил: killer258 (19 Мар 2018 12:02:37) #  

под виндами могут быть пропуски, а под современными виндами имхо, унилоджик может и вообще не заработать.
У меня для этого старенький ноутбук используется. (ну это сейчас он старенький).
Я слышал, что тот чел, который написал прошивку для превращения радиотелефонов в пиратские, начинал вообще со со звуковой карты и саундбластера, записывал и смотрел эпюры эфирных посылок. Но там не требовалось писать сразу три канала и битрейт был намного меньше. Я пробовал писать сигналы с сигнальных шин звуковой картой 192кгц и программой Audacity, но эта звуковуха в реальности килогерц до восьмидесяти ещё как-то пишет, а дальше уже фронты импульсов вообще никуда не годятся.
А сейчас так есть вообще всякие запоминающие осциллографы, можно взять на время у кого-нибудь.

Ещё как вариант, для визуализации коротких последовательностей (если всего несколько байтов)я спаивал последовательно цепочку сдвиговых регистров , тех, которые с последовательным входом и параллельным выходом, и последовательным выходом для входа в следующий регистр. Ну, а на параллельные выходы вешал толпу светодиодов. Трудности могут быть только , если нужен старт и остановка продвижения в регистре по выполнению каких-нибудь условий на шине В этом случае придётся лепить на входе дополнительную логику

надо поискать может для атмег есть проекты виртуализации лпт в системе при подключении по усб.
я видел в интернете проекты на атмегах снифферов двухпроводных и трехпроводных шин, снифферящих их и передающих поток по USB в комп.

PS: забыл сказать. Если у вас есть программатор PickKit2, то там в качестве маленького приятного бонуса есть режим логического анализатора на 4 линии. Он работает по USB, выводит диаграммы в окне программы и может их сохранять. Емкость памяти у него небольшая, но для перехвата вашего синтезатора вполне может хватить.
Реклама
Google
 Страница:  ««  1  2  3  4  5  6  7  8  9  10  »» 

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