реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
VadimNic_nt
сообщение Mar 24 2015, 13:36
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 25-10-09
Из: Екатеринбург
Пользователь №: 53 194



Здравствуйте форумчане!

У меня вопрос по библиотеке ST, для реализации работы с МК stm32Fxxx через виртуальный COM порт.
Есть ли возможность увеличения входного буфера USB (по умолчанию установлено значение 64 байта)?
При больших размерах буфера виртуальный СОМ определяется в системе с ошибкой.
Пробовал версии 3.4 и 4, а также соответствующие драйвера от st.


Есть ли альтернативные библиотеки для реализации виртуального СОМ порта на stm32Fxxx,
где размер входного буфера можно настроить например на 256 байт или 512 байт ....
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Mar 24 2015, 13:50
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(VadimNic_nt @ Mar 24 2015, 14:36) *
Есть ли альтернативные библиотеки для реализации виртуального СОМ порта на stm32Fxxx,
где размер входного буфера можно настроить например на 256 байт или 512 байт ....

Почему не устраивает существующий размер буфера? Этот размер определяется длиной транзакции на USB шине, это жестко заложено в поддержку USB класса типа "виртуальный COM порт".
Go to the top of the page
 
+Quote Post
VadimNic_nt
сообщение Mar 24 2015, 14:26
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 25-10-09
Из: Екатеринбург
Пользователь №: 53 194



Цитата(KnightIgor @ Mar 24 2015, 16:50) *
Почему не устраивает существующий размер буфера? Этот размер определяется длиной транзакции на USB шине, это жестко заложено в поддержку USB класса типа "виртуальный COM порт".

Тогда понятно.
У меня есть некоторые сомнения - если я буду отправлять в COM порт буфер, размер которого превышает 64 байта, будет ли он корректно обработан
в stm32 и передан через UART? Моё устройство реализует мост USB-IrDA для бесконтактного обмена с устройством с интерфейсом IrDA-UART
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Mar 24 2015, 20:38
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(VadimNic_nt @ Mar 24 2015, 15:26) *
Тогда понятно.
У меня есть некоторые сомнения - если я буду отправлять в COM порт буфер, размер которого превышает 64 байта, будет ли он корректно обработан
в stm32 и передан через UART? Моё устройство реализует мост USB-IrDA для бесконтактного обмена с устройством с интерфейсом IrDA-UART

Нужно программно следить за готовностью буферов/интерфейсов передавать данные.
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Mar 25 2015, 14:21
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



С виртуальным СОМ портом есть проблемы. Формально СОМ работает по каналу команд, т.е. короткими пакетами по 64 байта. Стандартный драйвер от ST поддерживает пакеты до 64 байт. Т.е. передача длинных пакетов от РС в периферию проходит нормально (блок бъется на пакеты по 64 байта и передается), а вот в обратном направлении пакет может содержать только менее 64 байт - драйвер ST не проверяет размер и не делает соответствующих транзакций.

Если нужны большие пакеты нужно переходить на bulk или ручками корректировать ST-шный драйвер.
Go to the top of the page
 
+Quote Post
khomin
сообщение Apr 11 2015, 15:33
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 14-06-14
Пользователь №: 81 950



проще использовать тот же механизм как с пакетами Modbus по 485, после превышение определенного интервала, соблюдение "тишины" будет означать конец пакета. Ну и конечно следить за переполнением приемного буфера
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 11 2015, 18:51
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



модбасовский способ определения конца фрейма наиболее неудобный для современных реализаций....
И таймер жрет, и проблемы в подключении ДМА создает, и обмен тормозит.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th July 2025 - 11:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01426 секунд с 7
ELECTRONIX ©2004-2016