Контроль четности модуль ch341

Пытаемся подключиться к устройству на скорости 1200, 8O1 через USB конвертор ch341. Оказалось что нет поддержки контроля четности в модуле ядра ch341. Обновили контроллере прошивку на самую последнюю не помогает. Подскажите как добавить поддержку четности ODD?
Стоит контроллер WB 5.8…

Так а в ядре оно поддерживается? С какой версии?

Это USB-конвертер в какой протокол?

Нашел в закромах ch340, проверяю.

В UART, но поддерживает и bitbang

Определяется как

New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
...
ch341-uart converter now attached to ttyUSB0

Сами по себе чипы идентичные.

Это конвертер для HART протокола.
Хотели прокинуть через socat удаленный порт…
И возникла проблема со связью.
Проверил ch340, ch341 и FT232 проблема повторилась.
Проверяли я на осцилографе сравнивал эпюру символа ‘7’. Добавлял и убирал бит четности.
В windows бит присутствует (использовал PUTTY).
В wb5 linux менял бита нет (использовал MINICOM). Потом делал напрямую через stty -F /dev/ttyUSB0 1200 parodd и слал echo ‘7’> /dev/ttyUSB0.
Для перенаправления порта использую команду:
socat -d -d -d -x /dev/ttyUSB0,raw,ispeed=1200,b1200,ospeed=1200 TCP-LISTEN:10010
Могу эпюры приложить если нужно?

Какое у вас ядро?

Linux wirenboard-APM2PFT6 4.9.22-wb2 #2 Thu Nov 14 15:36:36 UTC 2019 armv5tejl GNU/Linux

stty -F /dev/ttyUSB0 -a
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

Да, прогнал.

@jmilkov Добрый день!

Поддержка paity в ядре линукса появилась в v.4.10-rc1, а у нас сейчас 4.9.22.
Что можно сделать:

  1. Подождать пару недель, пока у нас выйдет в бета-тестирование ядро 5.9. Обратите внимание, что WB5 официально поддерживаться этим ядром не будет, хотя сборка и будет. Редко используемая периферия, типа ИК-передатчиков или вывода звука там вообще не реализована, остальная не тестируется нами.

  2. Можно собрать ядро 4.9.22 самостоятельно, исходники и инструкции есть у нас в документации. При сборке попробовать портировать тот самый патч из 4.10: https://github.com/torvalds/linux/commit/ba781bdf86621b71aa79a1ac0ad584f1e8aac307#diff-3fa83c321e18090436b2da607d2d415ef62caf9be421c2e3bc13414fcbbee988
    Это требует как минимум продвинутого уровня владения линуксом и гитом.

  3. Можно посмотреть что именно за микросхема (не драйвер) установлена внутри. У wch есть микросхемы из новых семейств совместимые по ножкам с некоторыми из старых. Новые реализуют стандартный CDC-класс, поэтому, скорее всего, будут рабоатть с любой ОС. Так что если есть совместимая микросхема и вы не боитесь вскрывать и перепаивать железку, то можно попробовать так.

  4. Можно просто купить UART-HART конвертер и с помощью проводочков и изоленты подключить его к разъёмам модулей расширения на WB5.

Да я понял спасибо. Я сделал по 3 варианту. Сделал конвертор четности, перед HART модемом разместит MCU который добавляет четность с одно стороны. Дождусь лучше новой версии и проверю потом…