Столкнулся с такой проблеммой, что у всех современных интерфейсных микросхем и микроконтроллеров с USB адреса EP (конечных точек) жёстко заданы. Например, имеется 0-я (контрольная) EP и 6 EP с адресами от 1 до 6 (+ адрес самого устройства конечно). И адреса у этих EP никоим образом изменить нельзя! Обычно это не имеет значения, т.к. в дескрипторе интерфейса можно просто указать те адреса EP, которые имеются.
Но тут я столкнулся с задачей, которая требует серьёзных ресурсов, но легко параллелится. И мне очень красивым кажется такое решение - 6 процессоров (на 1 плате) у каждого из которых по 2 EP соединены по USB, и всё это, с точки зрения компьютера, представляют собой 1 USB устройство. У одного из процессоров имеется еще и контрольная EP (0-я), через которую устанавливается общий адрес всего этого безобразия и шлются дескрипторы. Но в рабочем режиме всё определяется адресом EP, и никто никому не мешает. И с точки зрения компьютера - управлять всем этим будет удобно.
На USBN9604 такое сделать можно. Но у, известных мне, современных интерфейсных микросхем USB и у микроконтроллеров с USB на борту - адрес EP изменить невозможно. И это становится непреодолимым препятствием.
А USBN9604 не рекомендуют использовать в новых разработках.