Автор |
Сообщение |
|
Дата: 18 Фев 2018 11:58:00
#
Там вроде в линуксах есть че-то другое, кроме стандартных, но это наверно для особо шарящих.
А так интересно было бы сравнить скажем, что контроллер аирспая шлет в 820й чип...
Вообще есть сайт https://www.reddit.com/r/RTLSDR/ там бы ваши выкладки по снятию протокола написать, может geek-и что подскажут. |
|
Дата: 18 Фев 2018 12:12:43 · Поправил: killer258 (18 Фев 2018 12:23:46)
#
Дело пошло бы быстрее, если бы удалось заполучить платную версию анализатора Unilogic. Она не просто рисует диаграммы, но и автоматически декодирует I2C, SPI,1Ware и что-то ещё.Это было бы удобнее. Вручную это можно, но утомительно. Проблема в том, что прога эта аж из 90х годов, и кому сейчас платить, непонятно. Платная версия находится у меня в архиве RAR и она запаролена авторами. Пароля нет к архиву.
Несколько смущает описание даташита чипа, как интерпретировать данные.
Так, в примере чтения у них на диаграмме шины нарисованы D0...D7, в то время как в этом же самом даташите в примере записи они рисуют на диаграмме D7...D0. Я сам буду придерживаться второго варианта интерпретации перехваченных на шине данных, поскольку он совпадает с описанием классического протокола I2c
|
Реклама Google
|
|
|
Дата: 18 Фев 2018 12:24:03 · Поправил: allll (18 Фев 2018 12:24:36)
#
NEWGEN.RTL2832SDR - SDR радиосканер на RTL2832U и AT628 (в SDRSharp определяется как R828D)
Похоже R820T2 действительно больше не выпускается, как и обещали.
"As of 2017-12-11 Rafael Micro has been sending out emails saying the R820T2 has been discontinued. Alternate versions of the series, not pin compatible, are the R836, R840, or R828D."
|
|
Дата: 18 Фев 2018 13:05:07 · Поправил: Avtomatizator (18 Фев 2018 13:08:56)
#
killer258 кстати, да, я совсем забыл про это, Rafael Micro в 2018 году полностью прекратит выпуск чипа R820T2. Хотя, запасов этих чипов у китайцев ещё на годы вперёд :) Но, как бы там ни было, нужно, наверное, начать "препарировать", что-то более современное. Нужно будет глянуть, на какой чип китайский "подвал-пром" основной упор сделает (естественно, что на самый дешёвый, хотя, не факт), вот тот и "ковырять". А то получится как с чипом E4000, про который уже все давно забыли или забили :) P.S. allll, спасибо, что напомнили! Хотя, два "свистка" я всё-таки заказал :) Видать, из "старых" запасов.
|
|
Дата: 18 Фев 2018 13:17:01
#
allll
Не совместимы по пинам, возможно с программной преемственностью будет получше.
Конечно чипы обновлять надо, а то жрут электричества, чуть меньше, чем моторчик от дрона.
|
|
Дата: 18 Фев 2018 13:39:16 · Поправил: killer258 (18 Фев 2018 13:41:46)
#
Не исключено,что новые чипы будут уже сделаны так, что работать будут только по прямому их предназначению. Например, сётчик-делитель PLL не будет принимать другие коэффициенты деления, кроме тех, которые нужны для приема частот DVB-T2
Думаю, лучше запастись старыми чипами, пока они еще есть или не взлетели в цене , как "последние", если новые для наших целей окажутся непригодными.
|
|
Дата: 18 Фев 2018 14:53:00 · Поправил: killer258 (18 Фев 2018 17:14:32)
#
Итак, выкладываю результат вчерашнего ночного бдения..
то, что вписывается в R820T при 433 мгц и выставленном 49дб усилении:
(адреса 00..04 это READ ONLY, [00]=69 (ИЛИ 96?)
адрес содержимое // комментарий
[05] <- 1F // УСТАНОВКИ LNA И какой-то loop throgh on/off
[06] <- 12 // power detector-ы, и filter gain (0/3 db)
[07]
[08] <- C0 // вкл/выкл IF фильтра, вкл/выкл и ток бувера смесителя, и image gain adj
[09] <- 40
[0A] <- D2 // IF Filter current(высок/низк)
[0B]
[0C]
[0D] <- 53 // lna agc power detector threshold ( выбор разных порогов 1.94v или 0.34v)
[0E] <- 75 // Mixer agc power detector threshold ( выбор разных порогов 1.94v или 0.34v)
[0F]
[10] <- 44,22 // делитель после VCO (:1,:2,:4,:8),длитель опоры xtal (:1 или :2)
[11] <- BB // напряж пит PLL (выкл,v1.9v, 2.0v,2.1 v)
[12] <- 80
[13]
------------------- ---------собственно , вот эти три регистра и задают частоту гетродина : -------------------
[14] <- CB // видимо, меняется только при большом изменении частоты (PLL integer devider number)
[15] <- F6 // этот меняется всегда при перестройке частоты !! (pll fracional devider number)
[16] <- A1 // этот меняется всегда при перестройке частоты !! (pll fracional devider number)
-------------------------------------------------------------------------------------------------------------------
[17] <- 30 // что-то связанное с питанием PLL (напряжения, токи)
[18]
[19]
[1A] <- 69,61,69 // какой-то pll auo tune clock rate(8, 32 и 128 кгц) и перекл RFфильтра на верхний, нижн и средн бэнд
[1B] <- 00,DD // какой-то highesr corner для LPNF и LPF
[1C] <- 24 // какой-то power detector3 control (этих пауэр-детекторов тут, как собак) от высокого до низкого
[1D] <- DD // какой-то power detector2 control, и power detector1 control от высокого до низкого
[1E] <- 6E // какой-то power detector iming control и filter extension under weak signan (disable/enable)
[1F]
// для частоты 433.100 всё то же самое один в один, кроме содержимого регистров [15],[16] (0xА5 и 0x86 cоответственно)
// те регистры, что не прописывались в этой сессии, предполагается видимо, что они были инициализированы ранее
//дефолтными значениями, которые можно взять из исходника на гитхабе или из даташита:
[07] <- 0x75
[0B] <- 0x6c
[0C] <- 0xF5
[0F] <- 0x68
[13] <- 0x00
[18] <- 0x48
[19] <- 0xCC
[1F] <- 0xC0
// вдувайте все эти значения в регистры , и чип , по идее, должен начать работать автономно
// осталось только разобраться с минимальным шагом вводимой частоты. и формулу для пересчета вывести
|
|
Дата: 18 Фев 2018 15:10:08
#
Господа, со схемой блока питания Mastech HY5005E-2 кто-нибудь может помочь?
|
|
Дата: 18 Фев 2018 15:14:59
#
|
|
Дата: 18 Фев 2018 15:17:28 · Поправил: Igor 2 (18 Фев 2018 15:20:28)
#
не это случайно ищете?
Не, спасибо, не это, у меня в нём два гальванически развязанных импульсника с тактированием от двух 494 микросхем. Дал ему 220 В на выход при последовательном соединении обоих блоков, оба и гавкнулись. Без схемы долго разбираться..
|
|
Дата: 18 Фев 2018 15:20:24
#
killer258
Превосходные труды.
|
|
Дата: 18 Фев 2018 15:41:00
#
|
|
Дата: 18 Фев 2018 16:08:16 · Поправил: killer258 (18 Фев 2018 16:10:15)
#
Кстати, в регистре 0х08, есть бит (7), отключающий и включающий питание IF фильтра.
Если я правильно понимаю, то выключенный фильтр , эт значит, со смесителя напрямую всё идёт, а значит, в этом случае возможны и другие промежуточные частоты? как более низкие, так и более высокие.
Как было установлено ранее, частота гетеродина в чипе выше принимаемой. Если вместо 3.57 сделать ПЧ например, 21.4 мгц, (под нее есть готовые монлитные фильтры) то можно было бы без всяких конвертеров принимать частоты, как я думаю, начинающиеся с одного-двух мгц и выше. (правда, входной RF фильтр чипа наверное, подрежет их сильно)
(ну это я про тот вариант, если дальше будет не RTL2832, а обычный аналоговый тракт пч.
|
|
Дата: 18 Фев 2018 16:40:43
#
со схемой блока питания Mastech HY5005E-2
Господа, кому разрешено темы создавать (мне - не разрешено), создайте отдельную ветку с моим вопросом. А то ни к селу ни к городу мой вопрос тут. В принципе, похожих схем уже надавали на других форумах, но вдруг кто-то оригинал найдёт....
|
|
Дата: 18 Фев 2018 18:13:08
#
Не нужно уже ничего - я отремонтировал. Посты можно удалить, от них толку теме нет, да, в сущности, и мне никто не ответил.
|
|
Дата: 18 Фев 2018 18:54:38 · Поправил: Avtomatizator (18 Фев 2018 18:56:03)
#
Igor 2 Так, тема то, не профильная. А, те, кто в этой теме, просто не ремонтировали БП Mastech HY5005E-2. Вот, никто и не ответил. Чему тут удивятся? :) Я, вот, ссылку на прогу(управление фильтрами "свистка") от megavoid потерял и не могу найти, вот, это я понимаю проблема! :)
|
|
Дата: 18 Фев 2018 19:07:03 · Поправил: killer258 (18 Фев 2018 20:12:28)
#
Идём дальше в нашем научном исследовании. Пытаюсь выяснить минимальный шаг.
центр.частота LO ____ регистр 15 _____ регистр 16
433.100.000 __________ 0xA5 _________ 0x86
433.100.001 __________ 0xA5 _________ 0x86 //разница на 1 гц не изменила регистр(ну, я так и думал)
433.100.200 __________ 0xA5 _________ 0x86 //разница на 200 гц не изменила
433.100.300 __________ 0xA5 _________ 0x86 //разница на 300 гц не изменила
433.100.350 __________ 0xA5 _________ 0x88 //разница на 350 гц (+ 2уе)
433.100.400 __________ 0xA5 _________ 0x88 //разница на 400 гц (+ 2уе)
433.100.500 __________ 0xA5 _________ 0x8А //разница на 500 гц (+ 4уе)
433.100.600 __________ 0xA5 _________ 0x8А //разница на 500 гц (+ 4уе)
433.100.700 __________ 0xA5 _________ 0x8С //разница на 700 гц (+ 6уе)
433.101.000 __________ 0xA5 _________ 0x8E // разница на 1 кгц вызвала инкремент на 8 у.е
//казалось бы, что 1 уе=1кгц/8=125 гц, но вот почему-то расстройка на 200 и 300 гц не изменила регистра 16 на одну условную единичку младшего разряда, а 400 гц уже инкремент сразу на 2 уе (может, дело в этих новомодных дробных делителях integer-fractional, принцип которых мне не до конца понятен в оличие от применявшихся ранее в синтезаторах целочисленных делителей)
и ещё одна закономерность. После записи этих14, 15 и 16 регистров, отвечающих за частоту, RTL2832 временно переключается на чтение и читает регистры 0..4, видимо, желая посмотреть результат- установился ли PLL в захват успешно или нет.
Затем он снова переключается на запись, и продолжает заполнять оставшиеся регистры.
|
|
Дата: 18 Фев 2018 20:06:02
#
killer258
Разрешение по частоте похоже на таковое у безпроводного трансивера SI4432 - 312,5 Гц.
Сильно похож регистровый массив - 8 битный, самих регистров больше, но там однако и модем и передатчик.
|
|
Дата: 18 Фев 2018 20:15:45
#
сейчас попробую поставить 433.100.312 и 433.100.313 и посмотрим, если инкремент произойдёт здесь, то похоже, что так и есть
|
|
Дата: 18 Фев 2018 20:17:48
#
killer258
Не обязательно, там от номинала кварца зависит и его деления, но порядок может быть похожим.
|
|
Дата: 18 Фев 2018 20:26:18 · Поправил: killer258 (19 Фев 2018 07:07:32)
#
___Мгц______________рег_15 _________рег_16
433.100.300 __________ 0xA5 _________ 0x86
433.100.306 __________ 0xA5 _________ 0x86
433.100.309 __________ 0xA5 _________ 0x86
-------------------------------------------------------- 433.100.309.5
433.100.310 __________ 0xA5 _________ 0x88
433.100.312 __________ 0xA5 _________ 0x88
433.100.313 __________ 0xA5 _________ 0x88
433.100.400 __________ 0xA5 _________ 0x88
433.100.430 __________ 0xA5 _________ 0x88
433.100.433 __________ 0xA5 _________ 0x88
433.100.434 __________ 0xA5 _________ 0x88
-------------------------------------------------------- 433.100.434.5
433.100.435 __________ 0xA5 _________ 0x8А
433.100.440 __________ 0xA5 _________ 0x8А
434.5-309.5= 125 гц как-бы..
только вроде были где-то места, где и при расстройке более чем на 125 гц последний разряд не менялся.
(это видимо тонкости так называемых дробных делителей с нецелым коэфф деления, которых я не понимаю)
Хотя... вроде всё так и есть. примерно через сотню гц и меняется.
Можно проверить при работе свистка в SSB , если десятки гц не меняют тона, а потом скачок, значит, так оно и есть, шаг кратен 125 гц. При инкременте на 125 гц делитель меняется с шагом 2 младших единицы. (возможно, после VCO перед фазовым компаратором его частота делится ещё на два)
А делителей всего : один целый 8-битный, один дробный 16 битный, (за младшими 8 битами которого мы сейчас наблюдаем), один между VCO и смесителем(может делить на 8 либо на 4), и ещё один между кварцем и фазовым компаратором (может делить на два, либо не делить)
Судя по тем величинам, что перехвачены в обмене,(содержимое регистра 0х10, бит4 =0) делитель опорного кварца здесь устанавливается в 1:1, то есть частота сравнения = частоте кварца, то есть 28 мгц
что касается делителя между VCO и смесителем, то судя по содержимому регистра 0х10, (= 44 либо =22)он бывает когда на :8, а когда и на :4
Посмотрел на нижней частоте = 24 мгц ровно:
___Мгц______________рег_15 _________рег_16
24.000.000 __________ 0x43 _________ 0xBC
cодержимое 14-го регистра то же самое при этом, (0х80)
ну, и ещё посмотрел на 1 Ггц ровно:
___Мгц______________рег_15 _________рег_16
1.000.000.000 __________ 0xD8 _________ 0x52
cодержимое 14-го регистра то же самое при этом, (0х80)
но, возможно, что на гигагерце могли измениться и другие регистры (я не проверял пока)
во всяком случае, что-то переключается в RF фильтре, и какие-то lдобавочные конденсаторы внутри чипа коммутируются, судя по тексту исходника (наверное, они в контуре VCO)
теперь вроде, располагая результатами опытов, можно поразмышлять и над вводом произвольных частот
|
|
Дата: 18 Фев 2018 21:20:11
#
killer258
шаг, кратный 125, как очевидно очень удобен и совместим.
|
|
Дата: 19 Фев 2018 14:16:50
#
|
|
Дата: 19 Фев 2018 18:03:37 · Поправил: killer258 (19 Фев 2018 18:11:01)
#
там от номинала кварца зависит и его деления,
и видимо, ещё от чего-то. Потому что сравнивая содержимое регистров 15 и 16 при установке частоты приёма на 24 мгц и на 1 ггц, значения их не слишком-то сильно отличаются для такого большого перекрытия по частоте гетеродина. Видимо, надо будет внимательнее присмотреться к регистру 14 , делителю кварца и выходному делителю (между VCO и смесителем). Тут я думаю,могут поджидать "сюрпризы"наподобие одновременного скачкообразного изменения их содержимого при переходе через некоторые границы поддиапазонов
еще хотелось бы узнать, что в даташите означает " PLL autotune", которое , как следует из даташита, может принимать значения 8кгц и 128 кгц.
|
|
Дата: 19 Фев 2018 19:09:33
#
killer258
Не знаю, но когда увидел, подумал что просто автонастройка, сканирование ТВ каналов с запоминанием.
|
|
Дата: 19 Фев 2018 21:30:33 · Поправил: killer258 (20 Фев 2018 16:27:25)
#
Сейчас отснифферил процесс I2C обмена между чипами во время запуска HDSDR и во время закрытия этой проги.
В первом случае обмен довольно длинный, и что примечательно, примерно аж 70% его занимают безуспешные попытки связаться всё с тем же упомянутым ранее несуществующим чипом или девайсом, RTL2832 всё время получает NACK, но тем не менее долго и упорно продолжает звать его (попытки как записи, так и чтения). Не раз, и не два, а очень много раз. Потом наконец обращается таки к R820T. Оставшаяся часть обмена довольно банальная. Идёт тупое прописывание подряд всех регистров , начиная с 0х05 и до последнего. На этот раз адреса идут строго по порядку. Видимо, данные вдуваются в чип из какого-то массива констант для его инициализации. Я не стал записывать, но попозже все же запишу, какие константы заносятся в чип при инициализации,это пригодится. Думаю, что они те самые, которые перечислены в исходнике драйвера с гитхаба:
r82xx_init_array[NUM_REGS] = {
0x83, 0x32, 0x75, /* 05 to 07 */
0xc0, 0x40, 0xd6, 0x6c, /* 08 to 0b */
0xf5, 0x63, 0x75, 0x68, /* 0c to 0f */
0x6c, 0x83, 0x80, 0x00, /* 10 to 13 */
0x0f, 0x00, 0xc0, 0x30, /* 14 to 17 */
0x48, 0xcc, 0x60, 0x00, /* 18 to 1b */
0x54, 0xae, 0x4a, 0xc0 /* 1c to 1f */
};
Процесс закрытия попроще. Запись в несколько регистров с небольшими адресами. Видимо, команды отключения питания узлов чипа, чтобы зря не грелся, когда HDSDR не запущен. Думаю, что если во время работы cвистка отключить USB, продолжая подавать на свисток питание, то первый чип так и будет продолжать свою работу на последней вводившейся частоте ,не выключаясь и продолжит выдавать на выходе свою ПЧ
ЗЫ: наблюдая за трафиком чтения регистров, прихожу к выводу, что обратный порядок следования битов при чтении регистра, указанный в даташите, это не опечатка.
То есть, когда пишешь регистр по I2C , то данные туда отправляешь побитно в виде D7,D6,D6,D5,D4,D3,D2,D1,D0
а вот когда читаешь регистр этого чипа по I2c, то его содержимое будет тебе приходить в виде D0,D1,D2,D3,D4,D5,D6,D7.
Я вначале-то этого не просёк, поэтому у меня при чтении регистра0х00 , в котором в даташите сказано, что там должно всегда быть 0х69, у меня упорно получалось 0х96, хотя записываемые данные читались правильно (судя по сравнению их с дефолтными значениями даташита и значениями массива инициализации исходника с гитхаба)
В ходе изучения материалов также было выяснено, что при задании частоты может управляться входной фильтр, три варианта его частоты настройки выбираются High,Middle и Low (регистр 0х1А). То есть весь диапазон приёма как-бы поделён на три части, и смотря от частоты входной фильтр включается на одну из них.
При любоми изменении частоты идёт запись в 19 регистров из имеющихся 32.
Но еесли не брать в расчёт всякие там настройки LNA и включения/выключения внутьренних модулей и задаания им напряжений питания, нас при перестройке частоты наибольший интерес вызывают пять вот этих регистров:
==================================================================
[0х10] --- (настр. делителя после опорного кварца(1:1 и 1:2) и делителя после VCO перед смесителем (1:8, 1:4, 1:2) (это вне петли ФАПЧ, как я понимаю)
[0х14] ---делитель integer(прешкалер?)
[0х15] --- старш байт делител фапч
[0х16] -- младш байт делители фапч
[0х1А] --- выбор средней частоты входного RF фильтра (одно из трёх возможных значений)
================================================================== |
|
Дата: 20 Фев 2018 15:28:37 · Поправил: killer258 (20 Фев 2018 18:00:41)
#
Теперь остаётся со смыслом вот этого вот разобраться, и путь к установке произвольных частот будет открыт:
[imgs] [/imgs]
со смыслом аббревиатур бы разобраться, что значит SDM, SI2C, и Ni2c
Может быть, это означает просто лишь , что нужно взять содержимое регистров 0х15 и 0х16 как двухбайтовое число, прицепить к нему слева содержимое регистра 0х14 в качестве третьего, самого старшего байта,затем добавить 13, и потом всё это вместе взятое помножить на два, и получим общий коэффициент деления?
Или я не правильно понял это? По-моему, не так просто написаны все эти закорючки с отрицательными степенями числа 2 |
|
Дата: 20 Фев 2018 16:20:49 · Поправил: Burr Master (20 Фев 2018 16:35:14)
#
--удалено--
|
|
Дата: 20 Фев 2018 18:33:05 · Поправил: killer258 (20 Фев 2018 18:41:15)
#
Похоже, тут придётся временно взять тайм-аут , для ликвидации моей неграмотности в вопросе принципа работы синтезаторов частоты с дробным коэффициентом деления. Я имел дело до этого лишь с целочисленными делителями. Я помню только, читал когда-то, что в дробных делителях для нужного эффекта значения коэфф деления какого-то из делителей (кажется, прешкалера) всё время переключается между двумя положениями, одно из которых на единичку больше другого, и усредняя всё это по времени на цикле усреднения,когда сколько то раз был один коэф дел и сколько-то раз другой, на единицу больший, а в среднем получается некий средний между ними коэффициент деления.
Здесь видимо, что-то подобное применено. Пойду читать.
|
|
Дата: 20 Фев 2018 18:46:14
#
killer258
Потом надо помнить, что в таких синтезаторах идет октавное деление ГУН (или группы ГУН в пределах октавы), и номер октавы видимо тоже должен гдето прописываться, в R82xx .
|
Реклама Google |
|