Использовать CD C -ACM без конечной точки прерывания? - PullRequest
0 голосов
/ 23 апреля 2020

Мы разрабатываем USB-устройство через порт STM32F7xx FS. Существует ограниченное количество конечных точек (0 для контроля и 5 для данных) для использования. Мы хотим перечислить наше устройство как 3 порта CD C -ACM. Каждый USB CD C -ACM использует три конечные точки:

  1. прерывание
  2. вход данных.
  3. данные OUT.

Использование конечных точек выглядит следующим образом

EP | OUT         | IN
---+-------------+-----------
1  |             | INTERRUPT 1
2  | BULK 1      | BULK 1
3  |             | INTERRUPT 2
4  | BULK 2      | BULK 2
5  |             | 

Куда поместить третий CD C -ACM? Можно ли объявить один из наших CD C -ACM только с конечными точками данных BULK, без конечной точки INTERRUPT?

1 Ответ

0 голосов
/ 28 апреля 2020

Это не лучший ответ, но из моего исследования:

Каждая линия CD C -ACM должна иметь два настроенных интерфейса:

  • Интерфейс данных - требуется один Bulk IN и одна конечная точка Bulk OUT.
  • Интерфейс связи - требуется одна конечная точка прерывания IN.

Для управляющей связи используются:

  • канал управления USB для отправки Линия управления информацией от хоста к последовательному порту во встроенной системе.
  • конечная точка USB прерывания для отправки информации о состоянии линии из последовательного порта встроенной системы на хост USB.
  • Информация о линейном управлении и статусе обычно игнорируется, если последовательный порт является виртуальным
  • Встроенный драйвер windows XP игнорирует уведомления.

Возможно установите конечную точку CD C -ACM INTERRUPT на номер, который не обрабатывается в STM32F7xx (выше> 7). Перечисление с хостом linux будет успешным, данные связи поступят, но данные прерывания будут потеряны. Из моих тестов (не законченных) есть проблема с индикацией подключения / отключения.

...