Модуль serial-ethernet на основе CH9121
Oct. 15th, 2025 08:36 pmКупил попробовать (брал на "озоне" за 363 рубля), получил еще на прошлой неделе. Сегодня решил, так сказать, его палочкой потыкать. Подключил к компьютеру через USB-UART на PL2303, воткнул сетевой шнурок…
Поначалу ничего не получалось. Потом глянул в примере к протоколу: ну и шельмы эти китайцы, то, что они обозвали "The format of the command code sent by CH9121" на самом деле - формат отправляемых ему команд. Т.е. все надо начинать с "0x57 0xab".
Чтобы войти в режим команд, нужно притянуть к нулю ногу CFG. В документации пишут про "софтовый" способ - передачей команды "0x55 0xaa 0x5a", но никакой реакции на это я не получил. Работает лишь подтяжка CFG к нулю.
Протокол - в файле ch9121_spcc.pdf, можно найти в интернете.
По мануалу настроил IP и порт (девайс little-endian, поэтому стоит это помнить при передаче данных вручную через терминал). Однако, ничего не произошло: коннект появился, в конфигурационном режиме на "0x57 0xab 3" вылезает в ответе единичка. Но "прозрачной" передачи данных не происходит. ОК, думаю: а попробую-ка я поменять "destination IP" на IP компьютера и порт - тоже на 2000. И - вуаля! Пошел "прозрачный" обмен данными: все, что пишу в терминале сокета, появляется в терминале порта, и наоборот.
В общем, надеялся я совсем на другое: что к МК через эту штуку можно будет подключаться с любого компьютера и, скажем, или через TCP-сокет напрямую, или через веб-морду с ним взаимодействовать. А вот хрена с два! В протоколе не указано, как получить IP компьютера, который только что подключился. Т.о., получаем тупое p2p соединение. В принципе, конечно, и для этого можно найти применение (все ж удобней готовой инфраструктурой пользоваться, чем тащить витуху на 485 или оптику + покупать преобразователи 232/485 в оптику).
Поначалу ничего не получалось. Потом глянул в примере к протоколу: ну и шельмы эти китайцы, то, что они обозвали "The format of the command code sent by CH9121" на самом деле - формат отправляемых ему команд. Т.е. все надо начинать с "0x57 0xab".
Чтобы войти в режим команд, нужно притянуть к нулю ногу CFG. В документации пишут про "софтовый" способ - передачей команды "0x55 0xaa 0x5a", но никакой реакции на это я не получил. Работает лишь подтяжка CFG к нулю.
Протокол - в файле ch9121_spcc.pdf, можно найти в интернете.
По мануалу настроил IP и порт (девайс little-endian, поэтому стоит это помнить при передаче данных вручную через терминал). Однако, ничего не произошло: коннект появился, в конфигурационном режиме на "0x57 0xab 3" вылезает в ответе единичка. Но "прозрачной" передачи данных не происходит. ОК, думаю: а попробую-ка я поменять "destination IP" на IP компьютера и порт - тоже на 2000. И - вуаля! Пошел "прозрачный" обмен данными: все, что пишу в терминале сокета, появляется в терминале порта, и наоборот.
В общем, надеялся я совсем на другое: что к МК через эту штуку можно будет подключаться с любого компьютера и, скажем, или через TCP-сокет напрямую, или через веб-морду с ним взаимодействовать. А вот хрена с два! В протоколе не указано, как получить IP компьютера, который только что подключился. Т.о., получаем тупое p2p соединение. В принципе, конечно, и для этого можно найти применение (все ж удобней готовой инфраструктурой пользоваться, чем тащить витуху на 485 или оптику + покупать преобразователи 232/485 в оптику).