Files
rt-4d/docs/hf6853-auctus-a6.md
T
viktorиClaude Opus 4.8 c10ab3c6f1 DMR-чип опознан по схеме: HF6853 = AUCTUS A6 (RDA8809), не SCT3258
Опознание БЕЗ разбора рации, по схеме RT4DDLT01 (Radtel v2.1):
DMR-модуль «FM100B» = один чип U700 HF6853 — одночиповый DMR-SoC
семейства Auctus A6 (внутри RDA8809): CPU + ВЧ-трансивер + DSP +
AMBE-вокодер + аудио-кодек в одном кристалле, прошивка во внешнем
SPI-flash, кварц 26 МГц. Прежняя версия «Sicomm SCT3258TD» неверна
(SCT3258 — baseband-only без ВЧ; и нативный протокол другой).

Скрытый ATE/CPS-интерфейс полностью реверснут (jhart99/a6tools,
вендорен в research/a6tools). Даёт КОНКРЕТНУЮ починку нашей
TX-проблемы: AT+GETFREQERR / AT+DMOFREQERR=N, offset=-2500+10*N,
±2500 Гц — наши ~1100 Гц внутри диапазона. Плюс DMR_ADJTXSYMDEV
(девиация), FGU_AFC, DMOSETPOWER, CPS chanInfo, дамп прошивки модуля.

- docs/hf6853-auctus-a6.md — идентификация + протокол + план TX-fix
- tools/a6_freqfix.py — заготовка тула (probe/read/write, не запускать вслепую)
- research/a6tools/ — вендоренный реверс (MIT), atcommands.md/cpecommands.md
- docs/dmr-tx-recovery.md, README — путь 0 (AT+DMOFREQERR) как лучший
- research/rt4ddlt01-dmr-module-sheet.png — рендер листа схемы DMR-модуля

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr
2026-07-24 03:10:24 +09:00

7.9 KiB

RT-4D DMR-модуль «FM100B» = чип HF6853 (семейство AUCTUS A6 / RDA8809)

Дата: 24.07.2026. Опознание БЕЗ разбора рации — по схеме RT4DDLT01 (Radtel, v2.1, 2024-06-04).

Что на схеме

Лист RT4DDLT01 («DMR daughterboard») содержит РОВНО ОДИН основной чип:

  • U700 — маркировка HF6853, 41-выводный корпус.
  • Обвязка: кварц X700 = 26 МГц (2520), LDO U702 = XC6204E332MR (3.3 В), аудио-ОУ U701, аналоговый ключ Q700 (DIG/ANA AF-SW), пассив.
  • Внешний SPI-flash к чипу (выводы F_SO / F_SI / F_SCK / F_CSN, они же MCLK/IO2, TCK/IO3, IO0, IO1) — там лежит прошивка модуля (FM100B_V1.2.0.13).
  • UART к хосту (AT32): P28/RX_EN / P25/TX_ENDIG-TXD / DIG-RXD на разъёме.

HF6853 — это ВСЁ-в-одном (не только baseband!)

Выводы U700 однозначно показывают интеграцию всего радиотракта в один кристалл:

Группа выводов Назначение
VCCRXFE, ANT, VCCPA, VCCPAD, VCCIF, VSYS ВЧ-приёмник (RX front-end), PA, ПЧ — интегрированный трансивер
MICBIAS, MICLP, MICLN, LINEL, LINER вход микрофона/линии — аудио-кодек
AUDLP, AUDLN, VCOM, VDDAUD, GNDAUD выход аудио — ЦАП/кодек
F_SO/F_SI/F_SCK/F_CSN внешний SPI-flash с прошивкой
P28/RX, P25/TX, P0/TXD2, P12/CTS, P13/RTS UART’ы к хосту
XI/XO (26 МГц), CLK_26M/PWM0 опорный генератор

То есть DSP + AMBE-вокодер + ВЧ-трансивер + аудио-кодек + CPU — в одном чипе HF6853.

Идентификация: семейство AUCTUS A6

Архитектура «CPU + ВЧ-трансивер + DSP + AMBE-вокодер + кодек в одном кристалле, прошивка во внешнем SPI-flash, 26 МГц» — это AUCTUS A6 ( shenzhen Auctus). Реверс jhart99 показал: A6 внутри = RDA8809 (дериватив RDA8955, 2G-GSM SoC, перепрофилированный под рацию). Auctus также владеет правами на AT1846.

Тот же чип/модуль стоит в: COTRE CO01D/CO04D/CO06D, GOCOM GD900/GD100/GD700/GD800, CONNECOM. Прошивочные строки RT-4D (Vocoder/WebRTC/codec adc/dac/mic, F312/F315/DP275/FM100/PM100) — это общая прошивка Auctus/iRadio/Radtel DMR-модуля.

Коррекция прежней версии: ранее модуль был опознан как Sicomm SCT3258TD по строкам вокодера. Это неверно: SCT3258 — только baseband (нужен внешний ВЧ SCT3700), а HF6853 содержит ВЧ-тракт сам. Нативный протокол тоже другой (не 84 A9 61, а RDA-debug AD 00 … + CPS aa … bb, см. ниже). Актуальная идентификация — HF6853 / Auctus A6 / RDA8809.

Скрытый ATE/CPS-интерфейс (реверс jhart99, репо a6tools)

Полностью реверснут. Копия в research/a6tools/. Транспорт: UART 921600 8N1, XON/XOFF.

Два уровня протокола

  1. RDA-debug (низкий уровень, доступ к памяти/регистрам): кадр AD 00 <len16 BE> FF <cmd> <payload> <XOR>; спецбайты 0x5C/0x11/0x13 экранируются (5C, 0xFF^x); ACK = 11 13. Команды: 0x02 read_word, 0x04 read_reg8, 0x84 write_reg8, 0x83 write_block.
  2. ATE/CPS (высокий уровень): команда пишется write_block’ом в спец-регистр ate_cps_addr (адрес = read_word(0x81C00270)), затем «звонок» — запись в регистр 0x00000005 (h2p): 0x00=clear, 0xA5=выполнить, 0xEE=reboot, 0xFF=boot handler.
    • ATE-кадр: строка AT+…\r, добита нулями до кратности 4.
    • CPS-кадр: aa <len8> <cmd…> <XOR> bb + null-паддинг до кратности 4.
    • Ответ читается из памяти: длина по resp_addr-4, данные с resp_addr (resp_addr = read_word(0x81C00264), uart_resp = 0x81C0026C).

Вход в debug: держать UART в debug-режиме записью регистра 0x00000003 = 0x80. rebootandfreeze (запись рег.0 = 0x03) — сброс+останов CPU для чтения ROM.

Починка частотного смещения TX (наша проблема rt4d-dmr-tx-broken)

Ровно наш случай. У A6-раций заводское смещение TCXO (у jhart99 GOCOM GD900 было +800 Гц «в допуске», но MMDVM не тянул). У нас ~1100 Гц — тоже в пределах ±2500 Гц.

Команды: AT+GETFREQERR (прочитать), AT+DMOFREQERR=<N> (записать). Формула: offset[Гц] = -2500 + 10*NN = (offset + 2500)/10 (N = 0..500, шаг 10 Гц). После записи сменить канал, чтобы применилось. Диапазон ±2500 Гц.

freqoffset.py: delta = target - current; N = ((get_freq_err()+delta)+2500)/10. Т.е. измеряем реальную TX по SDR, даём (измеренную, номинальную) — тул сам считает N.

Как применить на RT-4D

  1. Ввести модуль в bridge/update-режим («Обновление DMR чипа» — вкл. с зажатой MENU). Проверить, слушает ли он RDA-debug (AD 00 … FF 04 <03000000> 01 … → ответ content=0x80) на нужной скорости (пробовать 921600, затем скорость нашего моста).
  2. Если отвечает → адаптировать tools/a6_freqfix.py (заготовка в репо) под COM рации через powershell-мост (как в tools/fm100b.py).
  3. Измерить реальную TX-частоту рации по SDR (RTL-SDRv3) относительно номинала (438.800 и т.д.).
  4. AT+DMOCONNECTAT+GETFREQERR → посчитать N → AT+DMOFREQERR=N → сменить канал → проверить BER на хотспоте.

НЕ выполнять вслепую (боевая рация, нужен SDR для измерения — см. rt4d-dmr-tx-broken). Это первый путь, НЕ требующий Radtel .updat и не требующий Radio Tuning Software.

Что это открывает помимо TX

  • AT+DMOSETVAFC/DMOGETVAFC, AT+DMOSETPOWER/DMOSETCHPOWER, AT+DMORDRSSI — вся калибровка.
  • CPS-команды (0x0012 chanInfo и др.) — прямое чтение/запись каналов в модуле.
  • radiodump-ng.py — дамп прошивки модуля через debug-интерфейс (свой вокодер/reverse).
  • Полный список — research/a6tools/atcommands.md, cpecommands.md.

Источники