- Как проходит замена шлейфа айфон?
- Что такое такое шлейф на телефоне (iPhone)?
- Сравнение оригинальных запчастей для ремонта iPhone с неоригинальными
- Оглавление:
- Предыстория
- Сравнение оригинальной и неоригинальной запчасти
- Простое визуальное сравнение
- Визуальное сравнение под микроскопом
- Сравнение маркировок
- Чипы микрофона
- Коннекторы
- Фиксатор коаксиального кабеля
- Достоинства
- Недостатки
- Используемые компанией «ЭтоСервис» запчасти
- Как устроен Apple Lightning
- Что такое Lightning?
- Что такое Tristar и Hydra?
- Что такое HiFive?
- Что такое SDQ и IDBUS?
- Теперь можем начать
- Интерпретация запросов и ответов IDBUS
- HOSTID
- Рукопожатия питания
- Несколько слов об ESN и интерфейсе Tristar I2C
- Подготовка
- Tristar I2C
- Электрические характеристики Tristar
Как проходит замена шлейфа айфон?
Шлейф айфона – маленькая, но очень значимая деталь мобильного телефона. Благодаря ей осуществляется правильная работа устройства. Но, с течением времени, или же по неосторожности, данная деталь может сломаться или повредиться. Тогда многие заинтересуются, как проходит замена шлейфа айфон? В данной статье будут подробно разобраны все мелочи этого процесса.
Причины, по которым не заряжается айфон.
Перед тем, как произойдет замена нижнего шлейфа айфон, нужно убедиться, что дело именно в нем, а не в чем-то другом. Допустим, могут просто не работать зарядное устройство или кабель. Поэтому, проверяем сначала их. В том случае, если же кабель или ЗУ не работают, то их необходимо заменить и посмотреть, будет ли тогда заряжаться айфон. Если же с данными приборами все в порядке, то можно ещё проверить работу аккумулятора. Проверив батарею, и поняв, что дело именно в ней, не требуется проводить замена шлейфа айфон.
Ещё один вид неисправности, причем очень распространенный, это поломка разъема зарядки на самом мобильном устройстве. К сожалению, отремонтировать отдельно разъем не представляется возможным. Поэтому, в такой ситуации владельцу нужно будет узнать, сколько стоит замена шлейфа на айфон. Потому что придется менять разъем вместе с нижним шлейфом. Такой вид поломки может быть достаточно серьезным и затратным, потому что придется покупать детали и нанимать специалиста для починки айфона.
Более серьезные проблемы.
Но, есть ещё более серьезные проблемы. Например, когда приходит в негодность контроллер питания. Данная деталь отвечает за запуск телефона. Сломаться он может по различным причинам, допустим, айфон мог случайно оказаться в воде. После чего телефон будет сильно греться и вследствие чего не сможет запускаться до конца. Кроме этого, отремонтировать данную поломку будет очень непросто, так как нужно будет полностью разбирать мобильный телефон и проводить работу с мелкими деталями. А такие действия может совершить не каждый человек. Но, есть и положительная сторона такой поломки. Не нужна будет замена нижнего шлейфа айфона, так как смартфон будет сломан по другой причине. Ещё одной серьезной поломкой будет повреждение контроллера заряда. В таком случае заряд телефона будет распределяться неправильно. Ремонт такой поломки обойдется пользователю в немалую сумму, которая будет зависеть от мастера и модели айфона. Но, чаще всего она будет превышать 3000 рублей. Такая высокая цена из-за того, что нужно будет покупать новый контроллер заряда и работать с мелкими деталями, что является очень тяжелым занятием. Как и в предыдущем случае, никакого отношения эта поломка к замена шлейфа айфон не имеет. Зная об этом, можно сказать, что цена замены шлейфа на айфон не самая высокая, какая может быть за поломку мобильного телефона.
Но все же, не всегда случаются такие серьезные поломки. Контроллер питания и контроллер заряда может сломаться только в крайних случаях, так как он находится в глубине самого айфона, и так просто да него не добраться. А что касается поломок зарядного устройства и кабеля, то такие неприятности могут быть достаточно часто. Так как, постоянно пользуюсь шнуром от зарядки, он начинает гнуться, перетираться, и именно из-за этого приходить в негодность. Но, заменить его легко и по сравнению с другими неприятными происшествиями, по более низкой цене. Ну а если дело все же не в нем, то замена нижнего шлейфа айфон, должна исправить ситуацию. Именно так и происходит в большинстве случаев поломок связанных с зарядкой айфона.
Цена замены шлейфа на айфоне
Данная ценовая категория будет зависеть от двух факторов. Во-первых, от мастерской, проводящей ремонтные работы. Во-вторых, от модели самого айфона. Можно назвать примерные цены на ремонт:
Источник
Что такое такое шлейф на телефоне (iPhone)?
Обычно шлейфом принято называть длинный подол женского платье. Или выбросы газа, пепла или вулканических бомб из вулкана, которые находятся в воздухе. А что значит шлейф, когда речь заходит о телефонах, смартфонах или планшетах?
На самом деле шлейф — это сленговое название ленточного (плоского) кабеля в компьютерной, а теперь еще и мобильной технике. Ленточный кабель — многожильный кабель, в котором жилы расположены параллельно в одной плоскости, при этом каждая из жил имеет собственную круглую изоляцию.
В мобильных устройствах шлейфы, как правило, необходимы для того, чтобы обеспечивать функционирование различных элементов. Это может быть разъем для зарядки или сим-карты, камера, вспышка и т.д.
В отдельных устройствах, включая тот же iPhone, шлейфы могут выполнять роли самостоятельных деталей. Например, нижний шлейф порта зарядки и аудио-разъема iPhone 5 содержит как порт зарядки, так и аудио-разъем. Такой шлейф представляет единую деталь.
Слово «шлейф» имеет еще несколько значений, но к нашей мобильной и компьютерной тематике они отношения не имеют.
Друзья! Если наш сайт помог вам или просто понравился, вы можете помочь нам развиваться и двигаться дальше. Для этого можно:
- Оставить комментарий к статье.
Источник
Сравнение оригинальных запчастей для ремонта iPhone с неоригинальными
Одной из принципиальных отличительных особенностей компании Apple от других производителей является ее отношение к ремонту выпускаемой ею техники. Она не производит запасных частей ни для каких своих продуктов и не рекомендует осуществлять их ремонт в принципе. Если iPhone или, например, iPad выходит из строя во время гарантийного срока по любой причине, работники компании просто меняют его на новое устройство без каких-либо лишних разбирательств. Если же поломка произошла по вине пользователя, ему предложат приобрести новое устройство. На первый взгляд, все очень просто. Тем не менее, есть в данном случае и подводные камни. Во-первых, у пользователя банально может не быть доступа к сертифицированному сервисному центру, во-вторых, приобретения нового телефона или планшета можно избежать относительно недорогим ремонтом, который будет предполагать замену каких-либо комплектующих на оригинальные или неоригинальные запчасти. Кстати, между первыми и вторыми есть некоторые отличия.
Так чем же отличается оригинальная запчасть для iPhone от неоригинальной?
Оглавление:
Предыстория
Многие пользователи задаются закономерный вопросом — «Какие запчасти используются для ремонта iPhone и iPad, если компания Apple их не выпускает?». Вводная информация и большинство ответов доступны в данных материалах от наших коллег:
— Мифы и реальность ремонта в сервисных центрах (iPhones.ru);
— Пять плохих запчастей в вашем отремонтированном iPhone (iPhones.ru).
После знакомства с этими данными необходимо обратить внимание на то, что пишут по поводу запасных частей для продукции Apple сами их продавцы. Вот один из найденных через Google по запросу «Оригинальные запасные части для iPhone»:
— Yodamobile.ru.
В отличие от Yodamobile.ru, которые предоставили честную и исчерпывающую информацию о своих запчастях, большинство продавцов просто называют их «Оригинальными». К сожалению, мы еще не успели ознакомиться с качеством предлагаемых данным реселлером деталей, но обязательно сделаем контрольную закупку у него и ряда других поставщиков.
Мы прошлись по «Горбушке» в поисках запасных частей и были откровенно удивлены — почти все продавцы утверждали, что предлагают оригинальные комплектующие для iPhone. Нами был приобретен нижний шлейф (его также называют системным шлейфом, шлейфом зарядки или шлейфом разъема Lightning) в первом магазине, который предлагал «оригинальные» запчасти. Это — один из самых сложных компонентов iPhone, поэтому с заведомо оригинальным мы решили сравнить именно его.
Купив нижний шлейф за 660 рублей, мы сравнили его с запчастями других крупных сетевых магазинов. Даже мелкие детали и маркировка комплектующего совпадали — у всех был один и тот же шлейф. Стоимость, тем не менее, отличилась — 460, 550, 990 рублей. Мы нашли запасную часть от этого же производителя на AliExpress:
— http://ru.aliexpress.com/item/10pcs-lot-original-Gray-Charging-Dock-Connector-Charger-Port-Headphone-Plug-Assembly-flex-cable-for-iPhone/32371121880.html;
— http://ru.aliexpress.com/item/One-Million-Original-Dock-Connector-Charging-Port-with-Headphone-Jack-Plug-Flex-for-iPhone-6-Parts/32343579433.html.
Средняя стоимость здесь в среднем составляет $5, что на сегодняшний день равняется 260 рублям. Как видим, местные магазины накручивают цену в два-три и даже четыре раза. Несмотря на то, что некоторые могут назвать их «барыгами» или «торгашами», подобное ценообразование нормально для всех сфер современного бизнеса.
Отметим также, что информация об «оригинальности» не всегда идет от местных магазинов. Очень часто лукавят и китайские поставщики. Некоторые из них честно указывают, что предлагают неотличимую копию, однако другие без зазрения совести подписывают запасную часть как оригинальную. Представленный товар и первым, и вторым нужно продать — все это на их совести.
Сравнение оригинальной и неоригинальной запчасти
Предлагаем провести сравнение заведомо оригинальной снятой с iPhone запчасти и ее неоригинального аналога.
Простое визуальное сравнение
Оригинальная деталь находится слева, купленная для сравнения ее копия — справа.
Как видим, при простом визуальном сравнении каких-то отличий заметить не получится. Все скопировано «в ноль» — хорошая работа.
Визуальное сравнение под микроскопом
После обычного визуального сравнения оригинальной и неоригинальной запчасти необходимо рассмотреть их под микроскопом.
Сравнение маркировок
На первой фотографии — оригинальная маркировка. Он выполнена с помощью тампопечати и имеет достаточно неплохое качество. Маркировка на неоригинальной детали имеет рваные края. На работоспособности запчасти и ее долговечности данный факт никак не скажется, однако он портит общее впечатление, не так ли?
Чипы микрофона
Маркировка на чипы микрофона нанесена разным оборудованием — возможно, это разные партии. Тем не менее, сами по себе они идентичны и могут даже быть произведены на одном и том же заводе.
Коннекторы
Коннекторы на деталях очень похожи, особенно их маркировка — они также могут быть сделаны одним производителем. Буква «K» в маркировке на оригинальной запчасти заменена на букву «L» в копии — что это означает не известно. Кроме того, видна разница в толщине слоя, который защищает медные дорожки.
Фиксатор коаксиального кабеля
Фиксатор коаксиального кабеля, который отвечает за сотовую сеть, в неоригинальном кабеле обжат крайне плохо — с ним возможна нестабильная работа связи. Есть вероятность, что нам попался бракованный кабель, однако без микроскопа перед прилавком разглядеть подобный дефект было бы сложно.
Достоинства
Недостатки
Используемые компанией «ЭтоСервис» запчасти
Что касается запчастей, которые мы используем для ремонта iPhone своих клиентов, то ситуация тут лучше в разы. Да, мы не можем с открытой душой сказать, что они оригинальные, поскольку считаем оригиналом только то, что непосредственно снято с телефона. Тем не менее, проблем с обжимом коаксиального кабеля здесь нет, содержание маркировки чипа микрофона совпадает с оригиналом (в том числе и содержимое QR-кода), а общая маркировка шлейфа выполнена более качественно. Возможно, это та запчасть, которую называют «Заводской оригинал без контроля качества Apple». Браки и поломки по подобным комплектующим практически не встречаются. Это — достойное фабричное качество.
Запчасти мы получаем напрямую из Китая. За выбор производителя и качество комплектующих отвечает русский человек, который постоянно проживает там и знает какого качества детали нам необходимы. Его заработок — это 20% от цены на запчасть. Стоимость такого шлейфа составляет $18, что на сегодняшний день равняется 900 рублям. Это — адекватная цена за качественную деталь, которая сопровождается 6-месячной гарантией и будет заменена в случае любого сбоя.
Источник
Как устроен Apple Lightning
Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, Hydra, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение…
Читайте эту статью на свой страх и риск! Информация основана на большом количестве внутренних материалов AppleInternal (утечка данных, схем, исходных кодов), которые я прочёл по диагонали. И, конечно, на моих собственных исследованиях. Должен предупредить, что я никогда раньше не проводил подобных исследований. Таким образом, эта статья может использовать неправильные или просто странные термины и оказаться частично или полностью неправильной!
Прежде чем углубиться, давайте кратко разберёмся в терминах:
Что такое Lightning?
Lightning — это цифровой интерфейс, используемый в большинстве устройств Apple iOS с конца 2012 года. Он заменил старый 30-контактный разъём.
На картинке выше гнездо разъёма, а на картинке ниже его распиновка:
Пожалуйста, обратите внимание, что в разъёме контакты с обеих сторон коннектора не соединены в одном и том же порядке. Таким образом, хост-устройство должно определить ориентацию кабеля, прежде чем что-то делать.
Хотя это не всегда так. У многих аксессуаров Lightning, которые мне попадались, в разъёмах зеркальная распиновка.
Что такое Tristar и Hydra?
Tristar — это интегральная схема, встроенная в каждое устройство с гнездом разъёма Lightning. По сути, это мультиплексор:
Кроме всего прочего, его основная цель состоит в том, чтобы соединяться со штекерным разъёмом Lightning, как только он подключён — определять ориентацию, Accessory ID и надлежащим образом маршрутизировать внутренние интерфейсы, такие как USB, UART и SWD.
Hydra — это новый вариант Tristar, используемый начиная с iPhone 8/X. Видимо, наиболее существенным изменением является поддержка беспроводной зарядки, но это ещё предстоит проверить:
Мне известны пять основных вариантов Tristar/Hydra:
- TI THS7383 — Tristar первого поколения в iPad mini 1 и iPad 4
- NXP CBTL1608A1 — Tristar первого поколения в iPhone 5 и iPod touch 5
- NXP CBTL1609A1 — таинственный Tristar первого поколения в iPod nano 7 — источник
- NXP CBTL1610Ax — TriStar второго поколения, используется начиная с iPhone 5C/5S и, по-видимому, во всём остальном, что не поддерживает беспроводную зарядку. Существует несколько поколений (x — номер поколения)
- NXP CBTL1612Ax — Hydra используется с iPhone 8/X и, видимо, во всём остальном, что поддерживает беспроводную зарядку. Существует несколько поколений (x — номер поколения)
С этого момента я буду использовать только термин TriStar, но имейте в виду, что он также означает Hydra, поскольку они очень похожи в большинстве аспектов, которые будут рассмотрены в этом тексте.
Что такое HiFive?
HiFive — это дочерний интерфейс Lightning, то есть штекерный разъём. Он также содержит логический элемент — этот чип известен как SN2025/BQ2025.
Что такое SDQ и IDBUS?
Эти два термина часто считают своего рода синонимами. Для удобства я буду использовать только термин IDBUS, так как он кажется мне более правильным (и именно так технология называется в спецификации THS7383).
Итак, IDBUS — это цифровой протокол, используемый для коммуникации между Tristar и HiFive. Очень похож на протокол Onewire.
Теперь можем начать
Давайте прослушаем коммуникации Tristar и HiFive. Возьмите логический анализатор, переходную плату Lightning с соединением для гнезда и штекерного разъёма, какой-нибудь аксессуар (обычный кабель Lightning-to-USB отлично подойдёт) и, конечно, какое-нибудь устройство с портом Lightning.
Сначала подключите каналы логического анализатора к обеим линиям ID переходной платы (контакты 4 и 8) и подключите плату к устройству, но пока не подключайте аксессуар:
Сразу после этого начните выборку (подойдёт любая частота от 2 МГц и выше). Вы увидите что-то вроде этого:
Как видете, Tristar опрашивает каждую линию ID по очереди — одну за другой. Но поскольку мы не подключили никакого аксессуара, опрос явно провалился. В какой-то момент устройство устанет от этого бесконечного потока отказов и остановит его. А пока давайте разберёмся, что именно происходит во время опроса:
Сначала мы видим длинный интервал (около 1,1 миллисекунды), когда просто уровень высокий, но больше ничего не происходит:
Видимо, это время используется для зарядки внутреннего конденсатора HiFive — энергия от него будет затем использоваться для питания внутренних логических чипов.
Гораздо интереснее то, что происходит потом:
Очевидно, это поток каких-то данных. Но как его интерпретировать? Как расшифровать? Давайте виртуально разделим его на минимальные значимые части — то, что я называю словами:
По сути слово — это сочетание падения-подъёма-падения:
- Содержательный этап — интервал, который определяет значение слова
- Этап восстановления — интервал, который, видимо, требуется для обработки содержательной стадии на стороне получателя и/или для подготовки следующего слова на стадии отправки
Вот таблица известных слов с их интервалами для обоих этапов, которые мы обсуждали выше (все единицы измерения в микросекундах):
Содержание | Восстановление | ||||
---|---|---|---|---|---|
Слово | Min | Typ | Max | Min | Typ |
BREAK | 12 | 14 | 16 | 2.5 | 4.5 |
WAKE | 22 | 24 | 27 | 1100? | |
ZERO | 6 | 7 | 8 | 3 | |
ONE | 1 | 1.7 | 2.5 | 8.5 | |
ZERO и STOP* | 6 | 7 | 8 | 16 | |
ONE и STOP* | 1 | 1.7 | 2.5 | 21 |
* STOP используется, когда это последний бит в байте
Используя приведённую выше таблицу теперь мы можем построить простой декодер протокола:
Как видите, сначала хост посылает BREAK — когда Tristar хочет отправить новый запрос, хост всегда начинает с этого слова. Затем наступает этап передачи данных. Пожалуйста, обратите внимание, что у последнего (8-го) бита в байте более длительный этап восстановления. Когда этап передачи данных заканчивается, хост отправляет ещё один BREAK. Затем дочернее устройство должно отправить ответ (после задержки не менее 2,5 микросекунд — см. таблицу). Tristar будет ждать ответа около 2,2 мс. Если ответ не выдан в этот промежуток времени, Tristar попытается опросить другую линию ID.
Теперь давайте рассмотрим этап данных на примере выше — 0x74 0x00 0x02 0x1f :
- 0x74 — тип запроса/ответа. Всегда чётный для запроса и нечётный для ответа (тип запроса +1)
- 0x00 0x02 — фактические данные. Может быть пустым
- 0x1f — это CRC8 как байта типа запроса, так и всех данных (полином — 0x31, начальное значение — 0xff)
Давайте подключим к нашей установке какой-нибудь аксессуар и посмотрим, что произойдёт. Я буду использовать оригинальный кабель Lightning-to-USB от Apple:
И вот что появляется на IDBUS после запроса 0x74:
HiFive ответил! И если вы прокрутите дальше, то увидите много других пар запрос/ответ:
Некоторые запросы не нуждаются в ответе:
Интерпретация запросов и ответов IDBUS
Самый важный запрос IDBUS — это 0x74, он используется для двух целей: чтобы приказать HiFive включить полное напряжение и силу тока (в случае, если оно поддерживается аксессуаром), спросить его о конфигурации контактов, которые поддерживаются кабелем, и некоторых других метаданных.
О том, как кодируются данные ответа 0x75, известно не так уж много. Но некоторые биты доступны в старой спецификации Tristar:
Первый байт данных ответа 0x75
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
ACCx | Dx | DATA[43:40] |
ACCx[1:0] | ACC1 | ACC2 | HOST_RESET |
---|---|---|---|
00 | Hi-Z (IDBUS) | Hi-Z | Hi-Z |
01 | UART1_RX | UART1_TX | Hi-Z |
10 | JTAG_DIO | JTAG_CLK | Hi-Z |
11 | Hi-Z | Hi-Z | HIGH |
ACCx[1:0] | ACC1 | ACC2 | HOST_RESET |
---|---|---|---|
00 | Hi-Z | Hi-Z (IDBUS) | Hi-Z |
01 | UART1_RX | UART1_TX | Hi-Z |
10 | JTAG_DIO | JTAG_CLK | Hi-Z |
11 | Hi-Z | Hi-Z | HIGH |
Dx[1:0] | DP1 | DN1 | DP2 | DN2 |
---|---|---|---|---|
00 | Hi-Z | Hi-Z | Hi-Z | Hi-Z |
01 | USB0_DP | USB0_DN | Hi-Z | Hi-Z |
10 | USB0_DP | USB0_DN | UART1_TX | UART1_RX |
11 | Hi-Z | Hi-Z | Hi-Z | Hi-Z |
Dx[1:0] | DP1 | DN1 | DP2 | DN2 |
---|---|---|---|---|
00 | Hi-Z | Hi-Z | Hi-Z | Hi-Z |
01 | Hi-Z | Hi-Z | USB0_DP | USB0_DN |
10 | USB0_DP | USB0_DN | UART1_TX | UART1_RX |
11 | Hi-Z | Hi-Z | Hi-Z | Hi-Z |
Используя эти таблицы, давайте расшифруем ID нашего кабеля ( 10 0C 00 00 00 00 ) с учётом того, что линия ID найдена на контакте ID0:
Первый байт ответа 0x75 кабеля
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
ACCx | Dx | DATA[43:40] | |||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
Таким образом, ACCx — это 00, Это означает, что пин ID0 просто привязан к IDBUS, а Dx = 01 означает, что пины DP1/DN1 настроены как USB0_DP/USB0_DN. Именно то, что мы ожидали от стандартного USB-кабеля.
А теперь давайте перехватим что-нибудь поинтереснее:
Аксессуар | ID (HOSTID = 1) |
---|---|
DCSD | 20 00 00 00 00 00 |
KongSWD (без работающего Astris) | 20 02 00 00 00 00 |
KongSWD (с работающим Astris) | A0 00 00 00 00 00 |
KanziSWD (без работающего Astris) | 20 0E 00 00 00 00 |
KanziSWD (с работающим Astris) | A0 0C 00 00 00 00 |
Haywire (HDMI) | 0B F0 00 00 00 00 |
Зарядка UART | 20 00 10 00 00 00 |
Lightning на 3,5 мм/EarPods с Lightning | 04 F1 00 00 00 00 |
Вот полный (?) список запросов IDBUS от @spbdimka:
Совет №1: вы можете легко получить свойства аксессуара, включая его идентификатор, используя accctl:
Это внутренняя утилита Apple, поставляемая со сборками NonUI/InternalUI. Но вы можете легко запустить её на любом устройстве после джейлбрейка.
Совет №2: вы можете легко получить конфигурацию контактов кабеля с помощью diags:
Обратите внимание, что эта команда доступна только на iOS 7+.
Совет №3: вы можете легко отслеживать запросы/ответы 0x74/0x75, генерируемые SWD-пробами, установив debug env var, равное 3:
Затем на виртуальном COM от кабеля вы увидите что-то вроде этого:
HOSTID
В одной из таблиц выше можно увидеть упоминание некоего HOSTID. Это 16-битное значение, передаваемое в запросе 0x74. Похоже, что оно также влияет на ответ HiFive. По крайней мере, если установить для него недопустимое значение (да, это возможно с diags), HiFive перестаёт с ним работать:
Впрочем, в прошивке KongSWD/KanziSWD есть переменная окружения disableIdCheck, которую вы можете настроить так, чтобы игнорировать недопустимый HOSTID.
Важное примечание: У Kong и Kanzi нет HiFive в качестве выделенного непрограммируемого чипа. Эти аксессуары эмулируют его с помощью микроконтроллера и/или блока FPGA, что позволяет его легко обновлять/перепрограммировать.
В таблице Accessory ID выше можно заметить, что Kong и Kanzi посылают разные ответы в зависимости от того, запускается или нет Astris, это программное обеспечение AppleInternal, предназначенное для отладки с помощью SWD-проб (или зондов). Если вы расшифруете эти ответы с помощью приведённых выше таблиц, то обнаружите, что когда Astris не запускается, зонд будет действовать точно так же, как DCSD — USB на линиях D1 и debug UART на линиях D2. Но когда отладочное программное обеспечение работает, линии ACCID переключаются на SWD.
Но что, если мы хотим запустить Astris после того, как зонд уже подключён к устройству? Что будет делать кабель? Как он будет переключаться между линиями ACC на SWD? Вот тут-то WAKE и вступает в игру! HiFive (или устройство, которое его эмулирует) может инициировать WAKE — и процесс перечисления IDBUS начнётся снова: Tristar отправит запрос 0x74, Kong/Kanzi ответит новым идентификатором, Tristar подтвердит его и направит линии ACC на внутренние линии SWD (SoC должен это поддерживать на физическом уровне, конечно).
Рукопожатия питания
Последнее, что я собираюсь рассмотреть — рукопожатия питания (power handshakes). Это алгоритм, основанный на запросах/ответах IDBUS, которые драйверы ядра Tristar используют перед тем, как разрешить зарядку от аксессуара.
Когда кабель Lightning просто где-то лежит, подключённый к зарядному устройству/компьютеру, но не подключённый к устройству, HiFive ограничивает ток на PWR действительно небольшим значением (около 10-15 мА по моим измерениям). Чтобы включить полный ток, запрос 0x74 должен быть выдан Tristar и обработан HiFive. Для SecureROM/iBoot этого достаточно, но при загрузке ядра необходимо сделать дополнительные шаги:
- TriStar выдаёт два запроса 0x70
- Как только второй запрос обработан HiFive и отправлен ответ, он вообще отключает ток примерно на 20 миллисекунд
- По истечении этого времени Tristar выдаёт ещё один запрос 0x70, но с содержанием 0x80 в данных. HiFive обрабатывает его и отвечает
- На этом этапе драйвер ядра, ответственный за Tristar, должен разрешить зарядку
Важное замечание: это та часть, которую я знаю меньше всего. И это одна из тех частей, которые я в основном сам отреверсил. Таким образом, будьте осторожны с этой информацией
Несколько слов об ESN и интерфейсе Tristar I2C
Ещё одна особенность Tristar, о которой я хотел бы рассказать, — ESN. Это маленький блоб, который Tristar хранит в своём EEPROM (на CBTL1610A2 и более поздних версиях). Его можно получить по IDBUS с помощью кабеля Serial Number Reader (или Kanzi, они в основном одинаковые, за исключением разных USB-PID и немного отличающихся корпусов)
Проще говоря, отправив этот блоб на ttrs.apple.com, вы можете получить серийный номер устройства. Этот механизм используется сотрудниками Apple Store/Apple Premium Reseller для извлечения SN с мёртвых устройств (если Tristar ещё жив):
Что происходит на IDBUS при получении ESN, задокументировал @spbdimka:
Подготовка
Процедура «прошивки» ESN на Tristar называется подготовка (provisioning). Она происходит с диагностикой на стороне устройства, через EzLink на принимающей стороне в три этапа.
Вы можете проверить состояние с помощью diags:
… а также получить ESN:
Кстати, у diags вообще богатый набор команд Tristar (доступен, начиная с iOS 7):
Tristar I2C
Tristar доступен на шине I2C (адрес 0x34 для записи, 0x35 для чтения). Именно так diag и драйверы ядра с ним взаимодействуют.
О реестрах публично известно не так уж много. Много информации о самой карте регистра можно получить из утёкшего исходного кода iBoot (только для THS7383 — кажется, обратно совместимого с CBTL1608 — и CBTL1610), но не так много о том, что нужно туда записать, чтобы добиться каких-то интересных результатов.
Ещё одним источником знаний является модуль Tristar из diags (легко извлекаемый через SWD во время его работы). Например, мне удалось отреверсить алгоритмы чтения состояния подготовки и ESN. Затем я реализовал это как дополнение к моей нагрузке для iBoot под названием Lina:
Я также попытался изменить алгоритм записи ESN, но потерпел неудачу — механизм слишком сложный для меня. Однако фрагменты кода от Lina доступны здесь.
Электрические характеристики Tristar
Сам Tristar питается от источника 1,8 В. Линии для IDBUS устойчивы к 3,0 В, согласно моему осциллографу:
Таким образом, без схемы сдвига уровня лучше не пытаться взаимодействовать с IDBUS с помощью устройств, устойчивых к 5 В, как некоторые модели Arduino.
Источник