Nfp что это в магнитоле андроид





| К странице. |
| Страница 22 из 23 | « Первая | 12 | 20 | 21 | 22 | 23 | > |
2.0 Автомат
Сообщений: 1,404
291
314
В клубе с 05.07.2017
21.12.2022 12:22
А у меня сьёмный вариант головы: на магнитном держателе обыкновенный 8,9″ планшет) Одновременно и в разных пропорциях разделения экрана на две части пробки показывает и кино с ютубом крутит, и еще с него позвонить можно и всё что душе угодно. Мне не мешает. Снимается, кладется в карман и всё по стоку)
Моя эволюция: ТАЗ 21099i 1.5 МТ 2003 / Hyundai Getz 1.3 МТ 2004 GL / Ford Focus 2 1.6 АТ 2009 сток / Kia Rio 1.6 МТ 2012 Prestige / Chevrolet Cruze Station Wagon 1.8 AT 2013 LTZ / Hyundai i40 2.0 AT 2017 LE.

Ответить 1
| Меню пользователя Unlimited |
| Посмотреть профиль |
| Найти все темы, созданные Unlimited |
| Найти все сообщения от Unlimited |
Абитуриент
Hyundai i40 2015
Сообщений: 23

1
В клубе с 28.05.2017
23.12.2022 18:09
Сын решил проблему с USB входом. Хотел подробно описать, но правила сайта не позволили ему это сделать. :(((
Ответить
| Меню пользователя Михаил_i40 |
| Посмотреть профиль |
| Найти все темы, созданные Михаил_i40 |
| Найти все сообщения от Михаил_i40 |
Hyundai i40 2016
Сообщений: 1,736
212
102
В клубе с 16.10.2016
24.12.2022 16:41
Сообщение от XVVX
.
М500S.
После установки проверил музыку: звук лучше и сочнее штатной головы. Про радио особо сказать нечего, ставил в гараже, крыша металл. Радио есть, а качество пока непонятно.
Основная трудность, то что сейчас постоянно пешком, путно протестировать не могу
А в основном установка простая. Основной кабель (iso который) в комплекте. Рамка сидит плотно, только саморезов (1,5х6) в комплекте нет.
Сообщение от Unlimited
всё что душе угодно
Так и есть, обычный планшет

Ответить 1
| Меню пользователя Влад Имир |
| Посмотреть профиль |
| Найти все темы, созданные Влад Имир |
| Найти все сообщения от Влад Имир |
| Просмотр фото |
Нет звука на магнитоле андроид.

Всем здравствуйте!
Прошу помощи, может у кого-то такая ситуация была? Имеется магнитола на андроиде, работала нормально, и тут пропал звук из динамиков. На сабвуфер сигнал приходит, т.е басы есть, а динамики в дверях не издают не единого звука. Сама магнитола работает как обычно, кроме отсутствия звука. Что это может быть, микросхема полетела или ещё что? Устанавливал родную, с ней всё хорошо, звук есть.
Уточню, магнитола установлена на мазда 3 bl 2010г. Работает без внешнего усилителя.Да и ещё, на бортовом компьютере отображается надпись (AUDIO OFF), на нажатие кнопок на руле не реагирует. Подскажите, за что отвечает эта функция?
Всем спасибо!

Обновление записи.
Вообщем, проверил ещё раз все настройки, так ничего и не помогло. Была вскрыта магнитола, паленого на вид ничего не было.



Прозвонку всего и вся пока не делал. Единственное что замерил, сопротивление на выходах на динамики с микросхемы, около 155Ом. Микросхема установлена YD7388. Затем всё собрал и подключил к внешнему усилителю и вот он, звук появился. Работает в 100500 раз лучше, чем со встроенным. Пока оставил штатное ГУ. Нужно будет заменить микросхему и возможно, установка внешнего усилка. Вообщем буду думать. А пока так.
Ещё раз, благодарю Вас за помощь и советы, в данном вопросе.
Всем удачи и ровных дорог!
Android Планшет вместо Авто магнитолы

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

Проблема отсутствия современной магнитолы меня волновала уже давно и в прошлой машине мне пришлось купить 2din китайский чудо ящик частично под управление WinCE. Не буду в красках описывать сколько часов или наверно недель я потратил на то чтобы до настроить всё до белее менее рабочего состояния и в итоге из полезных функций: блютус работал жутко криво изначально, так что пользоваться можно было только стриммингом музыки (и то без управления), в DVD застрял диск, WinCe с GPS iGO стал грузиться один раз из 10. Самой надёжной оказалась камера заднего вида. И это за 300 с копейками долларов 6 лет назад. И я уже давно начал подумывать об андроиде, но цены на единственный «приличный» Android 2.3 Астероид заоблачные 700+$ а достойных вариантов от монстров мангитольного рынка тоже нет. Тупик в общем-то какой-то.
И тут я купил относительно свежую машину 2010 г выпуска от японского лидера в неплохой комплектации и получил убогий CD/MP3 плеер раскоряченный так что без специальных некрасивых заглушек ничего другого 1-2din туда просто не воткнуть. На мою удачу в часть её предпродажной подготовки вошла кривая сборка передней панели (непонятно зачем) так что диск воткнуть было невозможно. К сожалению, купленному коню в зубы я посмотрел слишком поздно И это явилось последней каплей. Я заказал на ибее бу 7″ Samsung Galaxy tab. Долго помучавшись с ним из-за того что не работал вай-фай, я в пылу злости заказал Nexus 7 1 gen 16gb. В тот момент я даже себе представить не мог что у него нет microSD слота и без OTG мне придётся довольствоваться только встроенными 16 гигами. Такой подставы от гугла с Асусом я даже не мог ожидать. Но в общем вторая таблетка оказалась гораздо бодрее первой и я ничуть не жалею. В итоге оказалось что эта модель является культовой у менятелей магнитол на таблетки по всему миру. Думаю в первую очередь из-за распространённости качества и цены. Ещё удобные контакты на корпусе для питания и звука POGO PINS Так вот я начал читать как же всё сделать под машину и к огромному своему удивлению нашёл кучу информации о том как вкрячить таблетку, а как жить с этим дальше почти ноль. И так я начал собирать по крупицам наводки и наступать на грабли. В итоге получилось очень даже удобная система которую вы можете видеть на видео.
Начнём всё же с подключения.
Я принципиально не хотел ничего резать и даже вскрывать панель, поэтому я повесил таблетку на скрытой медной проволоке за силиконовый чехол прямо ПОВЕРХ магнитолы. И подключил кабели. Питание рекомендую сразу человеческое те на основе KIS3R33S модуля, чтобы быть мощным. С самсунгом одной из проблем была хитрость включения режима быстрой зарядки. Те когда ток зарядки не обычные 300мА как из USB портов компьютера, а хотябы 500 или лучше 1 ампер. Практика показала что если включить на полную яркость (солнечный день), GPS и прочее то таблетка потребляет больше чем заряжается от 300мА. Это как вы понимаете тупик. Вот я намаялся с резисторами на дата проводах USB и прочим шаманством долго, и вроде успешно, пока с переходом на Nexus эти проблемы не отпали сами собой. Нужен сразу хороший (не микро в прикуриватель) DC-DC адаптер 14->5в желательно на 2-3 ампера чтобы питать не только таблетку, но и телефон и другие потенциальные гаджеты. У меня не было блютуса в машине поэтому отдельный проводок пришлось сделать с выхода наушников на AUX вход штатной магнитолы. Вот в общем-то и всё с подключением.
На этом как оказалось многие и останавливаются. Но ведь пользоваться обычным андроидом в машине тем более за рулём очень не удобно! Тут я определил круг задач. Для меня он свёлся к проигрыванию музыки и GPS навигации. Камера заднего вида у меня уже была, но как выяснилось в нексус и это можно подключить читайте www.pccar.ru/showthread.php?t=18305. Всего 2 приложения, но должно быть удобство пользования ими и переключения между ними.
Я долго искал удобный медиа проигрыватель. Между использованием планшета в руках и за рулём очень большая разница. Попробуйте за рулём несколько проигрывателей и скинов и выберите удобный вам. В обычной жизни я предпочитаю Astro, но тут самым удобным как не странно казался Google Music. Причём тут тоже есть нюансы. Последняя 5я версия очень белая, неудобная в навигации особенно в плей листах. Я пользуюсь только плей листами в m3u файлах созданными старым добрым WinAmp и бережно закинутые на таблетку. Там тоже есть нюанс и почему-то если плейлист не заполнен всеми тагами те не прокручен до конца в WinAmp (пока в окошке плей листа времена всех песен не определились) и сохранён на диск только после этого, то Music его не видит. Ешё у Music проблема с файлами с русскими именами (менна имена файлов а не Таги, с тагами проблем нет), так что всё пришлось переименовывать в латиницы с помощью Multi File Translator или TagScanner и других тулов. Хотя таги русские он отображает отлично и крупно. 3я версия уж совсем убогая и фоны не чёрные и плейлисты только списком, а 4.1.512 версия чёрная оказалась в самый раз для машины www.filedropper.com/tablet4car_1. Так что надо откатится с последней на неё 4pda.ru/forum/index.php?showtopic=237901. Если перед установкой старой версии новый Music не удаётся удалить штатными средствами надо воспользоваться Titanium Backup (uninstall).
Google Music:


Программу навигации каждый выбирает на свой вкус. Мне Нравится Garmin Navigon, тем более что я использую Garmin HUD.
Допустим вы выбрали свою программу и поставили её. Дальше встают следующие проблемы:
— как же переключаться между экранами музыки и навигации в одно касание?
— как использовать полную площадь экрана и при этом не потерять кнопки управления?
— Как управлять музыкой (Пауза, Сл песня и тд..) не выходя из навигационного приложения?
Это решить могут только две программы Button Savior и full!screen. play.google.com/store/apps/details?id=de.tsorn.FullScreen&hl=en. Я долго боролся и даже подпиливал (менял картинки иконок чтобы были икогка Навигации и Музыки) Button Savior и в общем добился от него определённой любви и удобства
(его иконки/кнопки в виде домика, квадратов, карты и нот модно видеть в правом краю экрана) www.filedropper.com/tablet4car_1, но с full!screen всё гораздо удобнее и проще. В итоге я до сих пор использую их обе. full!screen даёт кроме полноэкранного режима возможность иметь в углах 2 чудо кнопки, настройки ах 3 действий (нажатие, Долгое нажатие, swipe) каждое можно менять. В отличии от Button Savior где таких кнопок всего две и у них только можно менять действия нажатия. Причём в full!screen (его иконки/кнопки можно видеть в правом и левом углах экрана) назначить можно не только Home, Menu, Back, но и управление проигрыванием (Пауза, Сл песня и тд..) но и запуск/вызов предыдущего приложения получается такой своеобразный Alt+Tab, чего Button Savior нет. Так как у нас только два основных приложения то это как раз то что надо. Можно было бы сделать подобное с применением Scenes в Tasker, но получилось бы не так красиво. 
Дальше я боролся за батарейку. Оказалось если не полностью усыпить андроид то даже без вай-фая и GPS за ночь или сутки он может сожрать несколько десятков процентов заряда. Что не приемлемо. Для уверенности полного засыпания я поставил Deep Sleep Battery Saver который прибивал в спящем состоянии все активности кроме редкого исключения.

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

Теперь самое вкусное это Tasker!
Без этого Мега приложения вообще ничего сделать бы не удалось. Это своеобразный автоматизатор для Android с возможность ловить внешние события и выполнять визуально программируемые действия. Он супер гибкий, супер удобный и вездесущий. К нему уже написано куча плагинов и толи ещё будет. Я рекомендую поставить сразу его и Secure Settings Pro и в нём Secure Settings Helper.

Первую простую задачу которую мы решим с помощью Tasker это будет правильное засыпание при выключении машины (зарядки) и включение при появлении питания. При засыпании надо кроме очевидного отключить GPS, Блютус, погасить экран и прочее надо ещё остановить проигрывание музыки и запомнить что проигрывалось и проигрывалось ли вообще, чтобы при последующем включении продолжить с того же места. Также при пропадании питания на несколько секунд, как например на время включения стартёра на многих машинах питание в прикуривателе исчезает. Если специально не заморачиваться, то таблетка сначала включится на секунду при повороте ключа, потом выключится при работе стартёра, а потом опять включится и полностью потеряется. В предоставленном скрипте решена эта проблема и проблема обратного допустим вы вставили ключ на несколько секунд только чтобы закрыть окна в машине и таблетка не должна начинать петь и плясать.
Для удобства я поставил хорошие TTS iVona русский и английский. При включении моя система приветствует меня приятным голосом, желает приятного пути, говорит который час и сообщает что продолжает проигрывать такую то и такую то песню. Это не только приятно, но и удобно. Также при переключении на новую песню система произносит названия Исполнителя и Композиции. При этом выбирает правильный язык (английский/русский) в соответствии с кодировкой символов в MP3 Tag. Причём если предыдущая Композиция была того же исполнителя то она произносит только название Композиции. И все эти чудеса с помощью Tasker и Media Utilities plugin. Ок кстате работает не только с Google Music, но и многими другими популярными проигрывателями.
В некоторых случаях я пользовался TaskKill плагином, чтобы прибивать приложения.
Дальше я озадачился изменением громкости в соответствии со скоростью. Эта функция есть во многих машинах, но не всегда доступна, поэтому я написал task «Speed Volume Control Plus» который делает это в андроиде. Есть пять уровней громкости и 5 диапазонов скорости которые надо задать в соответствии с вашей ситуацией в Init Vars. Мне он в итоге не пригодился, но может пригодиться вам.
Всё это и многое другое находится в скрипте github.com/chouckz/AndroidTasker4Car. Вы можете подпилить его под себя или использовать как есть.


Очень важно снять галочку Enforce Task Order в свойствах Power и желательно других профайлов. Иначе таски начнут ждать друг друга и слаженной и адекватной работы не получится.
Если у вас после перезагрузки появляется надоедливое сообщение/предупреждение о слишком высокой громкости «raise volume above safe level. » его можно прибить следующим образом: forum.xda-developers.com/xposed/modules/mod-unsafe-volume-disable-safe-media-t2338474
Давайте подробнее посмотрим на все Profiles (триггеры) И Tasks:
Profiles:
Power AC — запускает соответствующие таски (DC ON, DC OFF) при подключении и выключении питания. Мы подразумеваем что Таблетка работает только когда питание есть, а без него засыпает.
Media Utilities State New Track — Вызывает таск «Fill Track» когда начинает проигрываться новая композиция
Media Utilities State Is Playing — Вызывает таск «Now Playing» когда композиция проигрываться и «Now Not Playing» когда проигрывание остановленно
Device Boot — Вызывает таск «Boot Startup» когда планшет загружается. Почти пока не используется. Может пригодится зимой когда батареи не будет хватать чтобы пережить отсутствие питания. Многие сторожилы с www.pccar.ru/showthread.php?t=18305 советуют сразу отключить и удалить аккамулятор. Опыт российской эксплуатации Nexus очень положительныый по многим отзывам. Жизнь покажет. У меня Летом проблем пока нет. Зимой посмотрим. Если надо будет удалим аккамулятор, благо все процедуры детально описаны.
Device Shutdown — Вызывает таск «Shutdown» когда таблетка выключается. Почти пока не используется. Может пригодится зимой когда батареи не будет хватать чтобы пережить отсутствие питания.
Music — Вызывает таск «Set Active App To Music» когда Music на экране и является активным приложением.
NAVIGON- Вызывает таск «Set Active App To Navigation» когда NAVIGON на экране и является активным приложением.
Tasks:
DC ON — Устанавливает переменную %DCPOWER в 1, вызывает/будит автоматический регулировщик яркости Lux Plug-in и
запускает таск «On».
DC OFF — Устанавливает переменную %DCPOWER в 0, и запускает таск «Off».
On — возобновляет проигрывание если оно было прервано кратковременным исчезновением питания. Включает GPS, WiFi, Bluetooth. Устанавливает громкость. Приветствует голосам и говорит Время. Запускает Программу навигации и Музыки (на всякий случай если они были прибиты во сне). Если при предыдущем выключении проигрывалась музыка то произносится название Композиции и исполнителя и возобновляется проигрывание. Снова вызывает/будит автоматический регулировщик яркости Lux Plug-in.
Off — Останавливает проигрывание музыки. Выключает GPS, WiFi, Bluetooth. Прибивает программу навигации. Засыпает.
Resume Music — Произносится название Композиции и исполнителя правильным языком TTS и возобновляется проигрывание плавно увеличивая громкость до нужного уровня.
Fill Track — Получает от Media Utilities название исполнителя и композиции и запоминает их предварительно определив язык текста чтобы использовать правильный TTS при чтении. Также отдельно запоминает название предыдущего исполнителя чтобы не повторяться при произнесении. Произносит Название исполнителя(если не совпадает с предыдущей композицией) и композиции.
Say Time — Заполняет правильно системное время
Now Playing — Устанавливает переменную %MPLAYING в 1. Значит Музыка играет.
Now Not Playing — Устанавливает переменную %MPLAYING в 0. Значит Музыка не играет.
Boot Startup — пока пустует
Speed Volume Control Plus — Крутится в вечном цикле и занимается изменением громкости в соответствии со скоростью. Эта функция есть во многих машинах, но не всегда доступна, поэтому я написал task который делает это в андроиде. Есть пять уровней громкости и 5 диапазонов скорости которые надо задать в соответствии с вашей ситуацией в Init Vars.
Init Vars — начальная инициализация некоторых констант и переменных
Shutdown — Выполняет такс Off выключая всё
На этом у меня остановиться не получилось так как мне покоя не давали 5 кнопок на руле (-, +, , Mode) которые управляют штатной магнитолой и было бы супер удобно если бы андроид их понимал. Тун началась вторая фаза проекта.
Всё зависит от машины и типа сигналов с кнопок.
Либо это аналоговые (разные уровни напряжения) либо CAN bus. Для того и другого есть готовые решения.
theksmith.com/technology/hack-vehicle-bus-cheap-easy-part-1/
и
JoyCon
Оба пока проводные, но блютус не за горами.
У меня оказались аналоговые кнопки.
Я сделал себе аналог JoyCon Arduino mini Pro + Bluefruit EZ-Key Получилось без проводов к табетке. Bluefruit эмулирует HID клавиатуру и посылает стандартные команды акдроиду. Управление музыкой просто вот остальное пришлось делать через эмуляцию надатия Search + Буква и потом Quicklinks Shortcuts в Task и к Tasker. Но всё работает как видно на видео. Есть и клик и долгий клик. Во второй части опишу подробно.
Управление питанием близкого взаимодействия (NFP) для современных резервных платформ
Устройство ближнего взаимодействия (NFP) — это радиопередатчик или приемник малой дальности, который позволяет пк с Windows связаться с другими компьютерами, оснащенными NFP.
Устройство NFP предоставляется операционной системе Windows через интерфейс GUID_DEVINTERFACE_NFP Plug and Play (PnP). Сторонний драйвер, предоставляемый поставщиком устройств NFP, отвечает за реализацию интерфейса GUI_DEVINTERFACE_NFP и управление питанием физического устройства NFP. Устройство NFP обычно подключается к контактам интерфейса I2C системы на микросхеме (SoC) или основного кремния.
Как правило, устройство NFP может переходить в режим с низким энергопотреблением (режим ожидания или режим отключения питания), если ни у каких программных клиентов нет публикаций или подписок близкого взаимодействия, либо все публикации и подписки отключены. С точки зрения разработки драйвера это условие возникает, когда на устройстве отсутствуют необработанные дескрипторы. Устройство NFP должно быть переведено в режим ожидания или режим отключения питания, если не открыты и не включены дескрипторы для устройства.
Когда платформа переходит в режим современного режима ожидания и дисплей отключен, устройство NFP должно перейти в режим ожидания или режим выключения питания. Если энергопотребление устройства NFP в режиме ожидания в среднем превышает один милливатт, устройство должно перейти в режим отключения питания 0 Вт.
Драйвер устройства NFP не получает непосредственного уведомления, когда платформа входит в современный режим ожидания и выходит из нее. Вместо этого Windows оповещает драйвер косвенно, отключая дескриптора для драйвера при входе в современный режим ожидания и включив эти же дескрипторы при выходе из современного режима ожидания. После того как платформа перейдет в современный режим ожидания, Windows отправляет уведомление об отключении каждому открытому дескриптору, который еще не отключен. Когда платформа выходит из режима современного режима ожидания, Windows отправляет уведомление о включении на каждый дескриптор, который ранее был отключен. Открытый дескриптор, который уже был отключен до ввода современного режима ожидания, остается отключенным после выхода из режима современного режима ожидания.
Режимы управления питанием устройств
Начиная с Windows 8, устройство NFP для современной резервной платформы, как ожидается, будет иметь три режима питания — активный, бездействующий и резервный, а также режим отключения питания (в котором все входные данные питания для устройства NFP были отключены аппаратным механизмом, внешним по сравнению с устройством). Обратитесь к поставщику оборудования для устройства NFP для получения сведений о режимах управления питанием, поддерживаемых устройством.
В следующей таблице описаны режимы питания устройства NFP.
Устройство NFP активно взаимодействует с другим устройством NFP на соседнем компьютере.
Устройство NFP ждет еще один компьютер с NFP, чтобы прийти поблизости. Драйвер для устройства NFP имеет открытые публикации и подписки.
На устройстве NFP применяется питание, но нет невыполненных публикаций или подписок (без открытых дескрипторов).
Команда драйвера или закрепление GPIO из soC или core silicon.
На устройстве NFP не применяется питание, так как платформа не включена или внешний объект отключил питание.
Внешняя сущность удаляет питание или применяет питание через встроенное ПО ACPI в ответ на D3 IRP.
- В предыдущей таблице термин «резервный » относится к режиму питания устройства, который отличается от современного режима ожидания, который является состоянием питания на уровне всей платформы.
- В предыдущей таблице термин D3 IRP относится к запросу IRP_MN_SET_POWER типа DevicePowerState.
Указанное энергопотребление устройства NFP в режиме ожидания зависит от номера части и производителя. Разработчики систем должны работать с поставщиком устройств, чтобы понять, сколько энергопотребления в режиме ожидания зависит от конкретного устройства. Если энергопотребление в режиме ожидания превышает один милливатт, устройство NFP должно быть подключено к переключаемой направляющей питания, чтобы устройство можно было перевести в режим отключения питания во время режима современного режима ожидания.
Механизм управления питанием программного обеспечения
Windows полагается на поставщика устройств NFP для предоставления стороннего драйвера, который управляет устройством NFP. Windows ожидает, что этот драйвер будет отслеживать текущее количество открытых дескрипторов для драйвера устройства NFP и состояние этих дескрипторов, чтобы определить, когда следует переводить устройство NFP в режим с низким энергопотреблением.
Мы рекомендуем разработчикам драйверов NFP использовать платформу User-Mode Driver Framework (UMDF) для разработки драйверов. UMDF включает ряд функций, которые упрощают разработку управления питанием во время выполнения устройства.
Поддержка D3
Разработчикам драйверов NFP рекомендуется переводить устройство NFP в состояние D3, когда все дескриптора устройства были закрыты или все открытые дескрипторы устройства получили уведомление об IOCTL_NFP_DISABLE . Все открытые дескрипторы получат уведомление о IOCTL_NFP_DISABLE после того, как платформа перейдет в современный режим ожидания и рабочий стол пользователя будет заблокирован.
Даже если устройство NFP может достичь энергопотребления менее одного милливатта в режиме простоя, переход на D3 по-прежнему рекомендуется, если все дескрипторы закрыты или получили уведомление о IOCTL_NFP_DISABLE . Переход на D3 позволяет уведомлять всех драйверов в стеке драйверов для устройства NFP о переходе оборудования в режим малой мощности. Кроме того, переход на D3 можно определить с помощью встроенных в Windows инструментов. Для наблюдения за этим переходом можно использовать набор средств для повышения производительности Windows и другие средства диагностики производительности. Эта встроенная поддержка диагностики снижает затраты системного интегратора на проверку того, что устройство NFP IOCTL_NFP_DISABLE правильно выполняет управление питанием.
Для некоторых автобусов устройства в шине должны перейти на D3, прежде чем контроллер шины сможет перейти в состояние низкого энергопотребления. Для устройства NFP, подключенного к I2C, отсутствует такая зависимость от того, что устройство NFP конечной точки входит в D3, чтобы контроллер шины I2C отключился.
Однако если современные резервные платформы в будущем будут использовать универсальную последовательную шину (USB) для подключения к устройствам NFP, устройство NFP должно иметь возможность войти в D3, чтобы контроллер узла USB мог отключать питание, а soC или основной кремний мог перейти в состояние простоя с низким энергопотреблением во время современного режима ожидания. Разработчикам драйверов устройств NFP рекомендуется перевести свои устройства на D3, когда они будут готовы перейти в режим низкого энергопотребления, независимо от базовой шины, чтобы позволить в будущем повторно использовать драйвер и упростить управление питанием диагностика.
Если для перехода в режим ожидания устройство NFP требует отправки команды от драйвера устройства NFP через шину связи, эта команда должна быть отправлена в рамках перехода на D3 в драйвере.
Если для устройства NFP требуется контакт GPIO из SoC для перехода в режим ожидания питания, требуется переход на D3. Инициирование перехода на D3 уведомляет драйвер Windows ACPI Acpi.sys, который выполняет метод управления _PS3, реализованный на устройстве NFP в пространстве имен ACPI. Метод _PS3 может переключать линию GPIO через область операции GPIO. Чтобы сделать драйвер устройства NFP более портативным, все задержки для конкретной платформы или другие ограничения времени должны быть реализованы в встроенном ПО платформы, чтобы драйвер устройства NFP не нужно настраивать для конкретной платформы.
Чтобы включить переход устройства NFP на D3, когда устройство бездействует и платформа находится в состоянии питания системы S0 (рабочее), драйвер UMDF вызывает метод IWDFDevice2::AssignS0IdleSettingsEx. В этом вызове драйвер предоставляет указатель на структуру WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS в качестве входного параметра и задает элементу DxState этой структуры значение PowerDeviceD3.
Если энергопотребление устройства NFP в режиме ожидания превышает один милливатт, устройство должно быть помещено в режим отключения питания, если все дескрипторы закрыты или все дескрипторы были отправлены IOCTL_NFP_DISABLE уведомления. Чтобы базовое встроенное ПО и оборудование отключали питание от устройства NFP, устройство должно уже войти в D3 (то есть D3hot), а драйвер устройства NFP должен ранее включить переход на D3cold. Включение D3cold подразумевает, что драйвер для устройства NFP сохраняет аппаратное состояние устройства перед переходом на D3, чтобы можно было отключить все питание от устройства. Устройство должно быть в состоянии возобновить нормальную работу позже после включения устройства (то есть устройство выходит из D3cold), а драйвер восстанавливает состояние оборудования устройства. Чтобы включить D3cold, драйвер UMDF вызывает метод IWDFDevice2::AssignS0IdleSettingsEx. В этом вызове драйвер предоставляет указатель на структуру WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS и устанавливает для элемента ExcludeD3Cold этой структуры значение WdfFalse.
Радио-менеджер
Если устройство NFP использует радиочастотный механизм (радио) для обнаружения событий близкого взаимодействия, поставщик устройств NFP должен предоставить диспетчер радиосвязи в дополнение к драйверу устройства NFP. Диспетчер радиосвязи — это БИБЛИОТЕКА COM, которая реализует API пользовательского интерфейса управления радиоуправительной связью и взаимодействует в частном порядке с драйвером устройства NFP. Когда пользователь изменяет состояние включения и выключения радиоустройства NFP в приложении «Параметры Windows», драйвер устройства NFP получает уведомление об изменении через диспетчер радиосвязи. Разработчик драйвера должен определить частный интерфейс для передачи состояния управления радиосвязи между COM-объектом диспетчера радио и драйвером устройства NFP. Когда драйвер устройства NFP получает от объекта диспетчера радиосвязи команду, чтобы установить для устройства состояние включения и выключения радиосвязи, драйвер должен сохранить состояние оборудования устройства, отключить все компоненты радиочастотной рч-связи, связанные с устройством NFP, и перевести устройство на D3. Обратите внимание, что количество и состояние всех дескрипторов из интерфейса GUID_DEVINTERFACE_NFP, которые уже открыты при входе устройства в D3, должны сохраняться, пока устройство находится в D3.
После того как диспетчер радиосвязи указывает, что компоненты rf на устройстве NFP должны быть включены и включены, устройство NFP должно немедленно перейти обратно в D0, когда происходит одно из следующих действий:
- Клиент открывает новый дескриптор для драйвера устройства NFP.
- Любой уже открытый дескриптор получает уведомление о IOCTL_NFP_ENABLE .
Уведомление IOCTL_NFP_ENABLE будет отправлено Windows драйверу устройства NFP, когда платформа выходит из режима ожидания и пользователь вводит свой пароль.
Если диспетчер радиопередач указал, что компоненты rf на устройстве NFP должны быть отключены и выключены, устройство NFP должно оставаться в D3, даже если открыт новый дескриптор или включен существующий дескриптор, пока диспетчер радиопередач не укажет, что компоненты rf должны быть включены и включены.
Если устройству NFP требуется отправить команду для возврата устройства NFP в режим простоя, эта команда может быть отправлена через шину связи (обычно I2C) и должна выполняться в рамках завершения перехода на D0 в драйвере устройства NFP.
Переход устройства NFP на D0 позволяет выполнять метод управления _PS0 под устройством в пространстве имен ACPI. При необходимости этот метод управления может переключить линию GPIO из SoC на устройство NFP, чтобы вернуть устройство в режим простоя.
Поддерживаемые конфигурации аппаратного питания
Устройство NFP должно потреблять в среднем не более одного милливатта энергии, пока аппаратная платформа находится в режиме современного режима ожидания. Если устройство потребляет не более одного милливатта питания в режиме ожидания, драйвер устройства NFP может поместить устройство в режим ожидания, если устройство не используется. В противном случае конструктор системы должен подключить устройство к выделенной направляющей питания, которую можно отключить, если устройство не используется.
Резервная мощность менее одного милливатта
Если устройство NFP потребляет менее одного милливатта питания в режиме ожидания, устройство NFP может быть помещено на любой сетевой направляющей системы и может совместно использовать этот рельс с любым количеством других устройств. Переход устройства в режим ожидания происходит в рамках перехода на D3.
Вход устройства NFP в резервный режим можно инициировать либо путем отправки команды через шину связи (обычно I2C), либо путем переключения линии SoC GPIO, которая направляется на устройство NFP.
Если устройство NFP требует переключения линии GPIO из SoC для выхода в режим ожидания, строка GPIO должна быть описана в области операций GPIO в пространстве имен ACPI. Системный интегратор должен реализовать методы _PS3 и _PS0 в устройстве NFP в пространстве имен ACPI. Реализация метода _PS3 должна переключить линию GPIO, чтобы переключить устройство NFP в режим ожидания. Реализация метода _PS0 должна переключить линию GPIO, чтобы переключить устройство NFP из режима ожидания в режим простоя. Для переключения этой строки могут применяться ограничения времени для конкретной платформы или устройства.
Как описано ранее, драйвер устройства NFP должен инициировать переход на D3, когда все дескрипторы закрыты или все дескрипторы получили уведомление IOCTL_NFP_DISABLE или диспетчер радиосвязи запросил отключение компонентов rf на устройстве NFP.
Резервная мощность составляет более одного милливатта
Если энергопотребление устройства NFP в режиме ожидания составляет более одного милливатта, устройство NFP должно быть размещено на выделенной направляющей питания, которую можно независимо включать и выключать под управлением GPIO из SoC. Если все дескрипторы закрыты или все дескрипторы получили уведомление о IOCTL_NFP_DISABLE или диспетчер радиосвязи запросил выключение компонентов радиочастотной связи, устройство NFP сначала переходит на D3, а затем переходит в режим отключения питания при выключении направляющей питания.
Переключаемая линия питания должна управляться линией GPIO из SoC или основного кремния. Строка GPIO должна быть описана как часть области операций GPIO в пространстве имен ACPI. Кроме того, пространство имен ACPI должно содержать ресурс Power Resource, описывающий переключаемую шину питания и реализующий методы управления _ON и _OFF. Методы управления _ON и _OFF переключают линию GPIO, описанную в области операций GPIO, чтобы включить и выключить шину питания. пакеты _PR3 и _PR0 должны размещаться под устройством NFP в пространстве имен ACPI и должны быть связаны с ресурсом Power Resource, описывающим шину питания.
Как описано ранее, драйвер устройства NFP должен включить D3cold. Кроме того, драйвер должен инициировать переход на D3, когда все дескрипторы закрыты, или все дескрипторы получили уведомление IOCTL_NFP_DISABLE или диспетчер радиосвязи запрашивает отключение компонентов RF. Когда драйвер ACPI получает D3 IRP, он выполняет метод _OFF в Power Resource, указанном пакетом _PR3. Этот метод переключит линию GPIO, которая управляет оборудованием переключения питания, чтобы отключать питание от устройства NFP.
Если диспетчер радиосвязи указал, что компоненты RF должны быть включены, драйвер устройства NFP должен выполнить переход на D0 при открытии нового дескриптора или получении существующего дескриптора уведомления о IOCTL_NFP_ENABLE . Когда драйвер ACPI получает D0 IRP ( запрос IRP_MN_SET_POWER типа DevicePowerState), он выполняет метод _ON в Power Resource, указанном пакетом _PR0. Этот метод переключит линию GPIO, которая управляет оборудованием для переключения питания, чтобы повторно применить питание к устройству NFP.
Проблемы пробуждения
Для устройства NFP нет проблем с пробуждением. Устройство NFP не может поддерживать пробуждение SoC, пока платформа находится в режиме современного режима ожидания.
Тестирование и проверка
Для разработчика системы крайне важно убедиться, что устройство NFP надежно переходит в режим ожидания или режим отключения питания при выключении дисплея в режиме современного режима ожидания. Решение для управления питанием для устройства NFP в значительной степени зависит от реализации стороннего драйвера. Поэтому системным интеграторам рекомендуется обсудить лучший метод тестирования и проверки функциональности устройства NFP с поставщиком устройств NFP.
Если драйвер устройства NFP инициирует переход на D3 при закрытии или отключении всех дескрипторов драйвера, для наблюдения за этим переходом можно использовать средство XPerf . Этот метод проверки аналогичен описанному в других местах для сенсорных контроллеров и устройств датчиков.
Если драйвер отправляет команды по шине связи для перевода устройства в режим ожидания и выхода из него, драйвер должен поддерживать трассировку событий, чтобы системный интегратор с легкостью проверял операции управления питанием. Инструментирование можно легко добавить в драйверы Windows с помощью трассировки событий Windows (ETW). Дополнительные сведения см. в статье Добавление трассировки событий в драйверы Kernel-Mode. Преимущество трассировки ETW заключается в том, что ее можно просмотреть с помощью набора средств windows Performance Toolkit, который включает XPerf.
Контрольный список управления питанием устройств NFP
Системные интеграторы и поставщики NFP должны ознакомиться с приведенным ниже контрольным списком, чтобы убедиться, что их система управления питанием совместима с Windows 8 и выше.
- Выберите устройство NFP с режимом ожидания, которое потребляет в среднем менее одного милливатта электроэнергии.
- Убедитесь, что драйвер устройства NFP инициирует переход на D3, когда все дескрипторы устройства закрыты или все открытые дескрипторы получили уведомление о IOCTL_NFP_DISABLE или диспетчер радиосвязи запрашивает отключение и выключение компонентов rf на устройстве NFP.
- Убедитесь, что драйвер устройства NFP инициирует переход на D0, если диспетчер радиосвязи указал, что компоненты rf должны быть включены и впоследствии первый дескриптор открывается на устройстве или первый открытый дескриптор получает уведомление о IOCTL_NFP_ENABLE.
- Если драйвер устройства NFP отправляет пользовательскую команду через шину связи, чтобы сообщить устройству NFP о переходе в режим ожидания, обратитесь к поставщику устройств NFP, чтобы определить оптимальный способ убедиться, что устройство NFP переходит в режим ожидания питания в ответ на эту команду.
- Если энергопотребление устройства NFP превышает один милливатт, убедитесь, что устройство размещено на переключаемой направляющей питания.
- Если устройство NFP расположено на переключаемой направляющей питания:
- Убедитесь, что устройство поддерживает полное отключение питания от устройства, если оно не используется, и что при восстановлении питания автоматически повторно включается и повторно инициализируется устройство.
- Убедитесь, что линия питания управляется линией GPIO из SoC или основного кремния.
- Сопоставьте строку GPIO с областью операций GPIO, реализованной в встроенном ПО ACPI системы.
- Предоставьте ресурс Power Resource для описания направляющей питания и включите в него методы управления _ON, _OFF и _STA.
- Укажите пакеты _PR0 и _PR3 на устройстве NFP в встроенном ПО ACPI системы и убедитесь, что они ссылаются на Power Resource.
- Если для устройства NFP требуется задержка включения питания, прежде чем драйвер сможет получить к нему доступ, закодируйте эту задержку в реализации метода управления _ON.