Всего два порта USB на ноутбуке, которые постоянно нужны в работе, желание пользоваться не тачпадом, а любимой беспроводной мышкой и простаивающий без дела порт M.2 заставили решить небольшую техническую задачу: как подключить приёмник Logitech Unifying к интерфейсу M.2
Постановка задачи
Имеется свободный интерфейсный порт M.2 с ключом "B" и я хочу подключить к нему устройство со стандартным интерфейсом USB2. Задача, очевидно, решаемая, так как в составе M.2 есть USB2, но обещает некоторые сложности. Во-первых, на M.2 нет напряжения 5 вольт для питания USB-устройств. Во-вторых, у меня ноутбук Lenovo, BIOS которого проверяет все устройства M.2 на соответствие «белому списку», и, в-третьих, очень плотная компоновка деталей ноутбука, внутри корпуса практически нет свободного места даже для такой небольшой детали как приёмник беспроводной мышки.
Подготовка и макет
Первый вопрос – нужен ли DC-DC преобразователь для повышения напряжения с 3,3 до 5 вольт для питания адаптера Unifying? Простой эксперимент показал, что адаптер устойчиво работает при напряжении 3 вольта. (Потребляемый ток при этом составил 30mA). Ответ – DC-DC преобразователь не нужен.
Далее понадобилась печатная плата для установки в разъём M.2. Возможности изготовить плату не было, взял готовую. Нашлась плата с ключом "M", для установки в разъём пришлось сделать прорезь ключа "B". Разные ключи M.2 задают принципиально разное назначение контактов разъёма. Внимательно проверил, что не происходит ничего плохого, например, попадания линий питания на землю...
Примечание по нумерации контактов в разъёме M.2 под спойлером.
Расположение контактов двухстороннее, ряды контактов противоположных сторон смещены относительно друг друга на полшага. По верхней стороне (обращенной к нам при установке адаптера в разъём) идут нечётные контакты, по нижней стороне – четные. На верхней, “нечётной” стороне контактов на один больше, чем на нижней.
На фото видны оригинальный ключ "M" и самодельный ключ "B"
Линии данных USB “Data+” и “Data-“ в разъёме “B” находятся на 7-м и 9-м контактах, соответственно. После подсоединения к ним (первоначально тестового, с помощью проводов, без монтажа на плате, со внешним источником питания на 3 вольта) адаптер Unifying сразу заработал. Но, при загрузке системы с подключенным адаптером были получены два сообщения об ошибках (тесты проводились на Lenovo x250):
1802: Unauthorized network card is plugged in – Power off and remove the network card (046D/C52B)
2101: Detection error on SSD1 (M.2)
Появление первой ошибки было ожидаемо, а вот вторая оказалась сюрпризом. Выяснилось, что замыкание на землю контактов 1, 21, 69, 75 указывает системе на тип устройства M.2. На моей плате на земле были 1, 21, 75. После их отключения вторая ошибка исчезла.
Фото подключения к контактам 7, 9 и отключенные линии-индикаторы типа устройства под спойлером.
Чтобы устранинить ошибку “белого списка” существует радикальное средство – патч на BIOS. Трогать BIOS не хотелось, просто решил подавать питание на устройство с некоторой задержкой, после того как BIOS завершит все свои проверки.
Для задержки подачи питания была применена простая схема на таймере 555. Кстати, таймеру так же требуется напряжение питания 5 вольт, но на практике он отлично работает при 3 вольтах.
Реле выбиралось по принципу «что есть прямо сейчас». Контроллер Unifying потребляет очень небольшой ток и, видимо, подойдёт любое миниатюрное реле, срабатывающее при напряжении около 2 вольт. Я использовал CPC1008N, номинал резистора R2 для него выбрал 1,2КОм.
Время срабатывания таймера при включении по такой схеме задаётся элементами R1 и С1. На множестве ресурсов в сети приведена формула T = 1.1*R*C (время в секундах, сопротивление в омах, емкость в фарадах). При С=10мкФ и R=750КОм задержка составляет около 8 секунд. Время выбиралось из соображения, чтобы гарантированно пропустить проверки BIOS, но, чтобы задержка до появления мышки после выхода компьютера из спящего режима была не слишком большой.
Тестирование на макете показало полную работоспособность схемы. Нерешенным остался вопрос, как быть при перезагрузке компьютера без выключения. Питание с M.2 при этом не снимается, таймер не сбрасывается, приёмник остается подключенным к USB и при загрузке возникает ошибка. Возможно, в процессе перезагрузки активируется один из выведенных на разъем M.2 сигналов RESET и их можно использовать для сброса таймера… Вопрос остался неисследованным.
Позже, уже в процессе пользования, стало заметно, что задержка 8 секунд маловата, лучше было сделать примерно секунд 10-11. Дело в том, что при загрузке с подключенными USB-накопителями время определения устройств увеличивается и BIOS успевает обнаружить «незаконное» устройство. И, например, для возможности загрузки с флешки пришлось установить USB-диск первым в списке загрузочных устройств на постоянно, так как стало не хватать времени, на вызов меню выбора временного загрузочного диска.
Электропитание
Для ключа “B” питание +3,3 вольта подается на контакты 2, 4, 70, 72, 74. “Земля” находится на контактах 3, 5, 11, 27, 33, 39, 45, 51, 57, 71, 73. Видно, что все “плюсовые” контакты на “чётной”, нижней стороне платы, “минусовые” – на “нечётной”, верхней.
Размещение “земли” почти совпадало с той платой, что была в моём распоряжении, а вот контакты питания 70, 72, 74 понадобилось восстанавливать (и выводить с нижней стороны платы на верхнюю). Фото под спойлером.
Монтаж
Приёмник Unifying пришлось разобрать. Была идея обойтись без разборки и просто подключить его в разъем, который будет спрятан где-то внутри корпуса, но, в итоге, решил смонтировать его прямо на плату M.2. Под спойлером несколько фото процесса разбора приёмника.
Расположение деталей на плате приёмника Unifying двухстороннее и просто установить такую “микросборку” на свою плату не выйдет. Здесь очень помогает его родная пластиковая подложка из разъема USB. Плата адаптера была прикреплена к подложке с помощью кольца из “термоусадки”, а сама подложка приклеена к плате M.2. Получилось довольно надёжное крепление. Дополнительно плату приемника удерживают провода питания.
Как видно на фото ниже, в габарит по высоте конструкция вписалась идеально. Работает нормально, пользуюсь.
Автор: Yko2007