fk0123 (23.08.2014 17:11, просмотров: 2789)
Vinculum-II (VNC2) фирмы ftdi в качестве хоста к FT245BM... Зайду издалека. Есть прибор имеющий на борту VNC2 эмулирующую FT245BM и управляющийся через спец ПО для windows через ftd2xx.dll. Замечено однако, что он отличненько управляется и через драйвер virtual com port. Причём, что характерно, скорость порта при этом можно ставить любую -- работать будет (и весьма быстро даже на 1200). А ПО для windows через ftd2xx.dll с установкой скорости вообще не заморачивается. Это первое, что меня мучает. Как же так. Скорей всего же взяли типовую программу с сайта FTDI. Там есть пример UART<->USB slave. Скорость действительно в исходниках задана... жёстко.
Подключаю я к этому прибору свою VNC2. И то же в варианте моста, но уже UART <-> USB HOST. И всё вроде работает. Пока из прибора не нужно получать килобайтных пакетов. Доходят первые байт 800, плюс-минус... Скорость UART своего ставил разную. Вначале была низка (38400) доходило только байт 300. Но выше 115200 если ставить -- уже без толку. Пытался увеличивать буфера в программе VNC2. Во-первых больше килобайта там не поставить (перестаёт работать, не догоняю почему). Во-вторых не влияет.
И самое интересное, если в качестве хоста выступает ПК -- ничего не теряется, хоть через FT2XX.DLL, хоть через компорт.
Где теряются байты? Варианта два вижу: в моей VNC2, в сторонней VNC2. Может моя недостаточно быстро по USB её опрашивает? (комп быстрей) Может моя не успевает из драйвера USB в драйвер UART перекладывать? Не знаю даже, с какой стороны подойти, как диагностировать?