repstosw 18 2 марта Опубликовано 2 марта (изменено) · Жалоба Кто-нибудь занимался реверсом RFIC Si4463 или аналогичного из серии Si446x ? Что можно сделать полезного? Нашёл интересный проектик: https://github.com/astuder/Inside-EZRadioPRO Чувак пишет как можно сдампить прошивку с Si446x , а также как вытащить описание регистров + недокументированные команды из EXE-шника WDS. А также - как раздуплить прошивку в Гидре и получить более-менее читабельный сорец на асме... Мне удалось считать дамп со своего чипа Si4463, rev. 2A. Плюс запустил все скрипты и плагины для облагораживания дизассемблированного кода в Гидре. А также сделал другой адрес для FIFO TX/RX. Хотел ещё увеличить размер FIFO - удалось увеличить с 129 до 193 (x1.5). Но при команде активации передачи(TX) всё виснет. Очевидно, пакетный хэндлер там тоже хозяйничает, и есть условия, ограничивающие размер FIFO в коде... И всё-же... Может возможно мягкие решения вытащить? Или увеличить чутьё? Или ещё что-нить полезное? P.S. Я понимаю, что немного отстал с этим реверсом, но чипы появились недавно (год назад). Изменено 2 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 4 марта Опубликовано 4 марта · Жалоба Сделайте исходники WDS и смотрите, что он генерирует из параметров. Может что то полезное найдёте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 5 марта Опубликовано 5 марта (изменено) · Жалоба 15 hours ago, x893 said: Сделайте исходники WDS и смотрите, что он генерирует из параметров. Может что то полезное найдёте 1. Есть декомпилированная прошивка от Si4463 - в ассемблере ядра i8051 и в Сишном псевдо-коде. Которая пропарсена скриптами: для получения нормальных названий регистров и регионов памяти. 2. С WDS уже выпарсена вся документация: SPI-команды/свойства(Commands/Properties), включая недокументированные. А также - описания регистров и их разбитовка. 3. Скачан новый архив с Силабса - с обновлёнными описаниями команд/свойств. Прибавка ощутима. В ходе 3-суточных копаний пока выводы такие: 1. Сконфигурить чип лучше, чем WDS, уже не получится. 2. Команды/свойства - это тупо чтение-запись в регистры Si4463 и обработка прерываний. 3. Из недокументиованного - ничего полeзного для моих целей. 4. По ходу с получением I- и Q- облом. Есть только сырой выход с демодулятора (лично сам слушал сигнал с GPIO0 - функции 20,21 и 31, использовал ПК и Audacity для зааписи), причём не ясно - прослайсированный он или нет. Сомневаюсь, что там доступны мягкие решения.... А так хотелось I/Q- и мягких решений ... Именно с Si4463... Вот в Si4432 получить I/Q- можно - в дифференциальной форме (только по отдельности: I или Q). Кстати, подскажите, I и Q со смесителя (низкая ПЧ - 900 кГц) можно ли на слух её услышать? Понимаю, что 900 кГц, но так как сигнал сложный - значит часть спектра должна быть в звуковых частотах.... С видео-сигналом CVBS такое прокатывает - он на слух очень специфичен. Чисто, чтобы сдетектить его наличие с GPIO... осциллографа нету. Изменено 5 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 5 марта Опубликовано 5 марта · Жалоба 1 час назад, repstosw сказал: низкая ПЧ - 900 кГц 1. У меня осталось впечатление, что там ПЧ в районе 270 кГц. Но могу ошибаться. 2. Если это действительно ПЧ, НЧ составляющих там быть не должно. Если только половинная полоса сигнала не сравнима с ПЧ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 5 марта Опубликовано 5 марта · Жалоба 55 minutes ago, V_G said: 1. У меня осталось впечатление, что там ПЧ в районе 270 кГц. Но могу ошибаться. Значение, установленное WDS для 1 МБит/c: Quote RX IF frequency is -468750 Hz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 5 марта Опубликовано 5 марта · Жалоба А, ну я на таких скоростях не работаю. И по поводу I Q и прочих сырых сигналов: там аналоговый смеситель и его выходы - аналоговые. GPIO - цифровые ноги, там должны быть прямоугольные импульсы. Или все-таки кто-то умудрился вывести аналоговый сигнал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 5 марта Опубликовано 5 марта (изменено) · Жалоба 2 hours ago, V_G said: И по поводу I Q и прочих сырых сигналов: там аналоговый смеситель и его выходы - аналоговые. GPIO - цифровые ноги, там должны быть прямоугольные импульсы. Ну не факт... Дока с регистрами Si4463, вытащенная из WDS недвусмысленно намекает, что GPIO могут конфигурироваться как: - Digital Input - Digital Output -Analog Input -Analog Output Там полноценное ядро 8051 со своей памятью, регистрами и периферией. Там ещё дополнительный АЦП есть (AUXADC). И пара регистров PGA с битами IN/OUT I- Q- : один регистр - обычный выход, второй - дифференциальный выход. Только вот вопрос, на какую ногу это выводится? Поле GPIO config содержит 6 бит : это до 64 разных значений может быть (в WDS описано только около 40 вариантов). Что касается Si4432, I и Q там доступны через тестовый режим: Это только в старом даташите есть. В новом даташите эту инфу силабсы попрятали как последние трусы... Изменено 5 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex-sss 7 6 марта Опубликовано 6 марта · Жалоба On 3/5/2024 at 10:32 AM, repstosw said: Это только в старом даташите есть. Бесплатный сыр только в мышеловке. Во многих "сложных" м/с с большим числом программируемых регистров есть т.н. служебные регистры, которые можно юзать не по дш. Также есть дефолтные регистры, которые также можно использовать с другими значениями, а не по умолчанию. p.s. Условно синтезатор от AD можно юзать с временем установки под 100 мкс вместо 2 мс, но со своими особенностями. А производитель это предлагает купить, как дополнительная или расширенная функция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 марта Опубликовано 7 марта · Жалоба 14 hours ago, alex-sss said: Бесплатный сыр только в мышеловке. Во многих "сложных" м/с с большим числом программируемых регистров есть т.н. служебные регистры, которые можно юзать не по дш. Также есть дефолтные регистры, которые также можно использовать с другими значениями, а не по умолчанию. Сколько не пытался понять ваше заявление с мышеловкой, так и ничего не понял. Есть недокументированные регистры, и есть недокументированные биты в регистрах. Это также одинаково, как и утверждать, что "в небе светит Солнце, а дождь капает водой. Вода кипит при 100 градусах Цельсия при нормальном давлении"... И тому подобное. 14 hours ago, alex-sss said: А производитель это предлагает купить, как дополнительная или расширенная функция. Я не видел официальзых заявлений от Силабс, купить у них софт-конфигуратор, позволяющий получить I/Q с пинов или заставить модем выдавать оцифрованные мягкие решения с демодулятора в FIFO. Вижу масонскую политику зачем-то скрывать регистры, которых масса. Тем более Si4463 - уже относительно старый... Могли бы и открыть доки на регистры. А так получается - "ни себе, ни людям". P.S. Регистры с разбитовкой есть. Но отстутствует их внятное описание. Но те, кто писал WDS и фирмварь для Si4463 под ядро 8051, этой документацией обладают. Хочется отказаться от их пакетного хэндлера и попробовать получить мягкие решения с демодулятора(в оцифрованном виде). Такой регистр найден. Но непонятно, как его тактировать (с каким интервалом забирать с него данные). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 7 марта Опубликовано 7 марта · Жалоба 5 часов назад, repstosw сказал: Я не видел официальзых заявлений от Силабс, купить у них софт-конфигуратор, позволяющий получить I/Q с пинов или заставить модем выдавать оцифрованные мягкие решения с демодулятора в FIFO. Вижу масонскую политику зачем-то скрывать регистры, которых масса. Тем более Si4463 - уже относительно старый... Могли бы и открыть доки на регистры. В форуме техподдержки они объясняли причины сокрытия тайных регистров и пр. Вкратце, всё для того, чтобы пользователь не "выстрелил себе в ногу" некорректной конфигурацией, с последующими претензиями к качеству. По крайней мере касательно EFR32 некоторые резоны есть - например, в 1-й серии можно программно вывести из строя усилитель мощности, отключив обработку одного флажка прерывания. М.б. и в Si44xx есть подобные грабли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 марта Опубликовано 7 марта · Жалоба 1 hour ago, Harbinger said: По крайней мере касательно EFR32 некоторые резоны есть - например, в 1-й серии можно программно вывести из строя усилитель мощности, отключив обработку одного флажка прерывания. М.б. и в Si44xx есть подобные грабли. Подразумевается, что регистры интересны хардварщикам, которых не запугаешь порчей оборудования. С таким же успехом можно подпалить GPIO, настроенный на выход, если его соединить с GND, в момент когда на него придёт логическая "1" 🤣 1 hour ago, Harbinger said: Вкратце, всё для того, чтобы пользователь не "выстрелил себе в ногу" некорректной конфигурацией, с последующими претензиями к качеству. Я не из тех, кто предъявляет претензии к работе чипа, если было принято решение лезть в дебри. Ясно дело, что любая эволюция подразумевает прогресс работы с чипом: от пакетного хэндлера - до мягких решений с ЦОС и СДР 😅 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 8 марта Опубликовано 8 марта (изменено) · Жалоба Получил сырые данные с демодулятора Si4463. Пока есть проблемы с интерпретацией и визуализацией данных: демодулятор даёт отсчёты в формате 7 бит со знаком. Тоесть -64...+63. Как оно выглядит, если файл отсчётов открыть в Audacity - как 8 бит со знаком (сделал перед этим конверсию 7-bit signed в 8-bit signed): Также остаётся открытым вопрос, как синхронизировать забор данных с регистра. Пока делаю чтения регистра ASAP. Если забирать как можно скорее, на ассемблере 8051, то это будет так: mov R0,REG mov R1,REG mov R2,REG mov R3,REG mov R4,REG mov R5,REG mov R6,REG mov R7,REG mov A,R0 movx @DPTR,A inc DPTR mov A,R1 movx @DPTR,A inc DPTR ... mov A,R7 movx @DPTR,A ret Получается до 4-х чтений регистра REG дают одинаковое значение. Значит, можно читать в 4 раза медленее. Если же читать 1 раз, затем раскидывать в память, то олучается уже долго - уже неодинаковые значения. Прерывания 8051 на момент чтения запрещаются. С конверсией данных выход с демодулятора такой: Знающие, подскажите - как выглядит сигнал с фазового/частотного демодулятора в цифровых трансиверах? Изменено 8 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 8 марта Опубликовано 8 марта · Жалоба На верхней картинке предыдущего поста - шум из эфира. Вот так выглядит выход с демодулятора во время приёма пакета: Что с этим делать дальше, чтобы получить биты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться