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
co-authored by Claude Opus 4.8
родитель 6d49ba3cba
Коммит c10ab3c6f1
20 изменённых файлов: 1373 добавлений и 1 удалений
+41
Просмотреть файл
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
""" AT Commander for AUCTUS based radios
Allow for communication with AUCTUS A6 radios to their serial
interface through the debug interface. Commands can either be "AT"
commands or "CPS" commands. Both styles will work.
"""
import serial
import sys
from a6 import read_mem_range, SerialIO
__author__ = "jhart99"
__license__ = "MIT"
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description='Auctus A6 dumper')
parser.add_argument('--begin', type=lambda x: int(x,0),
help='begin address default 0x82000000',
default=0x82000000)
parser.add_argument('--end', type=lambda x: int(x,0),
help='end address default 0x8200ff00',
default=0x8200ff00)
parser.add_argument('-p', '--port', default='/dev/ttyUSB0',
type=str, help='serial port')
parser.add_argument('-b','--baudrate', default=921600,
type=int, help='baud rate')
parser.add_argument('-v','--verbosity', default=0, action='count',
help='print sent and received frames to stderr for debugging')
parser.add_argument('-V', '--version', action='version',
version='%(prog)s 0.0.1',
help='display version information and exit')
args = parser.parse_args()
uart = SerialIO(args.port, args.baudrate, args.verbosity)
data = read_mem_range(args.begin, args.end)
sys.stdout.buffer.write(data)