powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / usb accessory mode (Samsung)
9 сообщений из 9, страница 1 из 1
usb accessory mode (Samsung)
    #39597479
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть собственноручное приложение для андроид, использующее обмен с определенным устройством используя USB Accessory Mode через микросхему FT311D.
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT311D.pdf

в качестве примера аналогичного приложения можно рассмотреть UARTLoopback
http://www.ftdichip.com/Support/Documents/AppNotes/AN_208_FT31xD_Demo_APK_User_Guide.pdf

Приложение работает со всеми смартфонами которые у меня были (Xiaomi, Huawei, Sony и др.) и на различных версиях от 4.x до 7.0 кроме ... Samsung (за исключением одного древнего на Android 4.x). Все Samsung (в наличии - 3 шт.) начиная от 5-ой и кончая 7.0 (J7 2017 года) - отказываются работать.
Подключал осциллограф и смотрел сигналы на выходах TXD и RXD - все нормально, смарт отправляет данные, устройство отправляет ответ и вроде смарт должен их получать. Отладчик показывает, что ни одного байта из входной посылки - не принимается :(

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
// получение данных через java.io
    private FileInputStream usbInStream; // for usb - need FileInputStream & FileOutputStream
// прием данных
                        bytesReaded = usbInStream.read(readBuff,readDataCnt,dataUsb2Read);
                        if(!isClearBuff){
                           if(bytesReaded>=dataUsb2Read)
                               dataUsb2Read = 0;
                            else{
                                dataUsb2Read -= bytesReaded;
                                readDataCnt += bytesReaded;
                            }
                        }



Проверял все возможные режимы подключения USB (MTP,Камера), включал режим отладки, отключал Knox - ноль на массу. Микросхему FT311D (USB Host) - при этом видит нормально, соединение устанавливается и передача из программы идет нормально.

Для приложения в разделе "Разрешения" - никаких дополнительных разрешений не требуется. При подключении устройства выдается запрос от смартфона на разрешение для подключения к устройству, естественно разрешаю.

Может кто сталкивался с этим?

С уважением, Сергей.
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39597603
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую попробовать демку отсюда https://github.com/mik3y/usb-serial-for-android
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39597646
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanРекомендую попробовать демку отсюда https://github.com/mik3y/usb-serial-for-android

Спасибо, но это немного не то. Если я правильно понял, то подключение в проекте идет в Host mode.

В моем случае смартфон (приложение на андроид) - не Host, а accessory. Хостом является очень хитрая микросхема FT311D. Именно поэтому подключение идет не в режиме USB Host, а в режиме Usb accessory mode (смартфон является accessory, хотя обычно наоборот, всякие подключаемые к смартфону устройства - accessory). Сделано это было для того, что не все смартфоны могут работать в USB Host Mode (давно было сделано). Сейчас почти все смарты могут работать в требуемом режиме.

Строка в манифесте выглядит вот так:
<uses-feature android:name="android.hardware.usb.accessory" />

Есть подозрения что мощные смартфоны Samsung просаживают напряжение 5В, хотя довольно новый смарт Xiaomi Radmi Note 4 - работает.

Завтра продолжу проверку.

PS: прогнал тест UARTLoopback - работает на Samsung, правда запитать смартфон пришлось от отдельного источника питания и ток потребления >1A, что для подключаемого устройства - на пределе возможностей.
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39597951
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky SergeЕсть подозрения что мощные смартфоны Samsung просаживают напряжение 5В
Я, кстати, сталкивался тоже с этим. Как-то хитро выкручивался, но как именно - не помню.
Именно с самсунгом было и с переходником на rs. Даже на весьма дешевом планшете texet работало как нужно.
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39598103
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у Samsung указанный в первом посте read , почему-то блокируется :( И я пока не знаю, как это обойти...
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39598163
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может в логкате при этом от системы отображается что-то интересное?
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39598207
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanМожет в логкате при этом от системы отображается что-то интересное?

Что там смотреть, висит как вкопанный на Read, хоть кол на голове чеши. Байты типа не приходят. А по осциллографу - вроде приходят. Хотя UARTLoopback - работает!

PS: Чтобы посмотреть логкат, когда смарт подлючен не к компу, нужно организовывать его на самом устройстве, по типу, как описано здесь:
http://developer.alexanderklimov.ru/android/debug/logcat.php

Мне сейчас этим что-то не хочется заниматься.
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39598330
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky SergeЧтобы посмотреть логкат, когда смарт подлючен не к компу, нужно организовывать его на самом устройстве, по типу, как описано здесь:
С рутом можно смотреть любым логгером из маркета.
...
Рейтинг: 0 / 0
usb accessory mode (Samsung)
    #39598356
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanBelotsky SergeЧтобы посмотреть логкат, когда смарт подлючен не к компу, нужно организовывать его на самом устройстве, по типу, как описано здесь:
С рутом можно смотреть любым логгером из маркета.

Спасибо буду знать. Хотя для моего Samsung J7 2017, кажется нет рута (интересовался давно, в момент покупки). Да и это бы ничего не дало, т.к. зависало на блокирующем read.

Кажется пофиксил проблему, немного переделал поток чтения. Раньше я делал так: устанавливал флаг, разрешающий чтение, теперь чтение идет постоянно (хотел избавиться от лишнего буфера для приема данных). Как это могло повлиять никак не могу понять, между отправкой посылки устройству и ответом от него проходит от 1 до 2 мс (по осциллографу), за это время быстрый смарт легко успевает становиться на прием (на практике - любой смарт), более того, у меня становится на блокирующий read ДО отправки посылки устройству.

ХЕЗ почему так происходит именно в Samsung.

В общем, всем спасибо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / usb accessory mode (Samsung)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]