Нашел на полке какой-то старый модем, ещё на коаксиале. Десятилетней давности.
Стоит там процессор Broadcom, QAMLink BCM3349 - а это
MIPS типа R3000.
https://wikidevi.com/files/Broadcom/BCM3349.pdfhttp://pdf1.alldatasheet.net/datasheet-pdf/view/601309/BOARDCOM/BCM3348KPB.htmlhttp://pdf.datasheetcatalog.com/datasheets/134/404172_DS.pdfТо есть как раз то же самое, что в космосе работает, с программной точки зрения.
На плате есть EJTAG и gpio (со светодиодами). 2 мб флэш-памяти. DRAM память 8мб.
Встроенный SPI. USB. Эдакий ардуино на стероидах.
200-мгцовое ядро MIPS32. Внутренняя шина 100мгц.
Пожалуй, поковыряюсь. Как модем он уже не пригодится.
Правда, документации на него нет. Пока выяснил, что это
Motorola SB5101 а подключиться к нему можно через
usbjtag. Значит OCD Commander через Wiggler LPT должен подключиться. И по компорту тоже можно. Есть
прошивки, процесс стандартный через tftp. И похоже внутри уже есть линукс. Настройки через вебморду и команды терминалом по компорту на плате. Очень мне любопытно, что там за версия уместилась на 2мб флэш, и как оно работает с 8 мб памяти. Есть бутлог на похожий модем
5100. Есть прошивки хакерские для этого модема
http://www.freewebs.com/racky29/sb5101firmwareflashing.htm - есть своё сообщество.
UPD: рабочий, вебморда функционирует, щас к компорту подцеплюсь, когда пины припаяю.
Software Version: SB5101E-2.4.1.1-SCM14-NOSH
Hardware Version: 1
MIB Version: II
GUI Version: 1.0
-------------------------------------------------------
Serial Number 159058626529261901011056
HFC MAC Address 00:18:c0:17:da:bc
CPE USB MAC Address 00:14:04:31:44:67
upd2: припаял кабель, но долго не мог получить отклик в терминале. Оказалось, не все так просто.
http://www.forocable.com/foro/archive/index.php/t-36280.htmlНужно сначала подключиться на 9600, передать код 13 (энтер), потом быстро переключиться на 115200, и успеть за 20 секунд ввести несколько команд, чтобы отключить сканирование частот на кабельном вводе и остановить таймер. Если не успел за 20 секунд - компорт отключается, до перезагрузки.
000002 20:49:07.578 зUоEµэзUоEµэч•-eхэ‡ХюuµязU-eµэ§ХюUµязUоEµэч•-EхэзE-EхэзE-EхэзE-Eµэч•-Eхэ‡•¶Eхя
000003 20:49:09.781 ‡•цEея‡ХюUµя§Хюuµя.E…•Xћ…T.,Rе.!X{gEҐ.HЋ…TҐЧ|wµяu·јW]юеЧlWµяAttempting Downstream FEC lock @ freq= 634000000 Hz, QAM64..
Attempting Downstream FEC lock @ freq= 642000000 Hz, QAM64..
Attempting Downstream FEC lock @ freq= 650000000 Hz, QAM64..
Attempting Downstream FEC lock @ freq= 658000000 Hz, QAM64..
Attempting Downstream FEC lock @ freq= 666000000 Hz, QAM64..
Attempting Downstream FEC lock @ freq= 127500000 Hz, QAM64/256
CM> cd
Instance: Console Thread (0x807d7e14)
Active Command Table: CM DOCSIS Commands (CM)
короче, я запустил два окна, в одном запускаю подключение 9600, потом быстро подключаю второе
нужно успеть напечатать
cd /docsis
scan_stop
write_memory -s 4 0xfffe0224 0x
-----
но я успеваю только набрать
CM> ls
Instance: Console Thread (0x807d7e14)
! ? REM cd dir
find_command help history instances ls
man pwd sleep syntax system_time
ping read_memory reset run_app shell
version write_memory zone
----
[HeapManager] [docsis_ctl] [embedded_target] [flash]
Attempting Downstream FEC lock @ freq= 385000000 Hz, QAM64/256
придется из под линукса запускать скрипт
serial-shell.sh:
#!/bin/sh
DEV=/dev/ttyUSB0 # Set this to your serial device
# If you don't get anything after several seconds, kill screen and run the script again.
TF=`tempfile`
cat < $TF
register [ " "
paste [
register ] "write_memory -s 4 0xfffe0224 0x0\015cd /docsis\015scan_stop\015cd ..\015"
exec ! stty 115200
EOF
{
sleep 2
screen -X -S SB5101 source $TF
sleep 2
screen -X -S SB5101 paste ]
rm $TF
} &
screen -S SB5101 -fn $DEV 19200
...
upd3:
Я пока пользуюсь программой COM Port Toolkit 4.0 Михаила Голикова.
Подключаюсь на 9600, отправляю код 13, удобно переключаюсь одним кликом на 115200, захожу в меню Message-Send а там уже выбран файл с тремя строчками, отредактированный фаром с юиксовыми концами строк:
write_memory -s 4 0xfffe0224 0x0
cd /docsis_ctr
scan_stop
Потом закрываю соединение и иду в другую программу. Мне удобно в гипертерминале винды.
Какой в этом практический смысл? Не ломиться в компорт, а вообще ковыряться с модемом.
Например, можно потом превратить его в программатор. Используя JTAG через SoC программировать Flash.
Без всяких переделок. Разъём только добавить.