Китайцы в своем репертуаре…
May. 22nd, 2024 07:45 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Купил недавно USB-релюшку на алике. Сегодня получил. На ней установлен преобразователь CH340 в SOP8 (здорово, что и такие появились, раньше я только в 16-ногом видел на алике) и китайский эмулятор PIC в таком же корпусе (нашел на него даташит на китайском, глянул - вообще смысла нет такой дрянью интересоваться; в интернетах по 22 цента за штучку, значит, на китайском рынке они вообще по 10р где-то). До этого брал релюшки на нувотонах по цене минимум в два раза выше.
На сайте продавца 0 информации по протоколу, но в интернетах нашел документацию на китайском (правда, там на железке не ch340, а pl2303) и даже готовый баш-скрипт. Только этот скрипт надо переделать: во-первых, убрать проверку на рута (бред какой!); во-вторых, убрать одиночные кавычки вокруг переменных (странно, как это работало у автора); в-третьих, добавить еще один запуск через паузу в полсекунды, т.к. не всегда с первой попытки срабатывает; в-четвертых, автор скрипта лоханулся и 0/1 местами перепутал.
Протокол забавный. Я поначалу думал, что этот МК (точно такой же у меня на втором модуле - на ублюдском модбасе) — "универсальный", то бишь по USB тоже модбасовскую команду надо отправлять. А вот фигвам! Что пишут на китайском (сволочи натыкали в даташит "водяных знаков", поэтому пришлось переводить, наведя на экран лопатофон при помощи яндопереводчика):
- первый байт - 0xA0 ("инициализация обмена");
- второй байт - 1 ("номер устройства" - возможно исключительно "АДЫН", на другие номера не отзывается);
- третий байт - 0 (выключить) или 1 (включить);
- четвертый байт - сумма всех предыдущих (как я понял).
В общем, очередной протокольный бред. Вместо того, чтобы просто принимать "1"/"0" или даже в hex 1/0, китайцы учудили какой-то идиотизм - как бы модбас, но с однобайтовой кривой контрольной суммой (которая - именно сумма).
Жесть!
Однако, штука интересная. Самоделка будет намного дороже, чем 170 рублей (30 рублей релюшка, 40 рублей ch340, микроконтроллер какой-нибудь минимум за 40р, USB разъем 10р + немного пассивки + изготовление платы + пайка). Заказал еще две штуки таких - пригодится.
Теперь на очереди тестирование двухрелейного на модбасе.
На сайте продавца 0 информации по протоколу, но в интернетах нашел документацию на китайском (правда, там на железке не ch340, а pl2303) и даже готовый баш-скрипт. Только этот скрипт надо переделать: во-первых, убрать проверку на рута (бред какой!); во-вторых, убрать одиночные кавычки вокруг переменных (странно, как это работало у автора); в-третьих, добавить еще один запуск через паузу в полсекунды, т.к. не всегда с первой попытки срабатывает; в-четвертых, автор скрипта лоханулся и 0/1 местами перепутал.
Протокол забавный. Я поначалу думал, что этот МК (точно такой же у меня на втором модуле - на ублюдском модбасе) — "универсальный", то бишь по USB тоже модбасовскую команду надо отправлять. А вот фигвам! Что пишут на китайском (сволочи натыкали в даташит "водяных знаков", поэтому пришлось переводить, наведя на экран лопатофон при помощи яндопереводчика):
- первый байт - 0xA0 ("инициализация обмена");
- второй байт - 1 ("номер устройства" - возможно исключительно "АДЫН", на другие номера не отзывается);
- третий байт - 0 (выключить) или 1 (включить);
- четвертый байт - сумма всех предыдущих (как я понял).
В общем, очередной протокольный бред. Вместо того, чтобы просто принимать "1"/"0" или даже в hex 1/0, китайцы учудили какой-то идиотизм - как бы модбас, но с однобайтовой кривой контрольной суммой (которая - именно сумма).
Жесть!
Однако, штука интересная. Самоделка будет намного дороже, чем 170 рублей (30 рублей релюшка, 40 рублей ch340, микроконтроллер какой-нибудь минимум за 40р, USB разъем 10р + немного пассивки + изготовление платы + пайка). Заказал еще две штуки таких - пригодится.
Теперь на очереди тестирование двухрелейного на модбасе.