На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 171,
участников - 34 [ uk060sjs, Домовенок Кузя, proba999, Greenland, Kim Mathers, RD9 001 SV, muha131, Alex519, wazzoo, vasilisk, GEOGRAFF, 614, Гулливер, Ягодка, culibin, 1428, ikarawaeff, RW4HJD, KarapuZ, geka, entropy, Slavik, ra3tmo, autosat, Silent, oppose, rx9cim, PAVEL90, radiooo, Zimin, veterr, bvp, Cool, motor]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Разработка, ремонт, схемы, модификации —› Проект микроконтроллерного управления чипом R820T с целью создания на его основе самодельных РПУ 
Новая линейка радиостанций Hytera в нашем магазине


Hytera TC-320
руб.

Hytera TC-508
руб.

Hytera TC-580
руб.

Hytera PD-355
руб.

Hytera X1E
руб.
 Страница:  ««  1  2  3  4  5  6  7  8  9  10  »»Поиск в теме
Автор Сообщение
AOR
Участник
Offline5.7
с окт 2003
Сообщений: 11526

Дата: 26 Фев 2018 20:29:08 · Поправил: AOR (26 Фев 2018 20:37:58) #  

Или применять свисток V3 с преселектором или дпф на интересуемые диапазоны.
Тут вроде автор топика хочет сделать приемник на 820Т, то есть не о свистке речь, его вспоминали только как девайс использующий сабж. А по сути задуманное изделие не для "верхнего" КВ, никто диапазонную антенну таскать с ним не будет, да и любой широкодиапазонный приемник в этом участке покажет себя лучше. Это в чистом виде УКВ тюнер. Как компромисс можно, но нужно ли.

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

В даташите сказано что именно ширина полосы ПЧ и таблица приведена, может не только фильтра, но однозначно трудно сказать, надо знать как реализовано.
Имхо важнее то, как эту полосу использовать в конечном изделии, вы хотите строить приемник не только для узкополосных сигналов? Кстати, можно реализовать функцию "сдвиг ПЧ")
ivanovgoga
Участник
Offline3.2
с янв 2014
Грузия
Сообщений: 2611

Дата: 26 Фев 2018 20:35:12 · Поправил: ivanovgoga (26 Фев 2018 20:37:18) #  

А по сути задуманное изделие не для "верхнего" КВ, никто диапазонную антенну таскать с ним не будет,
У дегена тоже нет полноразмерной антенны, а этому свистку ничто не мешает приделать истоковый повторитель с полосовичком и антенну 30 см. делов 15 минут
Реклама
Google
AOR
Участник
Offline5.7
с окт 2003
Сообщений: 11526

Дата: 26 Фев 2018 20:38:41 · Поправил: AOR (26 Фев 2018 20:48:04) #  

У дегена нет телевизионного тюнера внутри) и работает он от нескольких десятков кГц.
ivanovgoga
Участник
Offline3.2
с янв 2014
Грузия
Сообщений: 2611

Дата: 26 Фев 2018 20:48:08 #  

У дегена нет телевизионного тюнера внутри)
Ему же хуже ))
AOR
Участник
Offline5.7
с окт 2003
Сообщений: 11526

Дата: 26 Фев 2018 20:50:49 · Поправил: AOR (26 Фев 2018 20:53:33) #  

Мнение секты превосходства свистка очень предсказуемо)) Вот только результатов, как может деген, никто из них не достиг)
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 26 Фев 2018 20:52:15 · Поправил: killer258 (26 Фев 2018 20:56:53) #  

Этот укв тюнер можно например, встроить в простейший бытовой приемник-"мыльницу" благодаря малым размерам, в какой-нибудь Маsоn, и будет внешне не вызывать никаких подозрений, так как все функции обычного радиовещательного приемника будут сохранены, так как не придется освобождать обьём в корпусе для установки внутрь столь небольшого всеволнового тюнера, зато включил наушники, и сканируешь VHF/UHF диапазоны, а никто и не догадывается. Чтоб бдительные люди и менты на улице не напрягались , как при при виде человека с Alinco DJ-X10 в руках
ivanovgoga
Участник
Offline3.2
с янв 2014
Грузия
Сообщений: 2611

Дата: 26 Фев 2018 20:55:54 · Поправил: ivanovgoga (26 Фев 2018 21:05:07) #  

Мнение...
при чем тут это? Да у дегена функционал как у приемника Попова, а тут поле непаханое.
AOR
Участник
Offline5.7
с окт 2003
Сообщений: 11526

Дата: 26 Фев 2018 20:56:45 · Поправил: AOR (26 Фев 2018 20:58:14) #  

Этот укв тюнер можно например, встроить в простейший бытовой приемник благодаря малым размерам, и будет внешне не вызывать никаких подозрений, все функции обычного радиовещательного приемника будут сохранены, так как не придется освобождать обьём в корпусе для тюнера, зато включил наушники, и сканируешь VHF/UHF диапазоны, а никто и не догадывается. Чтоб люди не напрягались при виде алинки или айкома

Люди уже 15 лет от их вида не напрягаются, как и любых радиостанций в руках. Мне кажется это интересно для самодельного малогабаритного универсального приемника в принципе, а куда его встраивать дело десятое. Вопрос чем и как управлять тюнером и насколько сложно будет реализовать демодуляцию цифровых видов связи, вот это тема.
Zmej
Участник
Offline3.0
с дек 2005
Украина
Сообщений: 6400

Дата: 26 Фев 2018 20:59:06 #  

Ох уж эти портативщики и шпийоны-скрытники :-)

На самом деле тема применения тюнера более широкая, не только для ваших поративно-шпионских игрушек но и просто для самопального ШП приемника, даже стационарного.
Burr Master
Участник
Offline2.9
с ноя 2006
Самара
Сообщений: 543

Дата: 26 Фев 2018 21:13:50 · Поправил: Burr Master (27 Фев 2018 00:16:34) #  

killer258
Чтоб бдительные люди и менты на улице не напрягались , как при при виде человека с Alinco DJ-X10 в руках
- Шо вы кажете, диду? Якой я американьский шпигун? Я гарний хлопче...
- Да ты хоть парашут отстегни та Harris прикопай, дытина бисова...
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 26 Фев 2018 21:24:10 · Поправил: killer258 (27 Фев 2018 17:41:25) #  

У меня эта тема возникла из-за того, что ещё года два назад захотелось разместить свисток на крыше впритык к антенне, а не через 30 метров кабеля, но USB работает еле-еле на 10 метров, и то если витой парой только и питание отдельно. Было решено все принимаемые частоты превращать в низкую 3.57, а уж её-то в кабеле не потеряешь, потери ноль, вести вниз. Ну, а внизу дома уже разные варианты- или подать пч на всё тот же RTL2832 и использовать HDSDR, как обычно, или подключить ради интереса обычный аналоговый тракт или PCR-1000, настроенный на 3.57.
Сначала я хотел поставить на крышу его самого (PCR-1000) , управлять по RS232, а вниз вести или вторую ПЧ по кабелю, или сразу аудиосигнал, или и то , и другое.Но жаль стало туда его тащить, учитывая его цену, мало ли что с ним случится на крыше, а вот если свисток на крыше сопрут, это не так жалко будет, как PCR-1000.
Можно было и самодельный конвертер сделать и поставить на крышу, но тогда две сложных задачи- "всеволновый" гетеродин, и борьба с зеркалкой при низкой пч, а тут всё готовое уже реализовано,и зеркалки нет, только разобраться в управлении по I2C, и всё, можно ставить наверх.

Ну а попутно рождаются и другие идеи, раз уж этот укв тюнер сможет работать автономно, без компа..

Ещё один сканирующий приёмник лишним никогда не будет. А их можно и не один сделать при такой-то цене свистка. Я ещё помню, как в 90 годах я покупал сканер Alinco DJ-X10 за 400 долларов. Каких героических жертв это тогда мне стоило при тогдашней зарплате на том заводе , равной эквиваленту примерно сорока долларов в месяц. Тринадцать зарплат на него грохнул тогда, хотя все равно не пожалел о том, что взял. Собственно, с него мониторингом и начал заниматься.
А тут из свистка за 8 долл получить тот же функционал и в общем-то, сравнимые характеристики..
AOR
Участник
Offline5.7
с окт 2003
Сообщений: 11526

Дата: 26 Фев 2018 21:31:38 · Поправил: AOR (26 Фев 2018 21:59:55) #  

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

Дата: 26 Фев 2018 22:08:17 · Поправил: killer258 (26 Фев 2018 22:26:00) #  

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

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

Дата: 27 Фев 2018 12:36:14 · Поправил: killer258 (27 Фев 2018 14:47:29) #  

сейчас просчитал sdm по ихнему калькулятору

/* sdm calculator */
while (vco_fra > 1) {
if (vco_fra > (2 * pll_ref_khz / n_sdm)) {
sdm = sdm + 32768 / (n_sdm / 2);
vco_fra = vco_fra - 2 * pll_ref_khz / n_sdm;
if (n_sdm >= 0x8000)
break;
}
n_sdm <<= 1;
}



Ну, я всё это переписал для турбопаскаля в эквивалентном виде

===================================================
sdm:=0; n_sdm:=2; vco_fra:=23040;

while vco_fra > 1 do begin

if(vco_fra > 57600 div n_sdm) then begin
sdm:= sdm + 65536 div n_sdm; vco_fra:=vco_fra - 57600 div n_sdm;
if(n_sdm >= 32768) then goto M1;
end;

n_sdm:=n_sdm*2;
end;

M1:
writeln ('sdm= ', sdm); readln;

========================================
и запустил на компе под тубопаскалем.

подставил я туда начальные значения, просчитал. Вот прикол.
Получилось 0х66 и 0х66 , то есть алгоритм свистка выдал не то sdm , которое свисток сам себе записывает в регистры 0х16 и 0х15 при этих же самых,как я думаю, входных данных, а входным данным здесь является только vco_fra. (может, ее проверить?)

(сам свисток записывает в этом случае 0х66 и 0х12 соответственно)

получилось и с ихним алгоритмом всё те же 0х66 и 0х66 , что и у меня ранее получались . так вот там столько же получалось.
То есть ихний калькулятор даёт на моих данных тот же результат, что и мой, но пишет то в регистры немножечко другое. Старший байт у меня с ними совпадает, а вот младший не очень.Это приведёт к ошибке в несколько кгц

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

Дата: 27 Фев 2018 13:59:37 · Поправил: killer258 (27 Фев 2018 15:36:32) #  

Хотя .... кажется, вот здесь она порылась. вот это в исходнике меня смущает (странный перевод в из герцов в килогерцы. зачем число 500?)

/* Frequency in kHz */
freq_khz = (freq + 500) / 1000;
pll_ref = priv->cfg->xtal;
pll_ref_khz = (priv->cfg->xtal + 500) / 1000;

Уж не 1024 ли герца в китайском килогерце???? :-)))


Непонятно, зачем эти 500, но так и быть, попробуем с ними. Вдруг сойдётся?
CIBAS
Участник
Offline1.2
с янв 2007
Crimea - Крым
Сообщений: 91

Дата: 27 Фев 2018 14:09:52 #  

Стандартное правило округления из арифметики.
Больше 0.5 kHz - kHz+1, меньше - без изменения (деление затем целочисленное).
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 27 Фев 2018 14:32:43 · Поправил: killer258 (27 Фев 2018 15:37:10) #  

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

Дата: 27 Фев 2018 20:28:32 · Поправил: killer258 (28 Фев 2018 15:34:07) #  

Может, что-то прояснится, если попробовать сравнивать мои вычисленные вручную значения регистра 0х15 с перехваченными по I2C, для самых разных частот и поддиапазонов,
может, тогда и проявится закономерность.


Чтоб не считать каждый раз всё это вручную, сейчас набросаю небольшую программку для компа на паскале,
которая просит ввести частоту приема, а затем посчитает и напишет на экране все промежуточные результаты моего вычисления по тому алгоритму, в том виде, в каком я его сейчас понимаю:

напишет частоту гетеродина, необходимый коэфф деления перед смесителем, частоту VCO,
коэфф деления , его целую и дробную часть, посчитанные Ni,Si, VCO_fra, содержимое регистров 0х10, 0х14, 0х15
и тогда можно будет просчитать регистр [0х15] для самых разных частот, сравнивать с перехватами ,смотреть разницу, может, что-нибудь и выявится тогда. Может, младший байт просто будет отличаться всё время на одну какую-нибудь константу, как например странное число 13 в формуле для вычисления Ni и Si

Ni=(Nint-13)/4 и
Si=Nint-4*Ni-13

Кстати, я только сейчас заметил, что по этим ихним формулам исходника Si всегда будет получаться ноль независимо ни от чего, зачем было и считать:
Si= Nint -4*((Nint-13)/4)-13== Nint -Nint +13 -13 == 0

Впрочем, нет, если деление здесь целочисленное, с отбрасыванием остатка

PS: ну вот, готова программка на турбопаскале, которая по входной частоте просчитывает
регистры 0х10,0х14,0х15 и 0х16
а заодно и всё промежуточное. Пока что прокрутил её, посмотрел как зависит Si от целой части делителя. Оно в зависимости от того, делится он нацело на 4 или нет,
равно либо 0, когда делитель Nint кратен 4, либо принимает значения 1 и 2, если не кратен. (из-за разности округления) Других значений он принимать при таком его вычислении не может. Видимо, это отражает какие-то невидимые нам особенности архитектуры целодробного синтезатора ИМЕННО ЭТОГО чипа.

Теперь надо пробовать сравнивать с перехватами.

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

Дата: 28 Фев 2018 21:04:17 · Поправил: killer258 (01 Мар 2018 10:29:42) #  

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

регистр 0х10 моя прога считает так же, как и HDSDR. Тут вопросов нет.

Регистр целого 0х14. Здесь младшая его тетрада совпадает везде у меня и у них, а старшая у меня везде в 2 раза меньше, чем у них. То есть если у них меня 0х06, то и у меня 0х06, если у них0х47, то у меня 0х27, если у них 0х84, то у меня 0х44, если у них0хс9, то у меня 0х69. Ну тут, я думаю, просто когда я сдвигал Si влево перед складыванием его с Ni, то видимо, надо просто было Si сдвигать влево ещё на один разряд , и тогда будет получаться правильно везде.

С регистрами дробности 0х16 и 0х15 выяснилось, что старший регистр 0х16 у меня по моему "SDM калькулятору" (алгоритм которого между прочим, позаимствован ихний, из исходника!) получается чаще всего таким же, как у них, но иногда почему-то на единичку больше, чем у них. И всегда в таких случаях ровно именно на единичку.
Младший, как я и предполагал, не сходится никогда. Но тоже есть закономерность.Хоть он и не совпадает, но на каждом килогерце он увеличивается у меня ровно на столько же, как у них. (то на 26h, то на 24h. видимо, погрешности округления) И когда он увеличивается за эти 7 шагов по 24-26h, то после этого на единичку растёт старший регистр, то есть тут как-бы всё в порядке, но этот рост сдвинут вперёд по фазе на две единички старшего из этих двух байтов.Такое ощущение, что где-то в двоичной арифметике что-то слегка сдвинуто.
Будем искать.

PS: Ага, а вот и ещё одна закономерность расхождения cодержимого старшего регистра 0х16 у меня и у них :
Увеличиваю частоту настройки с шагом в 1 килогерц , снимаю показания и слежу за тем, как растёт этот старший регистр с ростом частоты у них . Он подрастает на единичку через каждые 7 кгц. (шагаю по 1 килогерцу). Мой вычисляемый 0х16 ведёт себя точно так же, тоже подрастает на единичку после каждых 7 шагов по одному килогерцу), но происходит это на два килогерца раньше. То есть всё то же самое делает, только на два шага впереди !
И уже третий раз во всех случаях расхождения моего с ихним фигурирует эта колдовская цифра "2".Хотя чего удивляться, арифметика двоичная :-)
Будем завтра думать и анализировать дальше. Если момент инкремента старшего регистра у меня "синхонизировать" бы по фазе с ихним инкрементом, то тогда наверное, и младший регистр тоже начал бы совпадать с ихним при шагании по частоте. Вернее, если где-то начальную фазу для SDM при его подсчёте поправить в той процедуре, то, наверное, он пойдёт ноздря в ноздрю с ихним.

Но, это приращение младшего дробного, оно за 1 кгц составляет24-26h только на 60 мгц. На 600 мгц поддиапазоне оно равно только 4. Значит, бессмысленно добавлять или вычитать что-то в процедуре SDM. Это частотнозависимая штука, значит, это надо делать не в впроцедуре SDM, а раньше. в неё должно поступать что-то другое, чтоб на выходе увеличивалось позже. Короче, надо VCO_fra надо будет посмотреть, оно должно поступать на вход в калькулятор будучи на примерно хх кгц меньше. (экспериментально установлено, что при из vco_fra надо вычесть 74, и тогда на выходе получается правильный результат. А может, не вычитать, а делить на что-то надо? но вот как-то не верю я , что в килогерце 1024 герца..) И тогда всё пойдёт, это как если в идущих на 2 минуты вперёд часах часовая стрелка станет подходить на деление очередного часа вовремя, если минутную отвести на пару минут назад Как говорил наш шеф, надо переспать с этой идеей :-) Чувствую, истина где-то совсем рядом.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 01 Мар 2018 11:00:20 · Поправил: killer258 (01 Мар 2018 11:24:57) #  

Я сейчас прогнал на симуляторе в Паскале этот ихний SDM калькулятор, чтоб понять физический смысл его работы, прогнал для всех входных значений VCO_fra в диапазоне от 0 и до 28800*2=57600 (кгц) и анализировал, что получается при этом на его выходе, то есть SDM, который записывается в регистры 0х16 и 0х15 (старший и младший соответственно)

Оказалось, что процедура переводит 0...57600 в 0х0000 .... 0хFFFE.
то есть почти линейно переводит недостающую до требуемой (как если было бы при только одной лишь только целой части делителя петли фапч, без дробной части, так как в этом случае частота VCO может быть только кратной частоте двойной опоры,то есть кратной 57600 кгц) частоту VCO в пределах [0...57600] в двухбайтовый код диапазона от нуля до FFFE

-------------
PS: попутно выяснилось предназначение бита PW_sdm в регистре 0х12

Я имею в виду вот этот кусок
/* pw_sdm */
if (!vco_fra)
val = 0x08;
else
val = 0x00;

rc = r82xx_write_reg_mask(priv, 0x12, val, 0x08);


// В случаях, когда VCO_fra окажется =0, то есть для тех частот VCO, когда получается целочисленный коэфф деления в петле фапч, то бишь с нулевой дробной частью, этим битом в чипе (видимо,за ненужностью) выключается блок sdm (сигма-дэльта-модулятор)
ZayaTCCC
Участник
Offline1.7
с апр 2016
Краснодар
Сообщений: 286

Дата: 01 Мар 2018 12:12:21 · Поправил: ZayaTCCC (01 Мар 2018 12:20:52) #  

Его бы заставить ещё принимать частоты не от 24 мгц, а от сотен кгц..

Обычно на такие частоты делают DDC

У меня эта тема возникла из-за того, что ещё года два назад захотелось разместить свисток на крыше впритык к антенне, а не через 30 метров кабеля, но USB работает еле-еле на 10 метров, и то если витой парой только и питание отдельно.

Роутер на OpenWRT с USB входом, на него устанавливается rtl_tcp, все это питается через POE.
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 01 Мар 2018 12:40:00 · Поправил: killer258 (01 Мар 2018 12:43:14) #  

Возвращаясь к SDM калькулятору. У меня такое сложилось впечатление,что если бы опорный кварц был бы не 28.8 мгц, а 32.768 мгц, то двойная частота сравнения была бы не 28800*2=57600, а 32.768*2=65.536 мгц, то есть VCO_fra получалось бы в границах [0...65535] мгц , и тогда процедура SDM-calculator вообще просто не понадобилась бы . Всё передавалось бы один к одному в регистры 0х16 и 0х15
Avtomatizator
Участник
Offline3.0
с июн 2015
Ростов-на-Дону
Сообщений: 2737

Дата: 02 Мар 2018 07:33:37 · Поправил: Avtomatizator (02 Мар 2018 07:37:54) #  

killer258
если бы опорный кварц был бы не 28.8 мгц, а 32.768 мгц, - так оно и есть, 28.8 МГц - это компромиссное решение, ведь в "свистке" скрестили "бульдога с носорогом" R820 с RTL2832 :)
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 02 Мар 2018 08:00:13 · Поправил: killer258 (02 Мар 2018 08:38:26) #  

а существуют ли стандартные кварцы на 32768 мгц ? с ним вся математика была бы ровнее, меньше всяких погрешностей округления.
ValdemarG
Участник
Offline1.9
с мая 2006
Ванкуверск
Сообщений: 194

Дата: 02 Мар 2018 09:31:04 #  

killer258
а существуют ли стандартные кварцы на 32768 мгц ?

https://www.digikey.ca/product-detail/en/abracon-llc/AB-32.768MHZ-B2/535-9018-ND/675213
Хайо
Участник
Offline3.1
с дек 2015
Оренбург
Сообщений: 10148

Дата: 02 Мар 2018 09:48:12 #  

killer258
всё рядом, самовар на 32768 хоть какой тут:

http://www.quartz1.com/price/group.php?p1=32768&group=430

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

http://www.quartz1.com/price/group.php?p1=32768&group=405

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

Дата: 02 Мар 2018 12:00:37 · Поправил: killer258 (02 Мар 2018 12:50:16) #  

Да, пожалуй. Иначе придётся вводить такой же программный компенсатор ppm, какой сделан в HDSDR.

Это о погрешности "железа" . А сейчас вернусь к вопросу о погрешности вычислений .То есть к "математике". Вчера я опять провёл огромное количество перехватов по I2c на первом поддиапазоне выборочно на разных его участках.
(от 24 мгц до 55 мгц)
Сравнил то, что вписывает их драйвер и моя программа-симулятор.
Попутно выяснилась ещё одна интересная вещь. Во всём диапазоне и на всех остальных пяти поддиапазонах моя программа правильно считает
все регистры , то есть значит, все мои предположения построены в целом верно (кроме небольшого расхождения младшей части регистра дробного 0х15), но вот на начальном участке первого поддиапазона , очень небольшом,
от 24.000 мгц до 24.085 мгц, там свисток грубо нарушает все правила, и ставит такое значение регистра 0х10, как будто он принимает на 5-ом поддиапазоне 800-1700 мгц. Тут видимо, применены какие-то недокументированные особенности чипа) Но этот участок крайне небольшой, всего 100 кгц.(хотя, я не проверял ещё но возможно, что на этом участке свисток у меня реально уже и не работает, например, нет захвата фапч, и пытаясь исправить это, софт начинает переписывать регистр 0х10 в поисках других поддиапазонов, где бы произошёл захват). А начиная с 24.100 мгц и выше, всё уже идёт штатным образом, как по нотам. И согласно выясненному алгоритму вычисления регистров управления частотой PLL.

На остальных диапазонах и практически на всём первом диапазоне моя программа все регистры определяет верно, кроме небольшого расхождения в младшем байте регистра дробного 0х15

Вот об этой погрешности и путях её ликвидации я и хочу сейчас поговорить.
Значит, что удалось выяснить на текущий момент:

Есть "прибавка" к частоте VCO ,обеспечиваемая дробной частью коэффициента деления в петле фапч, называемая здесь как VCO_fra. Она является входным данным для калькулятора "SDM calculator", на выходе процедуры получаем SDM, то есть содержимое 0х16 и 0х15

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

Опытным путём было установлено, что если я из подаваемой в калькулятор VCo_fra вычитаю некоторое экспериментально подобранное мною число, то на выходе калькулятора начинает выходить SDM (содержимое регистров 0х16 и 0х15) в точности то самое,какое и нужно (то же самое, что генерит и сам свисток, когда он под управлением HDSDR)

Беда только в том, что это число к сожалению не постоянно, а зависит от самой частоты VCO по поддиапазону.
Для полного совпадения работы моей программы с ихней необходимо, как я выяснил, вычитать разные числа из подаваемой на вход sdm калькулятора величины, плавно растущие по мере перемещения от начала поддиапазона к концу поддиапазона. Вначале диапазона из VCO_fra надо вычитать 63 для правильного результата на выходе , в середине уже надо вычитать побольше,например 74 и более, а в конце поддиапазона надо вычитать уже 126.
И вот тогда всё правильно считает.

То есть, поправка зависит от частоты VCO, прямо пропорционально ей.
То есть, надо не вычитать, а что-то где-то поделить или на что-то домножить. Вот только не пойму, где. Всего-то три формулы, где подсчитывается эта VCO_fra. Истина где-то совсем рядом. Понять бы, где последний штрих дописать, и всё встанет на свои места, паззл соберётся воедино.

А иначе придётся делать массив поправок для разных значений октавного диапазона частот работы VCO.Это тоже работать в принципе будет, но это будет тогда как костыль вроде бы..
Опять эта магическая "двойка".. всё крутится вокруг неё :-)
Zmej
Участник
Offline3.0
с дек 2005
Украина
Сообщений: 6400

Дата: 02 Мар 2018 13:06:11 #  

То есть, поправка зависит от частоты VCO, прямо пропорционально ей.

А это не PPM-коррекция опорника, если в программе ноль поставить и прогнать снова частоты?
killer258
Участник
Offline3.2
с янв 2010
Тула
Сообщений: 2373

Дата: 02 Мар 2018 13:14:47 · Поправил: killer258 (02 Мар 2018 13:54:12) #  

А это мысль. Спасибо! А ведь точно, этот драйвер-это ещё не всё. Есть ведь ещё и HDSDR. Я как-то и не подумал об этом. Действительно, надо будет попробовать при нуле.

Может, я и правда не там ищу источник расхождения. Трудно искать черную кошку в тёмной комнате , если её там вообще нет :-))
pactor
Участник
Offline2.5
с апр 2013
Санкт-Петербург
Сообщений: 615

Дата: 02 Мар 2018 15:12:51 #  

killer258, а во всей Вашей арифметике есть где-нибудь проверка на чет-нечет
исходно требуемой частоты?
Реклама
Google
 Страница:  ««  1  2  3  4  5  6  7  8  9  10  »» 

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