Jump to content

    
Sign in to follow this  
l.c.

CSR BC04-EXT, USB, bulk

Recommended Posts

Приветствую всех.

 

Возникла задача заставить BC04 прикинуться на USB не чем нибудь, а PL2303 от Prolific (USB to COM)

Прикинуться удалось. Изваяние опознано системой (XP) и устройством для которого это все делается, драйвера установлены. Для передачи данных открыто два ендпоинта в bulk режиме.

Данные с bluetooth в usb едут без проблем.

 

А вот с приемом с usb конкретная грабля - каждая порция данных падает с дополнительным байтом в начале. Это циклический счетчик, я так понимаю, связанный именно с гарантированной доставкой в bulk режиме и служит для отслеживания повторной передачи порции данных. Но какого он падает мне в данные, разве это не дело драйверов csr отрезать его?...ну этот вопрос скорее риторический.

 

Да все бы ничего пока передача идет малыми порция. Тогда сообщение MESSAGE_MORE_DATA содержит только одну порцию данных и счетчик можно откусить. Но когда плотность потока возрастает, данные уже приходят пачками например 13 байт где на самом деле 1+1 и 1+10 и различить где счетчик уже нельзя. Пробовал входящий стрим мапить через SourceMapHeader, говорит нет хидера, размер ноль.

 

Попробовал сцепить потоки через TransformSlice с отрезанием первого байта. Данные поехали но криво. Что именно криво пока не выяснил.

Результат выглядит странно - если например в терминалке (использую TeraTerm) включить передачу большого файла без подтверждения с другой стороны, то передача идет рывками с очень большой паузой, что наводит на мысль о проблеме именно с usb.

 

Как вариант осталось отправить поток на kalimba и там попробовать что-то сделать, но это уж как-то слишком, так что будет на закусь :)

Остался без закуси, калимбы то в BC04 нету... :(

 

Ну и собственно вопрос - кто имел дело с usb в BC04, отзовитесь, что я делаю не так?

Edited by Menchinskiy

Share this post


Link to post
Share on other sites

Дабы логически завершить поднятую тему...

 

Я не знаю, сколько народу сошло с ума пытаясь решить эту проблему, ибо тянется она, судя по форумах, лет пять минимум. Упущу сколько было просмотрено форумов, но результат печален - на чипах BC04 эту фишку выключить нельзя. Никак нельзя. Хоть и написано в доке на новый фирмварь что можно, но на самом деле - нельзя. Это ответ инженера CSR. А вот на BC-05 и последующих - вроде без проблем.

Благо, проект был не денежный а больше для самообразования и делался в свободное время...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this