Lufa cdc acm virtual serial port windows 10

Lufa cdc acm virtual serial port windows 10

Краткое описание:
Работа с радиомодулем SoC MTK (NVRAM editor)

Описание:
Программа предназначена для работы с радиомодулем (modem) устройств основанных на MTK
позволяет полноценно настроить или восстановить работу Вашего устройства, в части касаемой работы с SIM-картой или WLAN
Позволяет прописать IMEI
Решает проблемы с блокировкой SIM или оператора (разлочка).

Инструкция по снятию параметров NVRAM в файл и восстановлению NVRAM по шаблону из файла с помощью MAUI META 10 (upd 23.11.18)
Инструкция по восстановлению IMEI с помощью Maui META v10.X.X.X
Если программа не видит устройство
Обсуждение IMEI — решаем проблемы, делимся опытом
Некие пояснения о nvram и nvdata
SN Write Tool — программа для восстановления / правки IMEI, серийного номера, MAC-адреса и т. д. SN_Write_tool_exe_v2.1504.00.rar ( 14,36 МБ )

Инструкция на Русском языке по восстановлению IMEI для версии v6 MauiMETA_IMEI-Restore.pdf ( 593,83 КБ )

В версии 9, файл BPLGUInfoCustomAppSrc. открывать после подключения аппарата.
Драйвер Drivers for writing IMEI CDC Serial.zip ( 15,28 КБ )

полный набор драйверов МТК MauiMETA (Пост Art.Songai #76423916)
свежий пакет драйверов Driver_Auto_Installer_exe_v5.1632.00.zip
нужный нам файл database можно взять по пути:
system\etc\mddb\BPLGUInfoCustomAppSrc.

Русский интерфейс: Нет

полный набор драйверов МТК SP_Flash_Tool_Driver_Auto_Installer_v1.1236.00.exe.zip ( 9,41 МБ )

Скачать: версия: 9.1724.0
MauiMETA_exe_v9.1724.20.00.rar ( 63,17 МБ )

ModemMETA 10.1920.0.00
MauiMETA 10.1816.0.01
MauiMETA_exe_v9.1724.0.rar
MauiMETA_v9.1635.23 (Я-Диск)
MauiMETA v9.1604.2
MauiMETA_exe_3G_v8.1512.0.zip ( 40,46 МБ )

Сообщение отредактировал iMiKED — 13.11.20, 19:40

    получить root
  1. включить режим разработчика, несколько раз тапаем нижний пункт «Номер сборки» в меню «О телефоне—Информация о версиях»
  2. включить отладку по USB,
  3. включить «Неизвестные источники» в меню «Безопасность»
  4. подключить телефон к компу
  5. установите драйвера Android ADB Interface или AdbDriverInstaller.exe (9 МБ) , Установка драйверов на Win8.1

Способ № 1
В MTKdroidTools, выполнить Backup IMEI/NVRAM

Способ № 2:
скачанный файл, nvram_backup_restore.zip ( 456,57 КБ )

  1. Разархивируйте архив в папку на комп в корень диска
  2. запустите от имени администратора nv_backup.bat (выскочит черное окошко командной строки с исполняемыми командами) и получите файл nvram.img в папке на компе и на sd карте.

Для восстановления запускать файл nv_restore.bat — восстанавливаем раздел nvram.

backup and restore раздела nvram в TWRP, НЕ Всегда работает корректно

Сообщение отредактировал Digins — 07.09.15, 13:23

Что такое таинственное устройство CDC Serial и зачем оно мне нужно?

Я собрал свой компьютер из частей, которые я приобрел в Интернете, я провел чистую установку Windows 7 Ultimate 64-разрядной версии с пакетом обновления 1 (полная версия, без взлома OEM) и несколько раз запускал Windows Update, чтобы получить самую последнюю версию обновления от Microsoft. Я был рад видеть, что все работает как ожидалось, никаких проблем, ни в программном, ни в аппаратном обеспечении. Затем я подключил свой новый телефон Samsung Galaxy S4 Plus (GT-I9506) к свободному USB-порту компьютера. Windows обнаружила следующие 3 разных устройства.

  • USB композитное устройство
  • Galaxy S4 (sg)
  • CDC Serial

Windows автоматически установила и настроила первые два устройства (см. Скриншот выше). За исключением устройства «CDC Serial». Это не устанавливало тот.

  1. Что такое устройство «CDC Serial»?
  2. Зачем мне это нужно?
  3. Как мне это установить?

Первым делом я проверил руководство пользователя (полное руководство, а не руководство по началу работы). Там нет ни одной ссылки на «CDC Serial». Я не эксперт, но я понимаю кое-что из этого. «Композитное устройство USB» установлено, чтобы Windows могла общаться с телефоном через USB-кабель. «Galaxy S4 (sg)» — это имя, которое я дал своему телефону во время установки, и это устройство, которое представляет Windows как медиаплеер, использует протокол MTP, и это то, что отображается в Windows Explorer. ,

Как я должен знать, что такое «CDC Serial», если он не описан в руководстве пользователя? Я никогда не видел такого раньше ни на одном устройстве Android при подключении к ПК. Я выполнил поиск по «cdc serial» в Google, и все, что я мог найти, это то, что люди делали некоторые хаки для своих телефонов, например, рутировали, меняли ПЗУ и вообще просто взламывали его.

Так что, если я не хочу этого делать? Все еще важно настроить устройство «Последовательный CDC»? Как это влияет на функциональность телефона, например, при синхронизации данных между телефоном и ПК, если я решу, что не хочу следовать этим советам и советам по взлому, чтобы попытаться установить это устройство?

Читайте также:  Лучший проигрыватель iptv для windows 10

Я связался с технической поддержкой Samsung по этому поводу, и они понятия не имели, о чем я говорю. Они сказали, что изучат это, но это все. Никакой помощи.

В руководстве пользователя сказано, что я могу изменить тип USB-соединения с MTP на PTP. По сути, это делает телефон представителем Windows в качестве фотокамеры. Я попытался, чтобы не было никаких проблем с драйверами, не устанавливаемыми. Windows обнаружила только устройство «Galaxy S4 (sg)», и оно было автоматически настроено и установлено.

В этом режиме между телефоном и ПК можно передавать только файлы изображений. Так что это очень ограничивает, на мой взгляд. Но устройство «CDC Serial» не было обнаружено. Как так.

Lufa cdc acm virtual serial port windows 10

Краткое описание:
Работа с радиомодулем SoC MTK (NVRAM editor)

Описание:
Программа предназначена для работы с радиомодулем (modem) устройств основанных на MTK
позволяет полноценно настроить или восстановить работу Вашего устройства, в части касаемой работы с SIM-картой или WLAN
Позволяет прописать IMEI
Решает проблемы с блокировкой SIM или оператора (разлочка).

Инструкция по снятию параметров NVRAM в файл и восстановлению NVRAM по шаблону из файла с помощью MAUI META 10 (upd 23.11.18)
Инструкция по восстановлению IMEI с помощью Maui META v10.X.X.X
Если программа не видит устройство
Обсуждение IMEI — решаем проблемы, делимся опытом
Некие пояснения о nvram и nvdata
SN Write Tool — программа для восстановления / правки IMEI, серийного номера, MAC-адреса и т. д. SN_Write_tool_exe_v2.1504.00.rar ( 14,36 МБ )

Инструкция на Русском языке по восстановлению IMEI для версии v6 MauiMETA_IMEI-Restore.pdf ( 593,83 КБ )

В версии 9, файл BPLGUInfoCustomAppSrc. открывать после подключения аппарата.
Драйвер Drivers for writing IMEI CDC Serial.zip ( 15,28 КБ )

полный набор драйверов МТК MauiMETA (Пост Art.Songai #76423916)
свежий пакет драйверов Driver_Auto_Installer_exe_v5.1632.00.zip
нужный нам файл database можно взять по пути:
system\etc\mddb\BPLGUInfoCustomAppSrc.

Русский интерфейс: Нет

полный набор драйверов МТК SP_Flash_Tool_Driver_Auto_Installer_v1.1236.00.exe.zip ( 9,41 МБ )

Скачать: версия: 9.1724.0
MauiMETA_exe_v9.1724.20.00.rar ( 63,17 МБ )

ModemMETA 10.1920.0.00
MauiMETA 10.1816.0.01
MauiMETA_exe_v9.1724.0.rar
MauiMETA_v9.1635.23 (Я-Диск)
MauiMETA v9.1604.2
MauiMETA_exe_3G_v8.1512.0.zip ( 40,46 МБ )

Сообщение отредактировал iMiKED — 13.11.20, 19:40

    получить root
  1. включить режим разработчика, несколько раз тапаем нижний пункт «Номер сборки» в меню «О телефоне—Информация о версиях»
  2. включить отладку по USB,
  3. включить «Неизвестные источники» в меню «Безопасность»
  4. подключить телефон к компу
  5. установите драйвера Android ADB Interface или AdbDriverInstaller.exe (9 МБ) , Установка драйверов на Win8.1

Способ № 1
В MTKdroidTools, выполнить Backup IMEI/NVRAM

Способ № 2:
скачанный файл, nvram_backup_restore.zip ( 456,57 КБ )

  1. Разархивируйте архив в папку на комп в корень диска
  2. запустите от имени администратора nv_backup.bat (выскочит черное окошко командной строки с исполняемыми командами) и получите файл nvram.img в папке на компе и на sd карте.

Для восстановления запускать файл nv_restore.bat — восстанавливаем раздел nvram.

backup and restore раздела nvram в TWRP, НЕ Всегда работает корректно

Сообщение отредактировал Digins — 07.09.15, 13:23

LUFA USB

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

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

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

С точки зрения самого разъема, должны присутствовать 4 провода: +5В, GND, D+, D-. Таким образом от USB(+5В и GND) можно питать различные устройства рассчитанные на 5В, но нужно учесть что есть ограничение по потребляемому току. По D+ D- передаются данные. На длину соединительного кабеля влияет скорость обмена и наличие экрана.

Читайте также:  Недоступно загрузочное устройство windows 10

Важно знать, что кроме того что это разъем, это еще и соответствующее железо. Существует несколько версий USB и если ваша материнская плата поддерживает USB 2.0, а подключаемое устройство 1.1, то работать они будут на 1.1.

Существует градация по скорости:
Low-speed: 10—1500 Кбит/c
Full-speed: 0,5—12 Мбит/с
High-speed: 25—480 Мбит/с

Разница между 2.0 и USB1.1 в том, что последние не поддерживают High-speed, тем не менее эту версию активно юзают, например в той же библиотеке V-USB, которая позволяет AVR микроконтроллерам не имеющим железа, использовать программную версию USB(ногодрыг).

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

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

Как же система понимает какой драйвер нужно подсунуть? Очень просто, каждое устройство имеет уникальный код производителя VID и код устройства PID. При подключении девайсина передает эти данные хосту, а хост уже сам устанавливает нужные дрова. Как узнать какие VID и PID мне нужно задать? Проще всего — выдергивать из каких то примеров. Как узнать их значения в системе? Посмотреть в диспетчере устройств

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

С точки зрения микроконтроллера есть несколько путей:
если ваш микроконтроллер не поддерживает USB: ваш путь V-USB это библиотека для AVR микроконтроллеров.
Если поддерживает USB:
— брать примеры с сайта атмела из апнотов.
— брать примеры CAVR.
— брать примеры из библиотеки LUFA

Все три варианта с точки зрения документации говенные. С атмеловскими даже пробовать не стал. Примеры CAVR, у меня заработали — выбираешь генератором кода пример, создаешь, правишь под свои нужды. В статье про CDC процесс описан, поэтому нет смысла повторяться. Намного больший интерес представляет LUFA, это либа с открытым кодом, бесплатная, выпущена в качестве дополнения к Atmel Studio. Подозреваю, что примеры CAVR сделаны на основе именно луфы, больно уж список примеров похож. Весь прикол этой либы что открываешь нужный проект — правишь под себя и юзаешь.

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

В результате в меню New появится New example project запускаем его и увидим кучу примеров по USB

Пример 1. CDC
Об этой теме мы уже разговаривали, на всякий случай упомяну, выбираем Virtual serial CDC demo, создаем проект.

Вначале можно охренеть от проекта, но на самом деле юзать — проще некуда, после создания проекта, в настройках выбираем свой мк, у меня at90usb162, далее открываем VirtualSerial.c и все фразы касаемые LED и Joystik вычищаем ибо эта хрень относится к плате AT90USBKey, ибо все примеры заточены под эту плату. Все остальное не трогаем. В основном цикле пишем отправку строки hello, через fputs, т.е. ничем не отличается от работы с обычным юартом. После загрузки в мк, устанавливаем драйвер будет лежать из папки проекта

Пример 2. HID mouse
Следующий пример мышь, стандартный драйвер. Опять же что касается джойстика и светодиодов можно вычищать. Внутри mouse.c нас ожидает такая функция

Я думаю идея понятна.

Пример 3. HID keyboard
Следующий пример клавиатура, стандартный драйвер. Кстати одно устройство может совмещать в себе и мышь и клавиатуру.

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

Читайте также:  Поиск wifi устройств windows 10

Нам нужно постоянно посылать одну клавишу A по нажатию PB0.

bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID, const uint8_t ReportType, void* ReportData, uint16_t* const ReportSize) < USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData; uint8_t UsedKeyCodes = 0; if (PINB.0==0) < KeyboardReport->KeyCode[UsedKeyCodes++] = HID_KEYBOARD_SC_A; > if (UsedKeyCodes) KeyboardReport->Modifier = HID_KEYBOARD_MODIFIER_LEFTSHIFT; *ReportSize = sizeof(USB_KeyboardReport_Data_t); return false; >

Т.е. сначала уходит нажатие, потом отжатие. Также есть пример джойстика, он аналогичен клавиатуре.

Ну и пожалуй самый вкусный пример Пример 4. Generic HID. Теоретически он позволяет посылать и принимать произвольные данные. Из всего нам важны две функции. В первой мы производим прием данных от хоста, во второй отправку.

//здесь производится обработка принимаемых от хоста данных void ProcessGenericHIDReport(uint8_t* DataArray) < if (DataArray[0] == 1) < PORTD.0 = 1; >> //здесь мы отправляем данные хосту void CreateGenericHIDReport(uint8_t* DataArray)

Таким образом вся работа заключается в том, чтобы внутри одной из функций прочитать массив Data, а в другой записать. Такой массив в который производится прием и передача называется конечной точкой (Endpoint). В даташите на at90usb162 сказано, что Programmable maximum packet size from 8 to 64 bytes — максимальный размер пакета 64 байта, пакет передается 1 раз за мс, т.е. с одной конечной точки можно выжать 64кбайта в секунду. Но здесь есть тонкости которые, пока не понятны, из даташита:
– 1 endpoint of 64 bytes max,
(default control endpoint)
– 2 endpoints of 64 bytes max, (one bank)
– 2 endpoints of 64 bytes max, (one or two banks)

Допустим, endpoint 0 каких то внутренних нужд, endpoint 1 для приема, endpoint 2 для передачи это минимум для того чтобы организовать обмен в обе стороны, так во что насчет еще двух конечных точек, подозреваю что могу их использовать ибо:
The USB device controller supports full speed data transfers. In addition to the default control
endpoint, it provides four other endpoints, which can be configured in control, bulk, interrupt or isochronous modes:
• Endpoint 0: programmable size FIFO up to 64 bytes, default control endpoint
• Endpoints 1 and 2: programmable size FIFO up to 64 bytes.
• Endpoints 3 and 4: programmable size FIFO up to 64 bytes with ping-pong mode.
На вопрос как, история тихо умалчивает 🙂

В тексте выше видно что каждая конечная точка может быть настроена на несколько режимов:
bulk — для передачи больших объемов данных, есть проверка на ошибки, время доставки не ограничено.
control transfer — для настройки устройства и получения информации в процессе работы, по умолчанию endpoint0
interrupt transfer — для передачи небольших данных, устройство опрашивается с некой периодичностью, время доставки ограничено
isochronous transfer — для передачи больших объемов, возможна потеря данных

По умолчанию в Generic Hid установлена Interrupt endpoint, когда я экпериментировал с стм32 мне показалось что с bulk работать на много проще, я понимаю что настройки производятся в Descriptors.c, но как это сделать пока не догнал. Также довольно подозрительно то, что в CAVR в визарде нельзя сменить Endpoint с interrupt на что то другое, что как бе намекает откуда эти примеры. В общем эту часть оставим до лучших времен.

Пожалуй оставшаяся часть это ПК. Лучше чем libusbdotnet я ничего не нашел, скачиваем ее. Перед использованием устройства в своих программах нужно установить фильтр install-filter-win, это прога находится в папке libusbdotnet, видимо эта программка позволяет использовать ресурсы USB. Интересная фишка со стороны мк, если в репорте отсылать одни и те же данные, то они отошлются 1 раз, дальше данные уходить не будут, поэтому нужно как то чередовать данные, хотя бы так

Со стороны ПК запускаем пример из libusbdotnet из папки C:\Program Files\LibUsbDotNet\Src\Examples\Read.Only, чуть правим его под свой VID и PID.

Исходник в принципе понятен — читать данные, если за 5 секунд ничего не пришло, выдать ошибку.

В результате можно увидеть полученные от мк данные:

Увы сколько бы я не бился запустить запись данных на мк мне не удалось. В общем получилось не густо не жидко, желающие могут сделать на основе примеров луфы собственную мышь, клавиатуру, джойстик, usb-uart или сделать произвольное устройство, например термометр и выводить информацию на ПК, думаю это огромный плюс, надеюсь когда нибудь дополню статью записью и чтением GENERIC HID…

Оцените статью