Перейти к содержанию
    

Как переключить мост USB-UART XR21V1410 в режим 9N1?

В Linux драйвере этого чуда Тайваньской инжинерной мысли есть такие строки:

if ((cflag & CSIZE) == CS7) {
   data_bits = 7;
} else if ((cflag & CSIZE) == CS5) {
   /* Enabling 5-bit mode is really 9-bit mode! */
   data_bits = 9;
} else {
   data_bits = 8;
}
portdata->trans9 = (data_bits == 9);

Попробуйте включить 5 битовый режим, вдруг повезёт 🙂

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 часов назад, xvr сказал:

Попробуйте включить 5 битовый режим, вдруг повезёт 🙂

"Попробуйте 'включить мозг' - вдруг повезет?" - это более актуальный совет для ТС.
Он уже третий месяц бъется над неразрешимой проблемой - как установить бит в регистре...
https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=170876#comment-1854724

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/12/2023 at 11:33 PM, xvr said:

В Linux драйвере этого чуда Тайваньской инжинерной мысли есть такие строки:

if ((cflag & CSIZE) == CS7) {
   data_bits = 7;
} else if ((cflag & CSIZE) == CS5) {
   /* Enabling 5-bit mode is really 9-bit mode! */
   data_bits = 9;
} else {
   data_bits = 8;
}
portdata->trans9 = (data_bits == 9);

Попробуйте включить 5 битовый режим, вдруг повезёт 🙂

 

Спасибо, но увы. Сам мост возвращает ошибку при попытке сконфигурировать его на 5 или 6 бит. Он поддерживает только 7, 8 и 9 бит. Указанный вами драйвер при попытке задать 5-битные символы начинает сам конфигурировать мост для передачи 9-битных символов. Но так как он написан для Linux, делает он это при помощи функции usb_control_msg, которой в Windows нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё супер! Всё запустилось при помощи:

DeviceIoControl(hUart, 0x22205C, (LPVOID)NULL, 0, (LPVOID)NULL, 0 ,&bytesReturned, (LPOVERLAPPED)NULL);

P.S. Как знать, может ещё через месяц инженеры Exar, купленные MaxLinear, ответят на мой запрос и расскажут, почему именно 0x22205C и как это число следует из даташита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 часов назад, flammmable сказал:

Всё супер! Всё запустилось при помощи:

DeviceIoControl(hUart, 0x22205C, (LPVOID)NULL, 0, (LPVOID)NULL, 0 ,&bytesReturned, (LPOVERLAPPED)NULL);

P.S. Как знать, может ещё через месяц инженеры Exar, купленные MaxLinear, ответят на мой запрос и расскажут, почему именно 0x22205C и как это число следует из даташита.

Поздравляю! Вы поставили работоспособность вашей системы  -  в зависимость от недокументированной "особенности" нестандартного драйвера производителя...

P.S. Цитата из известного фильма:
" - Кеша! За такие вещи, убивать надо!
  - Лелик!... Только не по лицу!... "  :vava:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...