Распиновка блока питания макбука
Если вы обнаружили, что батарея вашего Macbook Pro больше не заряжается от родного адаптера, не спешите тыкать в него паяльником. Как бы глупо это ни звучало, но сначала следует:
1. убедиться в надежности контакта в розетке (не использовать раздолбанную);
2. убедиться, что в розетке есть питание (воткнуть в нее другое, заведомо исправное устройство);
3. проверить, что в гнездо питания ноутбука не набились посторонние предметы (обычно туда попадают крошки еды, спрессованные комки пыли и прочие насекомые);
4. внимательно осмотреть желтые контакты разъема. Они не должны быть обгоревшими, почерневшими, окислившимися. При попытке утопить их внутрь, штырьки должны без заеданий возвращаться обратно. Желательно лишний раз не царапать позолоченное покрытие;
5. удостовериться, что шнур от адаптера до разъема не имеет механических повреждений, заломов, из-под изоляции не торчат оголенные провода, по нему не проехались офисным креслом и т.п. Поврежденный провод можно запросто заменить своими руками на любой другой соответствующего сечения. В макбуках от блока питания до коннектора Magsafe 2 идут всего два провода:
Если вы сильно везучий человек, вас может спасти простое выдергивание адаптера из сети на несколько минут. Бывает, что, из-за скачка напряжения в сети, зарядник уходит в защиту и ему нужно время, чтобы подумать сбросилась блокировка.
Иногда, при подключении адаптера к Macbook, индикатор зарядки не горит, а на самом деле зарядка идет. Дело в том, что нужный индикатор (оранжевый или зеленый) поджигается по команде от контроллера управления системой SMC, находящегося в макбуке. Иногда, из-за накопившихся ошибок, SMC начинает глючить и тогда помогает сброс контроллера.
Для этого нужно подключить адаптер к полностью выключенному (не спящему, а именно выключенному) макбуку, нажать комбинацию клавиш Shift+Control+Option и, не отпуская их, нажать Power. После чего, одновременно отпустив все кнопки, включить ноутбук со сброшенным контроллером.
Если ничего не помогает, придется завести друга с точно таким же макбуком и незаметно поменяться с ним зарядниками попробовать подключиться к его зарядному устройству. Необязательно, чтобы у друга был точно такой же адаптер – более мощный тоже сгодится. Тут главное, чтобы разъемы совпали. [Замечание: согласно одному из комментариев к этой статье, менее мощный блок питания тоже подойдет для проверки]
Если с вашим зарядником аккумулятор макбука не заряжается, а при подключении чужого зарядного устройства все начинает работать как надо, то ваша зарядка сломалась. Ваш кэп. Самые смелые могут сообщить жене, что покупка норковой шубы снова отменяется, так как макбук важнее. Остальным придется чинить адаптер своими силами.
В моем распоряжении оказался неисправный блок питания с разъемом MagSafe 2 и мощностью 60 Вт, поэтому нижесказанное по большей части будет справедливо для этого адаптера. Таким зарядным устройством комплектовались 13-дюймовые модели MacBook Pro с экраном Retina:
- MD212, MD213 (конец 2012 г.)
- MD212, ME662 (начало 2013 г.)
- ME864, ME865, ME866 (конец 2013 г.)
- MGX72, MGX82, MGX92 (середина 2014 г.)
- MF839, MF840, MF841, MF843 (начало 2015 г.);
Распиновка MagSafe
1 и 5: V-;
2 и 4: V+ @ 6.86 VDC;
3: Пин контроля заряда.
То есть он симметричен и можно не бояться его перевернуть.
На обратной стороне разъема 5 контактов. Поскольку они пружинные, они легко вращаются.
штекер MagSafe 2
гнездо MagSafe 2
MagSafe — разъём питания для ноутбуков компании Apple. Впервые был представлен в сочетании с MacBook Pro на выставке Macworld Expo в Сан-Франциско 10 января 2006 года компанией Apple. Разъем MagSafe удерживается на месте магнитами, поэтому, если кто-то случайно заденет шнур, он просто и безопасно для ноутбука отсоединится.
Во время зарядки индикатор на разъеме горит оранжевым светом, при полном уровне заряда — зеленым.
Контакты разъема MagSafe спроектированы так, что прямоугольный разъем можно вставить в любой ориентации. Хотя MagSafe 45 Вт (MacBook Air), 60 Вт (MacBook) и 85 Вт (MacBook Pro) идентичны, Apple рекомендует использовать только родные адаптеры. Блок питания MacBook Air меньше, но разъем MagSafe такого же размера.
Apple владеет патентом США № 7311526, «Магнитный разъем для электронного устройства».
В середине 2012 года Apple изменила стандарт разъема питания. Новый разъем получил название MagSafe 2 и применяется на MacBook Pro с дисплеями Retina и на MacBook Air 2012 года. Характеристики блоков питания остались без изменений, новый разъем очень похож на предыдущий, но не совместим с ним механически, поскольку он тоньше и шире. Новый разъем неоднократно подвергался критике. Для использования старых блоков питания с новыми ноутбуками Apple продаёт переходник стоимостью около 10 долларов.
В новом поколении MacBook Pro, представленном в конце 2016 года, вместо разъема MagSafe используется USB-C, который не имеет магнитного подключения, а потому может быть не так удобен и безопасен, как MagSafe. В скором времени после этого появились аксессуары, расширяющие возможности USB-C. Кроме того, Apple подала заявку на патент адаптера с MagSafe на USB-C.
Ремонт зарядки Macbook Pro
Прежде чем лезть во внутренности, полезно знать, как инициируется процесс зарядки. Возможно, вы удивитесь, но инженеры Apple умудрились встроить микропроцессорное управление даже в такое простое устройство, как зарядное устройство. Вот ключевые моменты:
- рабочее напряжение составляет 16.5 Вольт. Однако до тех пор, пока адаптер не подключен к нагрузке, на его выходе присутствует только лишь небольшое напряжение холостого хода, обусловленное зарядом выходного конденсатора. Вся схема работает в "пульсирующем режиме": адаптер стартует на мгновение, заряжаются конденсаторы С41 (см. схему), оба выходных электролита и конденсатор С131 (в "холодной" части), который как раз и запитывает микроконтроллер. После чего МК блокирует работу преобразователя с помощью многочисленных цепей обратной связи (т.к. нагрузки нет и работать нет смысла). Через несколько минут C131 разряжается, сигналы, блокирующие работу микросхемы преобразователя, уходят и схема стартует заново. К этому моменту С41 разряжается достаточно для того, чтобы закрылся транзистор Q33, а значит открылся Q32 и питающее напряжение поступило на 14-ую ногу IC34;
- после подключения разъема к макбуку, выход адаптера нагружается на калиброванную резистивную нагрузку, из-за которой напряжение холостого хода проседает до уровня ~1.7В. 16-разрядный микроконтроллер в зарядном устройстве обнаруживает этот факт и через 1 секунду дает выходным ключам команду выдать полное напряжение. Такие сложности позволяют избежать искрения и подгорания контактов разъема в момент подключения зарядника к ноутбуку;
- при подключении слишком большой нагрузки, а также при наличии короткого замыкания, напряжение холостого хода упадет значительно ниже 1.7В и команды на включение не последует;
- в разъеме питания Macbook Pro находится микрочип DS2413, который сразу после подключения к макбуку начинает обменивается информацией с контроллером SMC по протоколу 1-Wire. Обмен идет по однопроводной шине (средний контакт разъема). Зарядник сообщает ноутбуку информацию о себе, в том числе свою мощность и серийный номер. Ноутбук же, если его все устраивает, подключает свои внутренние цепи к адаптеру и сообщает ему текущий режим работы, на основании чего в разъеме зажигается один из двух светодиодов. Весь обмен любезностями занимает менее 100 миллисекунд.
Учитывая вышесказанное, вряд ли получится зарядить макбук без родной зарядки. Проверить блок питания без макбука тоже не выйдет.
Теоритически, для проверки можно подключить к двум крайним контактам коннектора Magsafe резистор, имитирующий нагрузку (что не так-то просто сделать, учитывая конструкцию разъема). Я пробовал подключать резисторы номиналом от 12 до 47 кОм (10 кОм уже мало) и примерно через секунду на нём появлялось полное напряжение (т.е. 16.5 Вольт). Разумеется, индикатор при этом не загорается.
Для тех, кто не знает, разъем блока питания Apple Magsafe 2 имеет следующую распиновку:
Такая хитрая конструкция гнезда зарядки позволяет подключать ваш Macbook, не задумываясь о соблюдении полярности.
Несмотря на то, что в оригинальном адаптере встроена всевозможная защита от дурака, все же не следует обращаться с ним пренебрежительно. Мощности этого блока питания достаточно, чтобы при первом же удобном случае прижечь вас пламенем, забрызгать расплавленным металлом и напугать до усра. икоты.
Схема контактов блока питания от MacBook
Разобрав штеккер увидел, что провода от 5-ти контактов почти оторваны, а провод массы, в виде оплётки - весь разлохматился и всё позамыкал на миниатюрной платке, которая установлена в штеккер.
Естественно ремонт тут очень затруднён, тем более что некоторые дорожки на платке посдирались. Конечно при сильном желании можно попробовать восстановить контакты, и некоторые спецы так делали, но всё это такое маленькое и ненадёжное, что лучше просто купить новый БП.
Переделываем игрушку обычный трактор в радиоуправляемый - фотографии процесса и получившийся результат.
Что такое изолятор и чем он отличается от токопроводящего материала. Занимательная теория радиоэлектроники.
Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.
Самодельный функциональный генератор сигналов 0,1 Гц - 100 кГц на микросхеме ICL8038.
Распиновка MagSafe 2
1 и 5: V-;
2 и 4: V+ @ 6.86 VDC;
3: Пин контроля заряда.
То есть он симметричен и можно не бояться его перевернуть.
На обратной стороне разъема 5 контактов. Поскольку они пружинные, они легко вращаются.
У Apple всё не как у людей, даже блок питания к ихнему ноутбуку Macbook и то отличается от привычных адаптеров. Материал мог бы вполне стать описанием успешного ремонта, вот только ремонт вышел безуспешным, но обо всём по-порядку. Принесли на ремонт небольшой старенький Apple Macbook, в котором адаптер то не заряжал, то после дёрганий и шевелений разъёма заряжал, а в последнее время вообще перестал работать.
Схема адаптера Magsafe 2 (60 Ватт)
Найти принципиальную схему блока питания Macbook не удалось, поэтому ничего не оставалось делать, кроме как срисовать ее с печатной платы. Вот самый интересный фрагмент:
Как видно из схемы, зарядное устройство собрано по классической схеме однотактного импульсного блока питания. Сердцем преобразователя является микросхема DAP013F – современный квазирезонансный контроллер, позволяющий добиться высокого КПД, низкого уровня помех, а также реализовать защиту от перегрузки, перенапряжения и перегрева.
В первоначальный момент времени, после подключении адаптера к розетке, напряжение на витках обмотки 1-2 отсутствует, соответственно, напряжение на затворе транзистора Q33 равно нулю, и он закрыт. На его стоке напряжение равно рабочему напряжению стабилитрона ZD34, которое поступает туда от двухполупериодного выпрямителя, образованного диодами D32, D34 и частью силового диодного моста BD1, через цепочку резисторов R33, R42.
Транзистор Q32 открыт и от этого же диодного выпрямителя начинает заряжаться конденсатор C39 (по цепи: R44 – ZD36 – Q32). Напряжение с этого конденсатора поступает на 14-ую ногу микросхемы IC34, которая через свой внутренний коммутатор соединена с 10 выводом и, соответственно, с электролитическим конденсатором С на 22 мкФ (не удалось найти его обозначение на плате). Первоначальный ток зарядки этого конденсатора ограничен 300 мкА, затем, при достижении на нем напряжения 0.7В, ток возрастает до 3-6 мА.
При достижении на конденсаторе С напряжения запуска микросхемы (порядка 9В), внутренний генератор стартует, импульсы с 9-ого вывода микросхемы поступают на затвор Q1, и вся схема оживает. На работающем адаптере напряжение на этом конденсаторе приблизительно равно 18.7 В.
С этого момента напряжение микросхема IC34 запитывается от конденсатора С, напряжение на котором формируется от обмотки 1-2 трансформатора через выпрямительный диод D31. При этом внутренний коммутатор микросхемы разрывает связь между 14-ым и 10-ым выводами.
Защита от чрезмерного повышения выходной мощности реализована с помощью элементов ZD31 – R41 – R40. При повышении напряжения на выходе обмотки 1-2 выше напряжения пробоя стабилитрона, на 1-ом выводе микросхеме появляется отрицательный потенциал, что приводит к пропорциональному снижению амплитуды импульсов на 9-ом выводе.
Защита от перегрева реализована с помощью терморезистора NTC31, подключенного ко 2-ому выводу микросхемы.
4-ый вывод микросхемы служит для определения момента коммутации выходного ключа в точках минимального тока.
6-ой вывод микросхемы предназначен для стабилизации выходного напряжения адаптера. В состав цепи обратной связи входит оптопара IC131, осуществляющая гальваническую развязку высоковольтной и низковольтной частей адаптера. Если напряжение на 6-ой ноге становится ниже 0.8В, преобразователь переключается в режим пониженной мощности (25% от номинальной). Для корректной работы в этом режиме необходим конденсатор C36. Согласно даташиту, для возврата к нормальному режиму работы, напряжение на 6-ой ноге должно подняться выше 1.4В.
7-ая нога микросхемы подключена к токовому датчику R9 и при превышении определенного порога работа преобразователя блокируется. Конденсатор С34 задает временной интервал для системы автовосстановления после перегрузки по току.
12 вывод микросхемы предназначен для защиты схемы от перенапряжения. Как только напряжение на этой ноге превысит 3В, микросхема уходит в блокировку и будет находиться в этом состоянии до тех пор, пока напряжение на конденсаторе C не упадет ниже уровня сброса контроллера (5В). Для этого нужно выдернуть адаптер из сети и выждать какое-то время. Пять минут будет достаточно.
Похоже, что в этом адаптере не задействован встроенный в микросхему функционал защиты от перенапряжения (во всяком случае, мне так и не удалось проследить к чему подключен резистор R53). По всей видимости эта роль возложена на транзистор Q34, включенный в цепь обратной связи параллельно оптопаре IC131. Транзистор управляется напряжением с обмотки 1-2 через резистивный делитель R51-R50-R43 и в случае, например, неисправности оптопары не позволит микросхеме бесконтрольно повышать напряжение преобразователя.
За срабатывание защиты от перенапряжения отвечает оптопара IC32. Фототранзистор, входящий в состав оптопары, соединяет делитель R53-R39 с плюсовой обкладкой конденсатора С и с 10-ым выводом микросхемы. В норме на 12-ом выводе микросхемы потенциал равен нулю.
Таким образом в этом 60-ваттном адаптере питания реализована четырехкратная защита от превышения выходного напряжения допустимых пределов: оптопара IC131 в цепи обратной связи, оптопара IC32 с делителем R53-R39, транзистор Q34 в той же цепи, и стабилитрон ZD31, подключенный к 1-ой ноге микросхемы через делитель R40-R41. Добавьте сюда еще защиту от перегрева и перегрузки по току (от короткого замыкания). Получается весьма надежное и безопасное для макбука зарядное устройство.
В китайских зарядниках большая часть систем защиты выброшена, а также, в интересах экономии, отсутствуют цепи фильтрации ВЧ-помех и устранения статического электричества. И хотя эти поделки вполне работоспособны, за их дешевизну приходится расплачиваться бОльшим уровнем помех и повышенным риском выхода из строя платы питания ноутбука.
Интересно, что схема адаптера универсальна и подходит абсолютно для любой страны. То есть этот же самый адаптер можно использовать, например, у нас в России (230В, 50Гц) и в каком-нибудь Тринидаде и Тобаго (115В, 60Гц). Надо только заменить саму вилочку, чтобы подходила к местным розеткам.
Также интересно отметить, что вместо стандартного силового выпрямительного диода или диода Шоттки в "холодной" части схемы использован синхронный выпрямитель на полевом транзисторе 85N10 (Q103) под управлением специализированной микросхемы. Поиск по маркировке "DAS 03A RAJ" ничего не дал, но, похоже, что в качестве контроллера синхронного выпрямителя применена микросхема NCP4303A (IC101).
Теперь, имея схему перед глазами и, представляя, как она должна работать, будет несложно найти и устранить любую неисправность.
В моем случае неработоспособность адаптера была вызвана внутренним обрывом резистора R33, из-за чего транзистор Q32 был всегда заперт, напряжение не поступало на 14-ую ногу контроллера, соответственно, напряжение на конденсаторе С не могло достичь уровня включения микросхемы.
После пропайки резистора R33, цепь запуска микросхемы была восстановлена и схема заработала. Надеюсь, что эта статья поможет и вам починить зарядку от своего Макбук Про.
Для помощи в определении полностью выгоревших элементов, прилагаю архив с фотографиями платы в высоком разрешении (45 фотографий, 144 Мб).
А вот тут люди препарировали точно такой же зарядник, только мощностью 85 Вт. Тоже интересно.
Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, Hydra, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение…
Читайте эту статью на свой страх и риск! Информация основана на большом количестве внутренних материалов AppleInternal (утечка данных, схем, исходных кодов), которые я прочёл по диагонали. И, конечно, на моих собственных исследованиях. Должен предупредить, что я никогда раньше не проводил подобных исследований. Таким образом, эта статья может использовать неправильные или просто странные термины и оказаться частично или полностью неправильной!
Прежде чем углубиться, давайте кратко разберёмся в терминах:
Lightning — это цифровой интерфейс, используемый в большинстве устройств Apple iOS с конца 2012 года. Он заменил старый 30-контактный разъём.
На картинке выше гнездо разъёма, а на картинке ниже его распиновка:
Пожалуйста, обратите внимание, что в разъёме контакты с обеих сторон коннектора не соединены в одном и том же порядке. Таким образом, хост-устройство должно определить ориентацию кабеля, прежде чем что-то делать.
Хотя это не всегда так. У многих аксессуаров Lightning, которые мне попадались, в разъёмах зеркальная распиновка.
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 — номер поколения)
HiFive — это дочерний интерфейс Lightning, то есть штекерный разъём. Он также содержит логический элемент — этот чип известен как SN2025/BQ2025.
Эти два термина часто считают своего рода синонимами. Для удобства я буду использовать только термин 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 используется, когда это последний бит в байте
Используя приведённую выше таблицу теперь мы можем построить простой декодер протокола:
Теперь давайте рассмотрим этап данных на примере выше — 0x74 0x00 0x02 0x1f :
- 0x74 — тип запроса/ответа. Всегда чётный для запроса и нечётный для ответа (тип запроса +1)
- 0x00 0x02 — фактические данные. Может быть пустым
- 0x1f — это CRC8 как байта типа запроса, так и всех данных (полином — 0x31, начальное значение — 0xff)
И вот что появляется на IDBUS после запроса 0x74:
HiFive ответил! И если вы прокрутите дальше, то увидите много других пар запрос/ответ:
Некоторые запросы не нуждаются в ответе:
Самый важный запрос IDBUS — это 0x74, он используется для двух целей: чтобы приказать HiFive включить полное напряжение и силу тока (в случае, если оно поддерживается аксессуаром), спросить его о конфигурации контактов, которые поддерживаются кабелем, и некоторых других метаданных.
О том, как кодируются данные ответа 0x75, известно не так уж много. Но некоторые биты доступны в старой спецификации Tristar:
Первый байт данных ответа 0x75
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. Это 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, должен разрешить зарядку
Ещё одна особенность Tristar, о которой я хотел бы рассказать, — ESN. Это маленький блоб, который Tristar хранит в своём EEPROM (на CBTL1610A2 и более поздних версиях). Его можно получить по IDBUS с помощью кабеля Serial Number Reader (или Kanzi, они в основном одинаковые, за исключением разных USB-PID и немного отличающихся корпусов)
Что происходит на IDBUS при получении ESN, задокументировал @spbdimka:
Процедура «прошивки» ESN на Tristar называется подготовка (provisioning). Она происходит с диагностикой на стороне устройства, через EzLink на принимающей стороне в три этапа.
Вы можете проверить состояние с помощью diags:
… а также получить ESN:
Кстати, у diags вообще богатый набор команд Tristar (доступен, начиная с iOS 7):
Tristar доступен на шине I2C (адрес 0x34 для записи, 0x35 для чтения). Именно так diag и драйверы ядра с ним взаимодействуют.
О реестрах публично известно не так уж много. Много информации о самой карте регистра можно получить из утёкшего исходного кода iBoot (только для THS7383 — кажется, обратно совместимого с CBTL1608 — и CBTL1610), но не так много о том, что нужно туда записать, чтобы добиться каких-то интересных результатов.
Ещё одним источником знаний является модуль Tristar из diags (легко извлекаемый через SWD во время его работы). Например, мне удалось отреверсить алгоритмы чтения состояния подготовки и ESN. Затем я реализовал это как дополнение к моей нагрузке для iBoot под названием Lina:
Я также попытался изменить алгоритм записи ESN, но потерпел неудачу — механизм слишком сложный для меня. Однако фрагменты кода от Lina доступны здесь.
Сам Tristar питается от источника 1,8 В. Линии для IDBUS устойчивы к 3,0 В, согласно моему осциллографу:
Таким образом, без схемы сдвига уровня лучше не пытаться взаимодействовать с IDBUS с помощью устройств, устойчивых к 5 В, как некоторые модели Arduino.
штекер MagSafe
гнездо MagSafe
MagSafe — разъём питания для ноутбуков компании Apple. Впервые был представлен в сочетании с MacBook Pro на выставке Macworld Expo в Сан-Франциско 10 января 2006 года компанией Apple. Разъем MagSafe удерживается на месте магнитами, поэтому, если кто-то случайно заденет шнур, он просто и безопасно для ноутбука отсоединится.
Во время зарядки индикатор на разъеме горит оранжевым светом, при полном уровне заряда — зеленым.
Контакты разъема MagSafe спроектированы так, что прямоугольный разъем можно вставить в любой ориентации. Хотя MagSafe 45 Вт (MacBook Air), 60 Вт (MacBook) и 85 Вт (MacBook Pro) идентичны, Apple рекомендует использовать только родные адаптеры. Блок питания MacBook Air меньше, но разъем MagSafe такого же размера.
Apple владеет патентом США № 7311526, «Магнитный разъем для электронного устройства».
В середине 2012 года Apple изменила стандарт разъема питания. Новый разъем получил название MagSafe 2 и применяется на MacBook Pro с дисплеями Retina и на MacBook Air 2012 года. Характеристики блоков питания остались без изменений, новый разъем очень похож на предыдущий, но не совместим с ним механически, поскольку он тоньше и шире. Новый разъем неоднократно подвергался критике. Для использования старых блоков питания с новыми ноутбуками Apple продаёт переходник стоимостью около 10 долларов.
В новом поколении MacBook Pro, представленном в конце 2016 года, вместо разъема MagSafe используется USB-C, который не имеет магнитного подключения, а потому может быть не так удобен и безопасен, как MagSafe. В скором времени после этого появились аксессуары, расширяющие возможности USB-C. Кроме того, Apple подала заявку на патент адаптера с MagSafe на USB-C.
Как безболезненно разобрать адаптер
Чтобы разобрать зарядку от Macbook придется применить грубую силу, так как половинки корпуса приклеены к друг другу. Самый безболезненный вариант – воспользоваться пассатижами как показано в этом видео:
Мне удалось разобрать блок питания от своего Macbook Pro минуты за 2-3 (при этом большая часть времени ушла на поиск удобного упора для плоскогубцев). После этого все-таки остаются легкие следы вскрытия:
Не рекомендую бить по корпусу резиновым молотком или пытаться разрезать клеевой шов ножом – можно запросто повредить внутренности, т.к. внутри все очень плотно упаковано. Да и выглядеть это будет не очень эстетично.
После того, как корпус будет вскрыт, нужно тщательно осмотреть печатную плату на предмет выявления перегоревших дорожек, обуглившихся резисторов, вздутых или потекших электролитов и других аномалий.
Плата скорее всего будет залита каким-нибудь компаундом, его нужно аккуратненько удалить. И хорошо бы при этом не оторвать ничего лишнего.
Не помешает сразу же прозвонить предохранитель на 3.15А. Вот он, в коричневом корпусе:
Если предохранитель неисправен, то это, как правило, свидетельствует о пробое либо диодного моста, либо мощного MOSFET’а, либо их обоих. Эти элементы горят чаще всего, так как них ложится основная нагрузка. Их очень легко найти - они расположены на общем радиаторе.
Полезно также проверить конденсатор С1.
Если выбило полевой транзистор, имеет смысл проверить низкоомный резистор в цепи истока и всю схему снаббера (R5, R6, C3, C4, D2, два дросселя FB1, FB2 и конденсатор C7):
Во время ремонта блока питания Macbook настоятельно рекомендуется включать его в сеть 220В через 60-ваттную лампочку. Это предотвратит разрушительные последствия в случае короткого замыкания в схеме.
Будьте предельно внимательны! На высоковольтном конденсаторе длительное время может сохраняться опасное для жизни напряжение. Я один раз попался и это было крайне неприятно.
Если после замены неисправных элементов блок питания не запустился, то, увы, дальнейший ремонт зарядного устройства Apple Magsafe 2 невозможен без электрической принципиальной схемы.
Кстати, самый достоверный способ узнать, заработала схема или нет, - измерить напряжение на выходных электролитах. На рабочем адаптере там должно быть 16.5В:
Блок питания Apple Macbook 16,5V 3,65A 60W
Блок питания собран в небольшом корпусе из белого пластика. К ПК блок питания подключается при помощи специального штекера - для этого на боковой стенке MacBook есть соответствующее гнездо. Штекер имеет световую индикацию - так, если аккумулятор заряжается, индикатор светится оранжевым цветом; а если аккумулятор уже заряжен - зеленым цветом. Естественно в первую очередь напрашивается три варианта причин отказа:
1) Износ на конце кабеля - это самая распространенная проблема. Появляется ввиду того, что пользователь отключая зарядку от MacBook, тянет за кабель, а не за сам порт MagSafe.
2) Износ в основании кабеля. Возникает из-за неправильной обмотки кабеля вокруг блока питания.
3) Выход из строя контроллера подключения MagSafe. В данном случае зарядка иногда может заражать, а иногда нет.
Посмотрим, что со всем этим можно сделать. Для начала постарался не раскрыть, а буквально расковырять корпус БП, так как никаких винтов там нет, и вместо защёлок, как часто делают на пультах ДУ, например, просто всё заклеено по контуру.
Раскрыв наполовину, уже смог дотянуться тестером до контактов двух проводов, входящих в плату блока питания. Прозвонка показала короткое замыкание, которое исчезло после разрезания одного из проводников.
Понятно, что теперь придётся работать со штеккером. А штекер Apple Macbook оснащен оригинальным магнитным креплением - MagSafe Connector. Оно упрощает подключение зарядного устройства к ноутбуку (достаточно поднести штекер к разъему, как он сам начинает "тянуться" к правильной установке в разъем). А также делает процедуру зарядки аккумулятора более безопасной, ведь если во время зарядки шнур будет слишком сильно натянут - скажем, кто-то зацепит его ногой - то разъем самостоятельно отсоединится; а иначе ноутбук мог бы упасть со стола и поломаться.
Apple использует в своих ноутбуках интеллектуальные блоки питания, а это значит, что, помимо напряжения питания, есть информационный канал. В штекере блока расположена микросхема которая “общается” c мультиконтроллером (SMC) на материнской плате. Микросхема имеет область памяти в которую записаны данные о блоке (производитель, серийный номер, мощность и т.д), и, пока Macbook не “прочитает” эту информацию, он не будет работать от этого блока.
Читайте также: