banner

Новости

Dec 27, 2023

Все о USB

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

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

Сегодня давайте проверим Pinecil. Паяльник от Pine64, выпущенный несколько лет назад, сохранил низкую цену и высокое качество. Он оснащен как бочкообразным разъемом, так и портом USB-C для подачи питания — долгожданный отход от стратегии утюгов Miniware, где ни утюги TS100 только с бочкообразным разъемом, ни маломощные утюги TS80 с фирменным наконечником не смогли этого сделать. И, учитывая дизайн насадок в стиле TS100 T12, неудивительно, что Pinecil занял заслуженное место в мире любителей.

Вы можете подумать, что Pinecil должен быть простым устройством. Обычный способ получить высокую мощность от порта USB-C — это триггерная микросхема Power Delivery (PD), и вы можете просто использовать ее. Однако, если вы читали статью о питании USB-C, вы, возможно, помните сценарий зарядного устройства мощностью 45 Вт против 60 Вт, где такое устройство сразу же выйдет из строя. В целом возможности настройки триггерных микросхем довольно низкие, и при возникновении проблемы совместимости PD с каким-либо блоком питания вы ничего не можете с этим поделать, кроме как заменить микросхему на микросхему с немного другой логикой - если замена вообще существует, и обычно этого не происходит. Это дорого и ограничивает возможности продукта для реального использования.

Компания Pinecil пошла по пути «программное обеспечение стека PD + интерфейсная микросхема PD», посвятив часть MCU коммуникациям PD в реальном времени. В качестве внешнего интерфейса PD используется FUSB302, подключенный к MCU через обычный интерфейс I2C. Сам микроконтроллер изменился с GD32VF103 в Pinecil v1 на BL706 в Pinecil v2 — оба RISC-V.

Здесь я начал говорить абстрактно, но имеет смысл поговорить о хакере, выполняющем реальную работу по созданию стека PD — фактически, всего стека программного обеспечения Pinecil. Лицом, ответственным за PD и общее программное обеспечение Pinecil, является [Ралим], известный своей прошивкой IronOS, первоначально разработанной для TS100, TS80 и других паяльников с установленными на них MCU. Pine64 обратился к [Ралиму] еще тогда, когда Pinecil был всего лишь концепцией, и спросил, сможет ли он портировать IronOS, включая необходимую работу по PD.

За прошедшие годы подход «интерфейс + MCU» принёс огромную пользу. Основная причина — совместимость блоков питания — существует масса различий в средствах связи с источниками питания USB-C, поскольку PD может быть сложно реализовать, особенно когда дело касается крайних случаев. Первоначальная прошивка утюгов Pinecil действительно не работала с рядом источников питания, включая, например, некоторые блоки питания Apple.

Самое приятное то, что всякий раз, когда кто-то сообщал о проблеме совместимости блока питания на GitHub, [Ралим] мог отследить эту проблему либо путем удаленной отладки «попробуйте этот бинарный файл», либо напрямую купив тот же блок питания. Затем он исправлял проблему, изменяя способ обработки стека крайних случаев, тестировал исправление и загружал новую версию прошивки Pinecil на GitHub, чтобы все могли ее использовать. В течение года большинство проблем с USB-C исчезли, и если у вас возникла проблема с Pinecil, вероятно, вам нужно только обновить прошивку со старой заводской версии.

За прошедшие годы стек стал достаточно зрелым, а главное, проверенным в боях — сейчас сложно найти блок питания, с которым Pinecil не работает. В целях отладки и удобства хакеров, если вы подключите блок питания USB-C к Pinecil, удерживая кнопку +, вам будет показано меню отладки PD со списком всех профилей — в некотором смысле, Pinecil — это инструмент отладчика PD, который вы возможно, уже владеет.

ДЕЛИТЬСЯ