Использование usb-otg в режиме msc_host

STM Урок 36. USB. Host Mass Storage Class. Часть 1

Урок 36

Часть 1

USB. Host Mass Storage Class

Проект создаём из проекта I2CLCD80. Назовем его USB_HOST_MSC_FATFS. Запустим проект в Cube, включим USB_OTG_FS в режим Host_Only включим там Activate_VBUS.

В USB_DEVICE в разделе Class For FS IP выберем пункт Mass Storage Host Class

Лапки портов PD4-PD7, PB8, PB9 отключим, это пережиток прошлых занятий

В разделе FATFS включим USB Disk

Лапку PC0 включим на выход

Включим на выход ещё лапки портов отвечающие за красный и зеленый светодиоды

В Clock Configuration выберем следующие делители (нажмите на картинку для увеличения изображения)

В Configuration прерывания там выставились сами.

Единственное можно включить поддержку кластеров до 4 кб

Сгенерируем и запустим проект, подключим lcd.c и настроим программатор на автоперезагрузку.

В main уберем весь пользовательский код кроме инициализации и очистки дисплея

/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

В файле usb_host.c подключим файл для файловой системы

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

Также в этом файле кое-что заменим в функции USBH_UserProcess

static void USBH_UserProcess (USBH_HandleTypeDef *phost, uint8_t id)

/* USER CODE BEGIN 2 */

f_mount(NULL, (TCHAR const*)»», 0);

/* USER CODE END 2 */

В файле main.c объявим некоторые переменные

/* USER CODE BEGIN PV */

extern ApplicationTypeDef Appli_state;

FATFS USBDISKFatFs; /* File system object for USB disk logical drive */

FIL MyFile; /* File object */

extern USBH_HandleTypeDef hUsbHostFS;

/* USER CODE END PV */

Также в файле main.c создадим функцию для считывания, создания и редактирования файлов и напишем туда включение зеленого светодиода, чтобы отследить, попали ли мы в данную функцию.

/* USER CODE BEGIN 0 */

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);

/* USER CODE END 0 */

Добавим код в бесконечный цикл

/* USER CODE BEGIN 3 */

/* USER CODE END 3 */

Подключим флеш-диск к компьютеру, создадим на нем текстовый файл «123.txt» с каким-нибудь содержимым, извлечем его из компьютера.

Подключим контроллер, флеш-диск к нему через кабель OTG.

Соберем проект, прошьем контроллер и посмотрим, попадём ли мы в нашу функцию по свечению зеленого светодиода.

В функцию мы попали, теперь можем здесь писать код, т.к. именно попав сюда, мы уверены, что всё у нас для этого готово. Добавим в данную функцию некоторые переменные

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); // здесь видим, что мы сюда попали

FRESULT res; /* FatFs function common result code */

uint32_t byteswritten, bytesread; /* File write/read counts */

uint8_t rtext[100]; /* File read buffer */

Вызовем функцию подключения нашего флеш-диска. Результат также смотрим с помощью светодиодов

uint8_t rtext[100]; /* File read buffer */

if(f_mount(&USBDISKFatFs, (TCHAR const*)USBH_Path, 0) != FR_OK)

/* FatFs Initialization Error */

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //красный цвет – сигнал ошибки

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); // здесь видим, что мы сюда попали

Вызовем функцию открытия файла для чтения. Также результат отследим по зеленому светодиоду, перенеся функции вызова управления лапками портов в другое место

if(f_mount(&USBDISKFatFs, (TCHAR const*)USBH_Path, 0) != FR_OK)

/* FatFs Initialization Error */

if(f_open(&MyFile, «123.txt», FA_READ) != FR_OK)

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //красный цвет – сигнал ошибки

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); // здесь видим, что мы сюда попали

Теперь напишем код считывания байтов из файла и отображения их на дисплее. В связи с этим мониторинг результатов с помощью светодиодов можно удалить

if(f_open(&MyFile, «123.txt», FA_READ) != FR_OK)

if((bytesread == 0) || (res != FR_OK))

В следующей части данного занятия мы попробуем создать файл и записать в него информацию.

20 комментариев на “ STM Урок 36. USB. Host Mass Storage Class. Часть 1 ”

Чем обусловлено изменение кода USBH_UserProcess?

f_mount(NULL, (TCHAR const*)»», 0);

и здесь (в тексте статье удаленный элемент отсутствует):

Следующее: «Лапку PC0 включим на выход». Зачем включали, если нигде не используем возможность отключения питания на устроймтво?

А на 103 можно этот урок перевезти.
спасибо…

Нельзя. Нужен USB OTG интерфейс. Подойдут, например, stm32F105, stm32f107 или любые другие с интерфейсом USB OTG_FS или USB OTG_HS.

STM32 MSC for SD in SPI mode

Good morning
I wanted to congratulate the site. I had a need.
If possible, is there an example of MSC on SD – SPI instead of USB?
I have difficulty understanding how to proceed.

Thanks Silvio
(sorry for the language)

в исходнике изменения в USBH_UserProcess вообще не сделаны. Более того, программа вообще не обращается к этой функции. По-крайней мере, явно. я не увидел. и вообще не работает, а ваш исходник даже не собирается. в чем дело?

По всей видимости, что-то изменили со времён выхода урока в HAL.

А какая ошибка при сборке?
Хотя даже ещё один вопрос предварительный, так как от Вас очень мало данных:
Что именно не собирается? не генерируется проект в Cube MX (надеюсь объяснять не надо, чтобы версия Cube была та же какая была во время выхода урока, иначе пляски с бубном) или проект нормально генерится, но потом не собирается в Keil?

1. не находит USBH_Path, впрочем, я нашел пример, откуда вы взяли ваш пример и там USBH_Path декларируется.
2. однако ж, больше интересно про USBH_UserProcess?

да, хотел сказать, чтобы вы не подумали, что у вас какие-то косяки в программах непреодолимые… а то, мне показалось, что комменты мои несколько пренебрежительные. хорошее дело делаете, частенько к вам захаживаю, удачи вам. а USBHPath – должен быть, так он в FATS назван.

При входе в этот модуль
LCD_Clear()
LCD_SetPos(0,0)
LCD_String((char*)rtext)
f_close(&MyFile)
зависает в первой же функции, пробовал в дебаге
а также зажигал диод в разных местах, после LCD_Clear() не горит.
А вот запись на флэш получается.
Ну и заодно огромное СПАСИБО за ваш нелёгкий труд!

Более подробно: в дебаге очищает экран LCD_Clear() и далее виснет на двух функциях
в файле stm32f4xx_hal.c
__weak uint32_t HAL_GetTick(void)
<
return uwTick;
>

while((HAL_GetTick() – tickstart) evorontsov :

То же самое… Разобраться так и не смог….

Есть еще непонятное место: при чтении файла после создания и записи статус – FR_INVALID_OBJECT и, понятное дело не читает ничего. Если закомментировать создание и запись – все нормально читается. В чем может быть причина?

Всем привет, Подскажите stm32f103С8Tx способен работать как USB HOST. Все примеры что нашел, это имитация HID устройств. А у меня задача USB клавиатуру подключить к МК.

Здравствуйте, прежде всего большое спасибо за ваши уроки, вы лучшие.

Я следил за вашей SD-картой с помощью SPI и FATFS Tutorial, и это было замечательно, оно работало отлично.
Я хотел бы реализовать подключение USB этой работы. Я хочу добавить устройство USB Mass Sotrage в проект SPI FATFS на SD-карте.
Я использую ядро STM32F072RB, и я использую внутреннюю конфигурацию часов.

Спасибо большое! Я остаюсь внимательным. Ты самый лучший!

Hello, fist of all thank you very much for your tutorials, you are the best.

I have followed your SD Card with SPI and FATFS Tutorial and it was wonderful, it worked perfect.
I would like to implement a USB connection of that work. I mean, I would like to add a USB Mass Sotrage Device to the SD Card SPI FATFS project.
I am using a STM32F072RB Nucleo, and I am using internal clock configuration.

Thank you very much! I remain attentive. You are the best!

После просмотра не понятно как переменная USBH_Path должна быть объявлена и проинициализирована.

Это стандартная переменная USBHPath. Не надо ее объявлять и инициализировать ИМХО

Здравствуйте! Спасибо за Ваш труд огромнейшее. Для новичка процесс освоения программирования stm32 упрощается многократно с вашими уроками. У меня отладочная плата NUCLEO-F767ZI, работаю через stm32cubeIDE, почему-то не работает USB Host (на плате не светится светодиод LD8). При генерации кода Cube указал на необходимость указать параметры Platform Settings в USB_HOST (тут только Drive_VBUS_FS можно указать, выставил GPIO:Output PG6, на моей плате PG6 управляет включателем U12, а он в свою очередь запитывает VBUS). Ошибок при сборке проекта теперь нет, но не работает Host. Пытаюсь сравнивать с примером от ST (он работает, но библиотеки явно изменились), успехов пока нет. Прошу Вас уделить немного времени, может в настройках Cube надо что-то дополнительно указать…

Нашел решение. Неделю возился не видел, у Вас уже помощь попросил и решил еще раз все проверить, строчка за строчкой. Итак Cube в main.c в фукцию int main(void) вставляет вызов MX_USB_HOST_Init(), в этой инициализации есть вызов USBH_Start(&hUsbHostFS), далее вызов USBH_LL_DriverVBUS(phost, TRUE), в итоге вызывается MX_DriverVbusFS(state). В параметре передается TRUE. А вот описание:

void MX_DriverVbusFS(uint8_t state)
<
uint8_t data = state;
/* USER CODE BEGIN PREPARE_GPIO_DATA_VBUS_FS */
if(state == 0)
<
/* Drive high Charge pump */
data = GPIO_PIN_SET;
>
else
<
/* Drive low Charge pump */
data = GPIO_PIN_RESET;
>
/* USER CODE END PREPARE_GPIO_DATA_VBUS_FS */
HAL_GPIO_WritePin(GPIOG,GPIO_PIN_6,(GPIO_PinState)data);
>.

Т.е. при конфигурировании USB_OTG_FS в режиме HOST only на PG6 (для NUCLEO-F767ZI управление VBUS) выдается низкий уровень. Должно быть наоборот иначе как запитать USB флешку. В примере от ST (FatFs_USBDisk), который у меня работал изначально, логика верная. Там в итоге череды вызовов вызывается:

USBH_StatusTypeDef USBH_LL_DriverVBUS(USBH_HandleTypeDef *phost, uint8_t state)
<
if(state == 0)
<
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6, GPIO_PIN_RESET);
>
else
<
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6, GPIO_PIN_SET);
>

HAL_Delay(200);
return USBH_OK;
>

Параметр state == TRUE, на PG6 высокий уровень, выключатель U12 выдает запитывает USB флешку и светодиод LD8 светится, а я улыбаюсь.

Вот и причина неработоспособности. В итоге сам спросил, сам ответил))). Но может кому понадобится. Спасибо за внимание.

Возможно, что-то изменилось в библиотеках. Посмотрите примеры в репозитории.

Что такое USB-host и USB OTG

Я начинаю серию справочных статей по отдельным компонентам и функциям различных электронных устройств — планшетов, ноутбуков, ридеров, плееров и так далее. Это такой своеобразный ликбез в сфере бытовой электроники. Я постараюсь сделать эти статьи понятными для максимально широкого круга людей.

Тема сегодняшней статьи — USB-host (USB-хост). Это весьма примечательная функция, которой оснащается достаточно большое количество устройств (в основном, правда, довольно дорогих), и рассказать о ней определенно стоит. Также я расскажу и о функции USB OTG — фактически, более современной разновидности USB-хоста.

Если говорить максимально просто и доступно, то наличие USB-хоста на каком-нибудь устройстве означает возможность подключения к нему различных внешних устройств — например, флэшек, внешних жестких дисков, кардридеров, плееров, фотоаппаратов и так далее. Весьма интересна возможность подключения и внешней «периферии» — клавиатур, мышек и так далее.

Устройство с функцией USB-хоста обладает полноценным портом USB и специальным программным обеспечением (в частности, драйверами), которое позволяет осуществлять работу с подключаемыми устройствами: передавать на них файлы, копировать файлы с них, использовать подключенное устройство в качестве клавиатуры и так далее.

Что интересно, к устройству с USB-хостом можно подключать также USB-хабы — устройства, которые подобны сетевым тройникам. Например, на планшетах обычно имеется только один порт USB. Подключив к нему USB-хаб (а стоит он недорого), вы получите уже два или даже четыре порта, что весьма удобно — например, к одному можно подсоединить клавиатуру, а к другому подключать флэшки.

В каких случаях USB-хост удобен и нужен? Да во многих. Согласитесь, возможность скопировать файлы на плеер, планшет или ридер без подключения его к компьютеру не может не радовать. Вам надо просто подключить к устройству флэшку или какое-либо другое устройство, с которого вам нужно перенести файлы.

Читайте также  Спиннер и fablab

Весьма приятна возможность перенести снимки с фотоаппарата на планшет или плеер с жестким диском, и тем самым освободить память фотоаппарата, сделать еще больше снимков. Подключение клавиатуры к планшету — тоже очень приятная возможность. Удобны и принтеры с наличием USB-хоста: к ним можно напрямую подключать фотоаппараты, телефоны, флэшки и печатать снимки или документы прямо с них; компьютер для этого совершенно необязателен.

При этом стоит отметить, что само наличие функции USB-хоста еще не гарантирует его нормальную работу. В частности, процесс обмена файлами через USB может осуществляться достаточно сложным и неудобным образом — в качестве примера можно привести PocketBook 302 (это, кстати, единственный ридер, оснащенный USB-хостом). Какие-то устройства могут просто не подключиться ввиду отсутствия драйверов или неких недоработок программистов, писавших программное обеспечение для USB-хоста.

Именно поэтому я советую перед покупкой того или иного устройства проверить, насколько качественно реализована в нем опция USB-host. Попробуйте подключить флэшку, посмотреть, насколько легко и удобно можно скопировать файлы с нее и на нее. Если у вас есть usb-клавиатура, которую вы планируете использовать вместе с покупаемым устройством, не лишним будет проверить корректность ее работы. Если же вы соберетесь купить такую клавиатуру уже после покупки самого устройства, то возьмите с собой в магазин это устройство и проверьте, насколько корректно будут с ним работать представленные в магазины клавиатуры.

Стоит отметить, что сейчас имеются в продаже устройства и с поддержкой так называемого USB OTG. Я бы сказал даже, что USB OTG сейчас встречается в устройствах довольно часто, чаще, чем классический USB-хост. В чем основное отличие USB OTG? В том, что USB OTG не предполагает наличие отдельного классического полноразмерного порта USB. Для подключения периферийных устройств используется порт microUSB или miniUSB, который, вообще говоря, служит главным образом для связи устройства с компьютером. На устройстве с USB OTG этот порт фактически совмещает в себе функции USB-host (подключение периферии) и USB-device (подключение к компьютеру).

Чтобы к miniUSB/microUSB порту с поддержкой OTG подключить флэшку или, скажем, клавиатуру, необходимо приобрести специальный переходник, который стоит порядка 500 рублей (при желании его можно найти по более низкой цене или же вовсе сделать самому — в интернете есть инструкции). Затем нужно вставить этот переходник в порт miniUSB/microUSB, а к соответствующему выходу переходника подключить нужное вам периферийное устройство.

И тут опять же стоит отметить, что не на всех устройствах USB OTG реализовано хорошо. Где-то поддержка USB OTG может быть заявлена, но ввиду отсутствия необходимого программного обеспечения она не работает. Пример — ридеры Onyx Boox. Также стоит отметить, что внешние жесткие диски по протоколу USB OTG подключить вряд ли удастся: они потребляют слишком много энергии; планшет «прокормить» их просто не в состоянии.

Так мы плавно переходим к основному недостатку USB-хоста (как классического, так и USB OTG): его активное использование способствует быстрой разрядке устройства. Конечно, клавиатура много энергии пожирать не будет, а вот постоянно подключенная и использующаяся флэшка — будет.

Под конец стоит ответить на вопрос: почему USB OTG сейчас популярнее, чем обычный USB-host? Ответ, на самом деле, довольно прост: USB OTG позволяет уменьшить толщину и вес устройства. В случае с классическим USB-host’ом в устройство надо встроить полноразмерный USB-порт (соответственно, увеличивается толщина) и обычный mini/micro-USB порт — для подключения к компьютеру (увеличивается и итоговый вес). В случае с USB OTG надо установить только один mini/microUSB-порт, просто многофункциональный — работающий и на вход, и на выход. Более того, USB OTG отличается более низким энергопотреблением, хотя и не позволяет поэтому подключать такие прожорливые устройства, как внешние жесткие диски.

Но USB OTG не лишен и недостатков, главным из которых является необходимость покупки переходника и постоянной его переноски с собой.

Посмотреть, поддерживает ли интересующее вас устройство опцию USB-host или USB OTG, можно на странице описания устройства в разделе «Технические характеристики» («Спецификации»). Описание, разумеется, можно найти на сайте производителя устройства, а также на сайтах многих магазинов.

17 Replies to “Что такое USB-host и USB OTG”

Кстати: может сделать небольшой обзор- справочник по кабелям? Что такое AM-AF, AM-BM и прочие абревиатуры. Для чего они нужны, полезны и т.д
Можно сюда и HDMI добавить. Сейчас в продаже как минимум три разновидности(модификации) этих кабелей. Последняя, самая дорогая позволяет использовать этот кабель для всего- вплоть до передачи интернета. Т.е из него пытаются сделать универсальный стандарт.

Увы, я совершенно не разбираюсь кабелях, во всех этих AM-AF, AM-BM и тому подобных разновидностях.

Самое оригинальное применение AM-AF : если пользуетесь модемом от сотового оператора, то при плохом приеме удлинить соединение с помощью этого кабеля и подвесить модем к потолку или выкинуть в форточку.

. Но USB OTG не лишен и недостатков — невозможность подключения USB-хаба (разветвителя).
А как же это видео?
http://samsung-galaxy.mobi/samsung-galaxy-s3-i-dzhoystik-posredstvom-usb-otg/

Спасибо за информацию и ссылку! Сейчас сам удивляюсь, с чего взял, что нельзя подключить юсб-хаб к устройству с OTG:)
Убрал соответствующее предложение.

Hi All!
К моему Samsung Galaxy Tab 7.7 через USB-OTG кабель непосредственно подключаются маломощные (до 500мА потребляемого тока) USB-устройсва, как-то USB Flash, USB Card Readers, etc., а также мощные USB устройства типа EBook, Ext USB HDD с подключенным собственным питанием. Через внешний USB-hab со своим источником питания поключаются внешние USB HDD, не имеющие собственного источника питания — проверено на Jet HDD 0.5TB, который получает питание только через USB. Причем, в отличе от многих китайских недопланшетов, видится несколько поключенных к хабу устойств, а не «одно из…» То же самое могу сказать про Samsung Galaxy S3. Про другие врать не буду, пока лично не проверю!
Yours sincerely, Dmitry aka wcat

А в программном отношении USB OTG это просто USB или нет?

Насколько я знаю, нет. Нужны специальные драйвера. Бывает, что устройство оснащено USB OTG аппаратно, но программно возможность «общения» с внешними устройствами не поддерживается.

Зачем вообще эта глупость на планшетах? Обычный порт вполне бы подошёл как на нетбуках. Как и для usb типа В, так и для типа А есть варианты и мини, и микро. Через тип А нельзя подключать устройство к компу, но зачем вообще это надо? Мы же не подключаем нетбуки к компу через USB и не паримся по этому поводу. USB otg больше нужен телефонам, но планшет всё же ближе к нетбуку, чем к телефону.

Добрый день. при подключении планшета через USB OTG к ПК насколько свободно можно оперировать фалами на планшете?

USB-OTG — это всё извращение на самом деле, полезное, если только, для смартфонов на тот случай, когда понадобится к смартфону флешку подключить, но при этом сохранить возможность подключать смартфон к компу. Это, кстати, также является пережитком прошлого, из тех времён, когда не было флешек и приходилось покупать специальные кабеля для подключения телефонов к компьютерам. Ну, может быть остался в этом какой-то смысл, всё-таки не все компьютеры оснащены картридером для microSD-флешек. Вот это тот единственный случай, когда от USB-OTG есть реальная польза.

Использование же USB-OTG на планшетах — это реальный маразм, поскольку планшет подключать к компу смысла нет никакого, ибо есть встроенный wifi, нормального размера дисплей, короче говоря, есть возможность по-человечески работать в сети. А раз нет необходимости подключаться к компу, то, спрашивается, ЗАЧЕМ ВООБЩЕ НА ПЛАНШЕТЕ УСТАНАВЛИВАТЬ USB-ПОРТ ТИПА B? Это и есть главный вопрос, но такое впечатление, что производители воспринимают планшет как устройство более близкое к телефону, нежели чем к ноутбуку, по-другому эту глупость в виде установки USB портов типа B не объяснишь. Вполне себе замечательно можно было бы установить порт microUSB типа A и подключать к планшету не только флешки, но и принтеры, например: драйвера есть и для Windows, и для Android (ибо на Linux’e это дело собрано).

Салют,Колян! Ну вот я тоже пользовался флешками для передачи данных с телефона на планшет(и обратно).
Пока телефон перестал запускаться с флешкой.Теперь собрал один кабель,соединив по цветам два конца(папа-папа) с микроЮСБ,так как в продаже оного нет:-(.Не пойму,почему планшет на видит телефон,не появляется даже значок ЮСБ соединения.Может,что не правильно делаю?

Где можно приобрести нужные драйвера для отг?

Думаю, что в первую очередь стоит проверить сайт производителя гаджета, к которому нужны драйвера. Если там их нет, стоит связаться с их техподдержкой.

А хде реклама? хотел отблагодарить за инфу, а рекламы нету..

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

23. Работа USB-контроллера в режиме Host

Данный режим поддерживается только у микроконтроллеров AT90USB647/1287.

23.1. Описание канала (Pipe)

Взамен термина конечная точка, употребляемый в описании Device-контроллера, применительно к Host-контроллеру используется другой термин — канал (pipe). Соответствие канала Host-контроллера конечной точке Device-контроллера установлено стандартом USB.


Рисунок 23.1. Каналы и конечные точки USB-системы

Для настройки канала согласованно с параметрами конечной точки Device-стороны, Host-контроллер должен использовать дескрипторы настроек Device-стороны (Device Configuration Descriptors).

23.2. Отсоединение (Detach)

После сброса бит управления отсоединением (DETACH) равен 1. Таким образом, перед переходом в режим Host (установка бита HOST) необходимо программно сбросить бит отсоединения.

23.3. Подача питания и сброс

Следующий рисунок иллюстрирует основные состояния Host-контроллера после подачи питания.


Рисунок 23.2. Состояния Host-контроллера после сброса

После аппаратного сброса Host-контроллер находится в состоянии RESET. Разрешение работы USB-контроллера и активизация его режима Host-контроллера приводят к переводу в состояние IDLE. В таком состоянии Host-контроллер ожидает подключение Device-стороны, по минимуму потребляя ток.

Оконечные каскады USB-контроллера должны находиться в режиме IDLE. Для перехода в состояние HOST READY не обязательно активизировать блок PLL.

Если Host-контроллер не генерирует пакеты START OF FRAME (SOF), шина USB и сам контроллер переходят в состояние SUSPEND. В этом состояние потребляемый USB-контроллером ток минимален. Host-контроллер выходит из состояния SUSPEND с началом генерации пакета SOF по линии USB.

23.4. Обнаружение Device-стороны

Контроллер обнаруживает подключение Device-стороны, когда уровень на одном из выводов, D+ или D-, отличается от нуля. Иными словами, Host-контроллер следит за появлением подтяжки к плюсу питания на линии D+ или D-. Однако, перед началом такого слежения необходимо обеспечить подачу напряжения VBUS на Device-сторону.

Отключение Device-стороны Host-контроллер определяет по состоянию IDLE шины, которому соответствуют низкие уровни на линиях D+ и D-.

23.5. Выбор канала

Перед выполнением каких-либо действий ЦПУ должен выбрать канал, с которым он желает работать. Для этого предусмотрены биты PNUM2:0 (регистр UPNUM). Значение, записанное в данные биты, определяет номер канала, которым будет управлять ЦПУ.

После выбора канала, ЦПУ может осуществлять доступ к его регистрам и данным.

23.6. Настройка канала

Для активизации канала необходимо придерживаться следующего алгоритма.


Рисунок 23.3. Последовательной активизации канала

Сразу после активизации канала (EPEN = 1) все готово для отправки запросов Device-стороне.

По завершении конфигурации (CFGOK = 1), можно модифицировать только TOKEN канала (PTOKEN) и интервал опроса канала типа INTERRUPT.

Канал типа CONTROL поддерживает только 1 банк. Попытка установки любого другого значения приведет к ошибке конфигурации (CFGOK = 0).

Читайте также  Подключение 4-разрядного led индикатора всего к 4 портам микроконтроллера

Обнуление бита PEN приводит к сбросу настроек канала. В таком случае, все соответствующие регистры канала принимают их значения по умолчанию. Подробности см. в разделе, посвященному управлению памятью.

Прим.: программа должна выполнить настройку канала по умолчанию (CONTROL) со следующими параметрами:

  • Тип: CONTROL
  • Тип пакета TOKEN: SETUP
  • Банк данных: 1
  • Размер: 64 байта

Для получения 8 байт Device-дескриптора программа должна отправить запрос GET_DESCRIPTOR.

В этих байтах содержится параметр MaxPacketSize (максимальный размер пакета) конечной точки типа CONTROL Device-стороны, которая используется по умолчанию. С помощью данного параметра необходимо повторно настроить размер канала по умолчанию.

23.7. USB-сброс

После установки бита сброса (RESET) USB-контроллер отправляет запрос USB RESET. После отправки этого запроса автоматически устанавливается бит RSTI. Если RSTE=1, это приводит к запуску прерывания.

После отправки запроса USB RESET сбрасываются все настройки канала и назначение памяти. Состояние общего регистра разрешения прерываний Host-контроллера остается неизменным.

Если перед этим шина находилась в режиме SUSPEND (SOFEN = 0), USB-контроллер автоматически перейдет в режим RESUME (HWUPI=1), а в целях генерации пакета SOF, сразу после USB RESET, будет аппаратно установлен бит SOFEN.

23.8. Настройка адреса

Как только Device-сторона ответит на первый запрос Host-контроллера с адресом по умолчанию (0), Host-контроллер назначит новый адрес Device-стороне. Для этого Host должен отправить USB RESET, а затем выполнить запрос SET ADDRESS (тип CONTROL) с новым адресом, который будет использоваться Device-стороной. По окончании этого запроса программа должна сохранить новое значение адреса в регистре UHADDR. Все последующие запросы, выполненные через любой канал, будут выполняться с использованием нового адреса. Когда Host-контроллер отправляет USB RESET, значение регистра UHADDR сбрасывается и все последующие запросы будут выполняться с использованием адреса по умолчанию (0).

23.9. Обнаружение запроса удаленного возобновления (REMOTE WAKE-UP)

Host-контроллер вводит режим SUSPEND обнулением бита SOFEN. В дальнейшем пакеты START OF FRAME по шине USB не передаются, что приводит к переводу Device-стороны в режим SUSPEND по истечении 3 мс.

Device-сторона активизирует Host-контроллер отправкой запроса UPSTREAM RESUME (функция REMOTE WAKE-UP; удаленное возобновление). Host-контроллер обнаруживает отличное от IDLE состояние на шине USB и устанавливает бит HWUPI. Если таким, отличным от IDLE, состоянием оказывается UPSTREAM RESUME (K-состояние), произойдет аппаратная установка бита RXRSMI.

Не позднее 1 мс программа должна установить бит RESUME для генерации DOWNSTREAM RESUME, при этом, длительность такой генерации должна быть не менее 20мс.

Сразу после генерации DOWNSTREAM RESUME автоматически устанавливается бит SOFEN, что приводит к незамедлительной генерации SOF.

23.10. Сброс канала

Программа имеет возможность сброса канала. Для этого предусмотрен регистр сброса канала. Настройка канала и переключатель данных остаются неизменными. Сбросу подвергаются только настройки банка и биты статуса, которые принимают свои значения по умолчанию.

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

23.11. Доступ к данным канала

Чтобы прочитать или записать данные в буфер FIFO канала, ЦПУ должен выбрать номер канала с помощью регистра UPNUM и выполнить операцию чтения или записи регистра UPDATX.

23.12. Управление каналом CONTROL

Транзакция CONTROL разделяется на три этапа:

  • Настройка (SETUP)
  • Данные (IN или OUT)
  • Статус (OUT или IN)

На каждом из этапов программа должна управлять изменением TOKEN.

Исходное значение переключателя данных устанавливается с учетом типа пакета (действительно только для канала CONTROL):

  • SETUP: DATA 0
  • OUT: DATA 1
  • IN: DATA 1 (ожидаемое значение переключателя данных)

23.13.Управление каналом OUT

Для начала нужно убедиться, что канал настроен и не остановлен.

Прим.: если программа принимает решение переключиться в режим SUSPEND (обнуление SOFEN), когда банк готов к отправке, USB-контроллер автоматически выйдет из режима SUSPEND и отправит банк.

После освобождения текущего банка выполняется аппаратная установка бита TXOUT. Если бит TXOUTE установлен, это вызовет генерацию прерывания. Одновременно с этим устанавливается бит FIFOCON. ЦПУ записывает данные в FIFO, а затем сбрасывает бит FIFOCON для разрешения USB-контроллеру передавать данные. Если канал OUT состоит из нескольких банков, сброс FIFOCON также приведет к смене банка на следующий. Обновление бит TXOUT и FIFOCON осуществляется автоматически в зависимости от состояния следующего банка.

23.14. Управление каналом IN

Вначале нужно сконфигурировать канал.

Когда канал должен получить данные от Device-стороны, программа вводит режим IN. Это делается с помощью бита INMODE.

  • INMODE = 0. Во внимание берется значение регистра INRQX. Host-контроллер выполняет запросы типа IN в количестве (INRQX+1) через выбранный канал (предшествует его остановке). Данный режим позволяет избежать избыточных запросов IN в канале.
  • INMODE = 1. USB-контроллер выполняет бесконечное число запросов IN до тех пор, пока программа не остановит канал.

Генерация запроса IN начинается после программного обнуления бита PFREEZE. После каждого заполнения текущего банка выполняется установка бит RXIN и FIFOCON. Если установлен бит RXINE, это приводит к запуску прерывания. Программа может подтвердить USB-прерывание путем обнуления бита RXIN. Для освобождения текущего банка программа считывает данные и обнуляет бит FIFOCON. Если канал IN состоит из нескольких банков, обнуление бита FIFOCON инициирует переключение к следующему банку. Обновление бит RXIN и FIFOCON выполняется аппаратно в соответствии со статусом нового банка.

23.14.1. Ошибка CRC (только для передачи типа ISOCHRONOUS)

Ошибка CRC может возникнуть на этапе IN, если USB-контроллер обнаружит повреждение в принятом пакете. В такой ситуации запускается прерывание STALLEDI/CRCERRI, но оно не исключает запуска прерывания RXINI.

23.15. Система прерываний


Рисунок 23.4. Система прерываний Host-контроллера


Рисунок 23.5. Система прерываний канала Host-контроллера

Что такое USB OTG и зачем это нужно?

Содержание

Содержание

Можно ли быстро перекинуть файлы с флэшки на телефон, выложить снимки с фотоаппарата в инстаграм за 10 минут, заставить гореть гирлянду только от смартфона? Благодаря технологии USB OTG ваш смартфон может больше, чем вы думаете.

Со времен первых коммуникаторов смартфоны все больше стремятся к копированию функционала ноутбуков и настольных ПК. Полноценно заменить компьютер мобильные девайсы не в состоянии, но некоторым пользователям функционала планшетов и смартфонов вполне хватает. При этом не все знают, что к мобильным устройствам, как и к компьютеру, можно подключить различную периферию и гаджеты, а не только кабель для зарядки.

Что такое USB OTG

Технология USB OTG появилась в 2006 году. Изначально она разрабатывалась для того, чтобы не только компьютеры, но и другие устройства могли обмениваться между собой информацией, используя порт USB. Об этом говорит и сама аббревиатура OTG — «On-the-Go», что дословно на русский язык переводится как «На ходу». Подразумевается, что можно использовать устройства, которые буквально помещаются в кармане.

Не удивительно, что в последнее время USB OTG ассоциируется именно со смартфонами и планшетами, так как это самые популярные товары, поддерживающие данную технологию. Хотя на самом деле те же USB-флешки, подключенные автомагнитолам или другим устройствам — та же самая технология USB OTG.

Как это работает

В качестве примера будет рассмотрен стандартный переходник USB OTG с уже постепенно устаревающим разъемом Micro-USB. На схеме выше у Micro-USB отображены пять контактов, и именно при взаимодействии 4-го и 5-го контактов мобильное устройство получает возможность распознать то, что к нему подключено. Тогда как на первый контакт подается питания, без которого работа USB OTG также невозможна.

Какие устройства поддерживают USB OTG

Почти все современные смартфоны и планшеты поддерживают USB OTG. Исключения бывают в основном среди бюджетных моделей с разъемом Micro-USB, хотя иногда встречаются и экземпляры с современным Type-C портом, к которому нельзя подключить ничего кроме кабеля (к примеру, смартфон Noa N1).

Также есть устройства, которые лишь частично поддерживают USB OTG. Например, у пользователя получится подключить USB-флеш-накопитель, мышку, клавиатуру или другой нетребовательный гаджет, а вот что-то сложное вроде компактного тепловизора — уже нет.

Хотя с тепловизором оказалось все не так просто даже при поддержке технологии OTG. В случае с моделью, у которой есть разъем Micro-USB, может получиться так, что камера гаджета будет повернута в сторону пользователя. В этом плане гораздо удобнее тепловизоры с новым разъемом Type-C, которые можно развернуть как угодно.

Обычно операционная система мобильных устройств позволяет подключать гаджеты через USB OTG без совершения дополнительных действий, кроме некоторых случаев, когда требуется установка дополнительного софта, как в примере с тепловизором. Однако у популярной Android OS есть множество измененных версий прошивок, и в китайских смартфонах, на которых установлены фирменные оболочки ColorOS, HiOS и Funtouch OS, перед каждым подключением нужно активировать функцию USB OTG, которая через какое-то время автоматически отключается. Возможно, разработчики так пытаются сделать свои оболочки безопаснее, чтобы не допустить случайного подключения. Или это просто продиктовано вопросом энергопотребления.

Как проверить поддержку USB OTG

Самый верный способ проверки — попробуйте подключить к устройству какой-нибудь гаджет — USB-флешку или что-то другое.

Также есть различные приложения, которые пытаются определить, поддерживается ли устройством «On-the-Go», но информация, отображаемая в таком софте, не всегда является достоверной.

Еще для проверки отлично подойдет любая модель USB-тестера. При подключении к мобильному устройству экран тестера сразу начнет работать, что и будет свидетельствовать о поддержке USB OTG.

Также через тестер можно узнать, сколько потребляет подключенная к смартфону или планшету техника. К примеру, USB-накопители потребляют небольшое количество тока, и, так как речь чаще всего идет о сотых долях ампера, то не каждый тестер отобразит такие показатели. Портативный жесткий диск напротив потребляет большой ток, который не любой смартфон может выдать.

Какой переходник нужен для работы USB OTG

В некоторых случаях переходник не нужен, так как есть гаджеты, подключаемые к мобильному устройству через его порт — это может быть устаревающий Micro-USB, современный Type-C или, в случае с техникой Apple, — Lightning.

Интересным примером служат флешки, у которых есть сразу несколько разъемов, и которым не нужны переходники для подключения.

Иногда переходник может встретиться в комплекте поставки к смартфону или планшету, но такое бывает редко. Впрочем, сейчас не проблема приобрести любой переходник на нужные разъемы.

В некоторых случаях нужен кабель для дополнительного питания. Не все девайсы способны отдавать большой ток более 0.5 ампер, и, хотя в большинстве случаев этого хватит, особо прожорливые гаджеты не смогут стабильно функционировать без дополнительного питания.

Например, такой кабель пригодится для подключения к смартфону портативного жесткого диска или чего-то аналогичного по потреблению. Кабель можно подключить к сети, компьютеру, или, например, к портативному аккумулятору.

Что еще можно подключить через USB OTG если устройство, к примеру, не поддерживает карты памяти, но информацию с них нужно перенести на смартфон, не используя при этом компьютер, то на помощь могут прийти OTG картридеры. Удобство некоторых моделей в том, что они работают не только с карточками формата microSD, но и с более крупными по размеру SD-картами.

Для пока немногочисленных смартфонов и планшетов, которые поддерживают функцию Display Port, предусмотрены специальные переходники для вывода видео и аудиосигнала на телевизор или монитор.

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

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

Список гаджетов этим не ограничивается — подключиться также можно к принтеру или камере, или вполне реально использовать проводную гарнитуру, требующую дополнительного питания для подсветки. Еще в продаже можно найти модемы, проводные геймпады, ИК-передатчики, USB-вентиляторы, всевозможные датчики, USB-гирлянды и даже USB-увлажнители воздуха или маленькие пылесосы.

Зарядка других устройств

Наличие в устройстве USB OTG дает еще один плюс в виде возможности заряжать другие девайсы и гаджеты. При этом заряжаться будет то устройство, в разъем которого вставляется обычный кабель, а отдает заряд девайс с подключенным переходником USB OTG. Заряжаться могут и аппараты без поддержки «On-the-Go», но вот заряжать что-то у них уже не получится.

Читайте также  Cверлильный станок своими руками

USB-OTG

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

Что такое OTG?

OTG («On-The-Go» — «На ходу») это возможность подключить к смартфону или планшету флешку, мышь, клавиатуру и прочую USB периферию.
Увы, такой возможностью обладают не все мобильные устройства.
Для подключения требуется специальный переходник.

Нюансы:
• Флешка должна быть отформатирована в FAT32.
• Ёмкость подключаемой флешки ограничена аппаратными возможностями смартфона.
• Винчестер и прочие энергоёмкие устройства требуют отдельного источника питания.

Поддерживает ли ваше устройство режим OTG можно узнать из списка на 4PDA. Правда, список устройств не полон.

Для подключения, например, флешки к смартфону чаще всего используется переходник «USB AF — USB micro AM» (о значении этих сокращений читайте в статье «USB 2.0»). К «маме» (USB AF) подключается флешка, а штекер (USB micro AM) подключается к смартфону.

Как самому сделать OTG-кабель?

Кабель OTG состоит из штекера USB micro (или mini) и большого гнезда USB (как в компе). Штекер можно взять от дата-кабеля, а гнездо — от USB удлинителя.

Главная фишка — в штекере USB micro/mini контакт 4 нужно замкнуть с контактом 5. Именно по наличию перемычки между 4 и 5 контактами в штекере устройство определяет, что ему предоставляют активную роль.

Монтажная схема кабеля OTG.
Штекер USB micro показан со стороны пайки

Установка перемычки на штекер залитый изоляцией ▼

Паятельные концы контактов штекера USB micro разведены в шахматном порядке. Нечётные отведены к одной стенке штекера, чётные — к другой. Сквозь полупрозрачную изоляцию можно разглядеть чёрный, зелёный, красный проводки с одной стороны. Осторожно подплавляем изоляцию у чёрного проводка и подпаиваем один конец перемычки к контакту GND. Смотрим с противоположной стороны: сквозь изоляцию виден незадействованный контакт и белый провод. Подплавляем изоляцию у незадействованного контакта и подпаиваем к нему второй конец перемычки.

Распайка штекера USB mini

Осталось припаять USB маму от USB удлинителя к переделанному нами штекеру цвет в цвет. Если кабели экранированные, то соединяем и экраны.

Можно ли заряжать активное устройство в режиме OTG?

Да, такой режим предусмотрен разработчиками, но далеко не каждое портативное устройство этот режим поддерживает. Режим зарядки при работе с периферией называется ACA (Accessory Charger Adapter). Для перехода в этот режим требуется особый OTG-кабель — в штекере USB-mini/micro контакты 4 и 5 (ID и GND) должны быть замкнуты через резистор RID_A=124 кОм.

Источник информации: «Battery Charging v1.2 Spec and Adopters Agreement (BC1.2)» (спасибо за информацию нашему читателю Виктору)

На форуме «L.F.» владелец смартфона Lenovo Ideaphone K900 сообщил об успешном подключении флешки одновременно с зарядом смартфона. В его случае RID=25 кОм.

Прошу консультацию. Приобрёл на А.Экспресс кабель -1.2м (3шт) для подзарядки (работа, машина, дом.) Один уже распотрошил (свернул usb разъём.) Провод добротный «не деревянный» , плоский, периферийные жилы отдельно изолированы, каждый провод витое плетение. Экрана нет. В вопросе зарядки от блока питания претензий нет. При подключении к компьютеру- последний не видит , что подключено. Как определить, куплен кабель -Data или OTG или повредил и mikro usb разъём ?

У вас однозначно Data-кабель. Кабель OTG просто невозможно подключить к компьютеру — у него розетка вместо вилки.

Чтобы проверить исправность кабеля, нужно прозвонить его.
№ контакта USB — № контакта micro-USB
1 — 1
2 — 2
3 — 3
4 — 5

Для нормальной связи нужен экран, соединяющий металлические корпуса разъёмов. Белый и зелёный провода должны быть повиты между собой.

За оперативный ответ и разъяснение спасибо. При поверке целостности кабеля каким образом определить неисправность сторон, USB или micro-USB (отсутствие контакта). Отрывать оба разъёма сторон или иголкой прокалывать оплётку,»прозванивая» предполагаемую неисправную сторону? Разъёмов (разборных) приобрёл на цену 2-х кабелей.Полагаю неисправность будет найдена, как порежу всё на куски.

Сперва нужно удостовериться, что обрыв имеет место быть.
Если заряд идёт, то неисправность может быть только с двумя проводами: белый data- (контакт №2) и зелёный data+ (контакт №3).
Не исключено, что они просто перепутаны местами. В этом случае достаточно поменять белый и зелёный провода местами на любом из разъёмов.
Если же выявится обрыв, то проще отрезать оба разъёма и перепроверить провод. В случае исправности провода устанавливаете новые разъёмы.

Но можно заголить внешнюю оболочку кабеля и прозвонить жилы в сторону одного и в сторону другого разъёма с помощью иголок, как вы и предполагали.

Добрый день. Подскажите, можно ли подключить через OTG кабель внешнюю камеру. Не эндоскоп, а взять отдельный модуль камеры со своим питанием и завести с него видеосигнал в телефон.

Можно подключить веб-камеру. Вот статья про подключению к Андроиду: https://4pda.ru/forum/index.php?showtopic=271792&st=620.

К тому же существуют беспроводные способы трансляции видео на смартфон.

Добрый вечер ,не подскажете почему когда подкл флешку через otg шнур смарт видит, запрос на открытие, запускаю фильм, в avi, начинается всё ок, через 1-2 минуты вылетает всё, шнур новый только приобрёл, в файл менеджере флешку тоже видно, и файлы. а после вылета повторно подключаю запрашивает отформатировать флешку, иначе дальше не продвинешься, что за причина, подскажите, флешка 8т гб.Transend.

Варианты:
1. В кабеле OTG отсутствует экран или к экрану не припаяны металлические части разъёмов кабеля.
2. Низкий заряд смартфона (менее 60%)
3. Баг прошивки смартфона. Нужно обновить прошивку.
4. Смартфон переходит в экономичный режим и прекращает подавать питание на флешку. Чтоб удостовериться в этом предположении подключите флешку к OTG-кабелю посредством активного USB-хаба и повторите эксперимент.

есть усилитель на 3Ватта. вот нужна схема распайка шнура . идея такая. микро юсб разъем, что в телефоне, с него взять питание и звуковой сигнал на усилитель. так как не удобно будет если делать два шнура, один на 3,5 и микро юсб.
подскажите как распаять микро юсб

Нельзя снять звуковой сигнал с USB. Этот порт предназначен исключительно для передачи цифровой информации и питания.

Способы включения OTG на Android

Современные устройства на платформе Android постоянно развиваются, и в настоящее время за счет технологии OTG к смартфону можно без проблем подключить внешние USB-девайсы, будь то модем, флешка и многое другое. При этом даже в случае неправильной работы соединения существует несколько решений. В рамках этой статьи мы расскажем о методах проверки поддержки OTG и про способы подсоединения внешних устройств.

Использование OTG на Android

Для того чтобы соединить со смартфоном какое-либо устройство через OTG, он в той или иной степени должен поддерживать данный тип подключения. Это важно учитывать в первую очередь, так как без ответной реакции Android-устройства дальнейшие действия будут невозможны.

Проверка поддержки

Выполнить проверку смартфона на предмет совместимости с OTG можно с помощью специального софта, временно подключив кабель к порту microUSB и проследив за реакцией. Основным ПО для этих целей выступает один-единственный вариант, способный диагностировать любой смартфон вне зависимости от версии ОС.

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

Чтобы USB OTG Checker отреагировало на подсоединение, соедините телефон с любым внешним устройством. В случае успеха появится соответствующее уведомление.

По необходимости в Плей Маркете можно найти немало альтернативных решений, имеющих практически такое же название. Об этом важно помнить, так как далеко не во всех ситуациях представленное приложение способно проверить совместимость с OTG.

Работа с устройствами

Наиболее простой этап заключается в подключении и последующем использовании внешних устройств через OTG, но при этом является уникальным практически для каждого гаджета. Это связано с необходимостью установки одного из специальных приложений, напрямую связанных с устройством. Например, приложение для внешней клавиатуры не подойдет для настройки принтера.

Шаг 1: Подключение

    Эта процедура, как сказано, может быть уникальной для каждого устройства. В целом необходимо выполнить всего лишь два действия, первым из которых выступает соединение внешнего девайса с USB-разъемом переходника «USB – microUSB».

Дальше нужно подсоединить microUSB-разъем к соответствующему порту на корпусе устройства.

В некоторых случаях, если вы используете OTG со вспомогательным питанием, нужно соединить дополнительный USB-выход с адаптером. На этом же процедура завершается.

Шаг 2: Выбор приложения

Как было сказано ранее, в зависимости от подключаемого девайса необходимо скачать и установить соответствующее приложение из Плей Маркета. Подобные программы также предоставляют вариативность, из-за чего выбору стоит уделить наибольшее внимание. Рассматривать каждый вариант мы не будем, вместо этого предоставив список наиболее рекомендованных к использованию вариантов.

    USB OTG Helper – утилита, являющаяся основным средством работы с файлами на внешних накопителях и актуальна даже тогда, когда на флешке используется файловая система NTFS.

StickMount – представляет собой одно из альтернативных решений USB OTG Helper, нацеленное точно так же на чтение файлов с флешки. Может оказаться особенно полезным при соединении мобильного аппарата с внешним жестким диском.

OTG View – приложение, нацеленное на распознавание и перехват изображения с внешних камер. Обычно оно используется при подключении эндоскопа.

PPP Widget 2 – одно из уникальных приложений, позволяющих подсоединить через OTG внешний 3G или 4G-модем. К преимуществам можно отнести удобное управление через виджет на главном экране и возможность значительного усиления сигнала сотой связи.

Указанные варианты являются лишь основными, в то время как для подключения, например, геймпада потребуется совершенно другое ПО, напрямую зависящее от модели и производителя устройства. Если будут проблемы с поиском приложений, можете обращаться к нам в комментариях.

Устранение проблем

Если на этапе проверки у вас получилось добиться той или иной реакции от устройства, соединенного посредством OTG, но полноценный сигнал отсутствует, вполне могут быть проблемы с питанием. Именно данная особенность зачастую заставляет пользователей думать об отсутствии поддержки данного типа соединения, когда на самом деле достаточно добавить внешнее питание.

Проще всего компенсировать нехватку энергии USB-хабом, оборудованным собственным адаптером питания. Его необходимо подключить к сети, соединить со смартфоном и только после этого добавить нужное устройство.

Еще одной связанной причиной некорректной работы может быть использование слишком требовательного гаджета, что в особенности относится к внешним накопителям. Попробуйте использовать дополнительное питание или менее требовательную карту памяти.

Иногда для распознавания девайсов, подключенных через OTG, недостаточно специальных приложений из-за отсутствия поддержки на программном уровне. Единственное, что можно сделать в таком случае, это обновить операционную систему или перепрошить аппарат.

Представленной инструкции должно быть достаточно для успешного подсоединения внешних устройств при помощи технологии OTG практически на любом смартфоне, выпущенном в среднем после 2012 года. Описанные действия будут не актуальны только при использовании кабеля с дополнительным питанием, упомянутого на этапе подключения.

Заключение

Когда телефон вовсе не поддерживает OTG, единственным выходом может стать только собственноручная модификация смартфона или внешнего устройства. Мы не будем описывать настоящую процедуру из-за возможного нанесения вреда мобильному девайсу. К тому же для этого потребуются соответствующие инструменты и навыки, как правило, отсутствующие у рядового пользователя.

Помимо этой статьи, на сайте еще 12021 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.