Прошивка: пути beken378\intercom, HAL bk_flash/bk_gpio/bk_pwm, app INTERCOM, DPLL-синтезатор, EasyFlash+WebRTC. Прежняя идентификация Auctus A6/RDA8809 неверна (и объясняет молчание RDA-debug: чип не RDA -> a6tools/AT+DMOFREQERR неприменимы). Обновлены: docs/fm100b-firmware-re.md, пометка в docs/hf6853-auctus-a6.md, память. Калибровка идёт штатно через 0x68 SPCali (работает). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr
8.7 KiB
RT-4D DMR-модуль «FM100B» = чип HF6853 (семейство AUCTUS A6 / RDA8809)
⚠️ УСТАРЕЛО / ЧАСТИЧНО НЕВЕРНО (исправлено 24.07.2026). Идентификация «Auctus A6 / RDA8809» оказалась НЕВЕРНОЙ. По прошивке модуля SoC — Beken (серия beken378), приложение INTERCOM, HAL bk_*, EasyFlash+WebRTC. Это объясняет молчание RDA-debug: весь раздел про a6tools / AT+DMOFREQERR / RDA-debug к этому чипу НЕ применим (оставлен как референс). Актуальная идентификация и рабочий путь калибровки (0x68 SPCali) — в docs/fm100b-firmware-re.md и docs/module-cal-reference.md. Схемная часть ниже (HF6853, один чип, обвязка) — верна.
Дата: 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_EN→ DIG-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-debugAD 00 …+ CPSaa … bb, см. ниже). Актуальная идентификация — HF6853 / Auctus A6 / RDA8809.
Скрытый ATE/CPS-интерфейс (реверс jhart99, репо a6tools)
Полностью реверснут. Копия в research/a6tools/. Транспорт: UART 921600 8N1, XON/XOFF.
Два уровня протокола
- RDA-debug (низкий уровень, доступ к памяти/регистрам):
кадр
AD 00 <len16 BE> FF <cmd> <payload> <XOR>; спецбайты0x5C/0x11/0x13экранируются (5C, 0xFF^x); ACK =11 13. Команды:0x02read_word,0x04read_reg8,0x84write_reg8,0x83write_block. - 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).
- ATE-кадр: строка
Вход в 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*N ⇔ N = (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
- Ввести модуль в bridge/update-режим («Обновление DMR чипа» — вкл. с зажатой MENU).
Проверить, слушает ли он RDA-debug (
AD 00 … FF 04 <03000000> 01 …→ ответcontent=0x80) на нужной скорости (пробовать 921600, затем скорость нашего моста). - Если отвечает → адаптировать
tools/a6_freqfix.py(заготовка в репо) под COM рации через powershell-мост (как вtools/fm100b.py). - Измерить реальную TX-частоту рации по SDR (RTL-SDRv3) относительно номинала (438.800 и т.д.).
AT+DMOCONNECT→AT+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-команды (
0x0012chanInfo и др.) — прямое чтение/запись каналов в модуле. radiodump-ng.py— дамп прошивки модуля через debug-интерфейс (свой вокодер/reverse).- Полный список —
research/a6tools/atcommands.md,cpecommands.md.
Источники
- jhart99: A6 обзор, A6 in depth, hidden interface, ATE/CPS commands, Frequency Fix (GD900)
- Код: github.com/jhart99/a6tools (копия в
research/a6tools/) - qdmr
AuctusA6Interface(libdmrconf) - Схема:
RT4DDLT01.pdf(Radtel), рендеры листа DMR-модуля.