Если у Вас на столе стоит программируемый блок питания RD Tech (Riden) серии DPS или DPH может пригодиться. Я завайбкодил разработал альтернативу вендорному софту: DPS Control, веб-приложение, которое работает прямо в браузере и ничего не требует устанавливать.
Как это работает
Приложение использует Web Serial API и общается с блоком по Modbus RTU напрямую. Открываете страницу в десктопном Chrome или Edge, втыкаете USB-UART адаптер, жмёте Connect, и всё. Данные идут только между браузером и адаптером, никакие сервера не задействованы.
Что умеет
Живые показания U / I / P и график в реальном времени
Запись логов в CSV (с выбором частоты записи)
Рампы и I-V sweep
Последовательности (sequences)
Автоотсечка по условиям
Группы памяти M0–M9
Сырая Modbus-консоль для любителей покопаться
Светлая и тёмная темы
Esc мгновенно выключает выход и останавливает все запущенные инструменты
Симулятор: можно попробовать всё без железа
Совместимость
DPS5015, DPS5020, DPS3005, DPS5005, DPS8005, DPH5005. Модель определяется автоматически по регистру 0x0B. Список устройств лежит в devices.json, так что добавить свою модель несложно.
На реальном железе проверен пока только на DPS5015. Остальные модели проверялись на симуляторе, а регистры и масштабирование взяты из документации и сторонних проектов. Если у вас другая модель и показания тока вдруг отличаются в 10 раз, напишите, поправим.
Подключение
TX → RX, RX → TX, GND → GND, а VCC не подключать. Нужен адаптер на 3.3 В (CP2102, CH340, FT232 в режиме 3.3 В). Блоки продавались и в комплекте с коммуникационным модулем
Решил выкатить пост о наболевшем, потому что у меня уже натурально пухнет голова, а логика происходящего ломает мозг. Сразу сделаю важную оговорку: я не крутой сервисный центр с нижними подогревами за сотни тысяч, микроскопами и тепловизорами. Все, что у меня было под рукой - это обычный деревянный стол, простенький китайский тестер, дедовский паяльник, обычная швейная иголка для ниток и дикое упрямство докопаться до сути.
Суть проблемы: ко мне в руки попала свежая PlayStation 5 Slim (ревизия CFI-2115, материнская плата EDM-052). И по этой плате в интернете вообще практически нет никакой информации. Такое ощущение, что она ломается только у меня одного.
После сервисного центра, отдали туда её сначала, "меняли" термопрокладки и жидкий металл
При этом консоль ведет себя так, что стандартные форумные советы разбиваются в дребезги. Я пока так и не знаю на все 100%, кто именно виновник торжества, поэтому очень рассчитываю на коллективный разум и опыт практикующих мастеров.
Давайте по порядку, как все развивалось.
Мистика поведения: стримы сутками и внезапная кома в играх
Консоль подключена к обычному монитору и ведет себя крайне избирательно:
Включаешь Twitch и смотришь трансляции часами - плойка еле шепчет, корпус холодный. Запускаешь Sims 4 - можно играть весь вечер напролет без единого чиха или зависания. Вентилятор едва шуршит.
Но стоит запустить нативные игры для PS5, начинается форменная чертовщина.
Когда я только забрал консоль, решил проверить ее на минимум нагрузки: отключил все HDR, принудительно выставил разрешение 1080p в настройках монитора, вырубил все улучшайзеры. Запустил Hell is Us (игра чисто под PS5). И плойка неожиданно отыграла целых 3.5 часа без единого сбоя! Это был наш абсолютный рекорд. А потом - бам, и экран погас.
Дальше начались странности. Скачал Dying Light 2 - на любых настройках графики консоль не держится больше 10 минут. В базовой Astro's Playroom стабильно вылетает через полторы-две минуты.
При этом на мониторе никогда не появляется системное предупреждение о том, что PS5 перегрелась! Картинка просто резко исчезает, монитор уходит в режим ожидания. Белый светодиод на передней панели продолжает светиться, вентилятор бодро крутится еще секунд 5-10. И только потом консоль тихо, без всяких щелчков, полностью обесточивается.
Если нажать на кнопку включения сразу после вылета - один короткий «пик», и тишина. Ждем секунд пять, жмем второй раз - плойка оживает, издает три сигнала о некорректном выключении и начинает восстанавливать файловую систему накопителя.
Базовые догадки: жидкий металл и замер 12V на лету
Первое, о чем кричат все форумы - это жидкий металл. Мол, он стек, образовалось сухое пятно, процессор ловит перегрев и рубит питание.
Разбираю. Пятно контакта процессора Oberon Plus и радиатора ровное, металл никуда не убежал. Для очистки совести аккуратно его разровнял и собрал все обратно. Запуск - в Astro's Playroom снова пара минут, и темнота.
Все в норме, в этих ревизиях на процессоре устанавливается специальная "губка", которая не дает ЖМ вытечь, а распределяет равномерно по всему кристаллу
Вторая теория - блок питания ADP-400JR просаживает силовую линию 12 вольт под нагрузкой.
Полностью в отличном состоянии
Решил проверить это инструментально. Подпаял два проводка напрямую к контактам 12V на плате, вывел наружу к мультиметру и запустил плойку. В меню тестер показывает ровно 12.08 вольт. В игре напряжение стоит как вкопанное: 12.06 - 12.08 вольт. В момент, когда экран гаснет, на приборе те же самые 12.07 вольт! Никакой просадки по питанию нет.
Стало ясно: пока сама консоль не скажет, на что ругается, гадать бессмысленно. Пришлось лезть в Syscon через UART.
Драма на деревянном столе: как я оторвал пятак TX
Заказал самый дешевый USB-UART адаптер за 200 рублей. Перемычку логических уровней переставил строго на 3.3 вольта, провод питания VCC отрезал, так как плойка запитывается от своей дежурки.
Самый обычный uart, провода я потом перепаял в нижние контакты
На плате EDM-052 точки сервисного порта находятся в углу возле антенных разъемов. И вот тут случился кошмар любого наколенного мастера. Паяльник у меня дедовский, жало широкое. Пока крепил провода и двигал плату по деревянному столу, провод натянулся, и пятак TX сорвало с платы с корнем. До голого текстолита.
Оторванный пятак, я ненавижу это чувство
Никакого микроскопа у меня нет, и лупы тоже не было. Зрение у меня не самое острое, поэтому пришлось буквально носом уткнуться в плату. Взял обычную швейную иголку для ниток, кончиком иголки вслепую нащупал край медного перехода (via) и слегка зачистил его. Тем же толстым дедовским паяльником чудом удалось припаять тончайшую волосинку от медного провода к этой точке. Сверху капнул каплю обычного универсального клея, который валялся на полке в гараже, чтобы провод снова не оторвало.
Да косо криво, но хотя бы работает)
Подключаю адаптер за 200 рублей к компу, открываю терминал на скорости 115200 бод... И чудо! Строки побежали. Плойка вышла на связь.
Что показали логи Syscon
Снял логи через ForterFix и Dony's UART Tool. В момент краша в логе стабильно повторяется одна и та же картина:
Сначала прописывается ошибка B0088108. База расшифровывает ее как Sonics Bus Error (сбой шины обмена данными), с припиской: «Check XDPE IC».
Даже программа не знает че здесь не так, как говорится известно-неизвестно
Ровно через три секунды следом прилетает ошибка 808B0000 (SSD Controller Watchdog Timer / Read Titania PMIC Register).
Следом идет 80830019 (сбой по шине питания), и только после этого Syscon выключает плату.
При этом датчики температуры кристалла APU в момент краша показывают от 50 до 77 градусов. А аварийный порог перегрева в PS5 (ошибка 80950000) срабатывает только при 98 градусах! То есть никакого перегрева кристалла процессора нет даже близко.
Стала понятна задержка выключения: сначала по шине отваливается видеоядро или его питание, картинка на мониторе тухнет. Процессор зависает. Контроллер SSD опрашивает зависший проц, ответа не получает и через 3 секунды по таймауту дает команду аварийно вырубить питание, чтобы не запороть память.
Замеры и 70 минут эйфории на жидких термопрокладках
Померил сопротивления тестером: Дроссели питания видеоядра и процессора показывают 2.0 - 2.1 Ом. Питание логики SoC - около 4.1 Ом. Питание памяти GDDR6 (1.35V) - 21.5 Ом (короткого замыкания в банках памяти нет).
Картинка просто будет, типа я мерю омы
Тогда я решил проверить: вдруг от температуры плывет какой-то компонент в цепях питания или банках памяти? Купил банку жидких термопрокладок SmartMaster Pro и щедро нанес их на чипы памяти GDDR6, сборки DrMOS и контроллеры питания.
Ну произведение искусства же)
Собрал консоль полностью на холодную: закрутил все металлические экраны, вставил обратно белые декоративные панели, надеясь, что штатный продув корпуса сделает только лучше.
Запускаю Astro's Playroom на холодную. Проходит две минуты - работает. Проходит пятнадцать минут - работает! Консоль непрерывно крутила игру целых 70 минут! Я уже сидел и думал, что победил проблему нормальным термоинтерфейсом.
Но на 70-й минуте экран снова тухнет, вентилятор крутит еще несколько секунд, и приставка выключается. Все с той же ошибкой B0088108. На горячую после этого она снова вылетает буквально за 3-5 минут, а в Dying Light 2 не выдерживает и десяти минут.
В чем может быть реальная проблема? Вопрос к Лиге Ремонтников
Вот здесь мои гаражные методы окончательно зашли в тупик. По плате EDM-052 никакой информации и схем нет вообще.
С одной стороны, ошибка B0088108 указывает на шину многофазного ШИМ-контроллера Infineon XDPE14286A, который питает ядро. Но это лишь зацепка из программы, а не железный факт.
Меня не отпускает вопрос: почему на холодную консоль смогла отработать 3.5 часа в Hell is Us и 70 минут в Astro's Playroom, а по мере общего прогрева платы время работы сокращается до пары минут?
В голове крутится несколько вариантов:
Термическая деформация текстолита или микротрещина в пайке. При длительном нагреве плата расширяется, и может нарушаться контакт под массивным земляным брюшком (EPAD) контроллера Infineon или шарами BGA под процессором.
Внутренняя деградация кристалла самого ШИМ-контроллера Infineon, который при нагреве начинает сбоить по цифровой шине под тяжелыми токами в нативных играх PS5.
Проблема в одной из фаз DrMOS, которая при температуре дает помехи или шум в обратную связь шины.
Частичный отвал контроллера памяти внутри самого процессора.
Человеки, кто вживую ковырял свежие платы Slim (EDM-040 и EDM-052): с чем чаще всего связана такая циклическая беда? Стоит ли искать донора и менять XDPE (и нужно ли его шить программатором, или он подхватывает настройки по шине?), или при таких симптомах дело чаще пахнет реболлом комбайна?
Буду очень благодарен за дельные мысли и практический опыт. Любые замеры, если нужно, могу сделать и докинуть в комментарии.
Сегодня забрал 12-пиновый 0.5 мм шлейф (длина 300 мм) и 4-пиновый межплатный кабель питания BLS 2.54 мм (тоже длина 300 мм). Кабель питания разрезал пополам - он идеально сел на три контакта USB-to-UART переходника, зачистил отрезанные концы, нарастил красный провод (это земля). Аккуратно надрезал шлейф на двух последних контактах, подцепился к получившимся двум полоскам двумя черными проводами - это Rx и Tx контакты.
Модернизация способа подключения к UART
Открыл в Putty подключение по последовательному порту (у меня COM6).
Настройки сессии в Putty
Перезагрузился в окно Putty полетели логи:
Начало загрузки
В процессе
Окончание загрузки
Обратите внимание на последние четыре строчки лога:
Появляется приглашение пользователя root, можно ввести и выполнить команду, но через несколько секунд консоль блокируется и ввод тоже.
Например, успел выполнить команду для вывода всех установленных в системе пакетов:
Список установленных пакетов - часть 1
Список установленных пакетов - часть 2
Сама система дебианоподобная с deb-пакетами (Установлен apt и dpkg).
Пользовательские приложения (CoolReader - почему-то не понял как запускать и FBReader для чтения fb2 и epub - пробовал, открываются; LoCoPDF для открытия pdf и djvu, а так же ряд других приложений) :
ii cr3 3.0.19-5+b1 e-book reader
ii fbreader 0.10.7-14 e-book reader
ii fbreader-setti 0.10.7-14 n516 specific settings
ii locopdf 0.1-20 PDF reader for e-Ink devices
ii locopdf-settin 0.1-20 PDF reader for e-Ink devices -- N516 keymap
ii madaudio 0.2-11 Audioplayer application
ii madeye 0.1-15 Image viewer for e-Ink devices
ii madeye-setting 0.1-15 Image viewer for e-Ink devices -- N516 keyma
ii madshelf 0.2.41 Bookshelf application
ii madshelf-setti 0.2.41 Bookshelf application -- N516-specific confi
Модули ядра:
ii linux-modules- 2.6.29-32 Linux kernel modules for Hanvon N516
Иксы:
ii nulldm 0.1-6 trivial X display manager
ii uuwm 0.1-10 micro-micro window manager
ii x11-common 1:7.3+14 X Window System (X.Org) infrastructure
ii xinit 1.1.1-1.ip1 X server initialisation tool
ii xkm-data-v3 1.5-4 (XKB) configuration data, compiled (Hanlin V
ii xserver-xfbdev 2:1.6.0-6 Linux framebuffer device tiny X server
Сеть:
ii dropbear 0.51-1.ip3 lightweight SSH2 server and client
ii ifupdown-scrip 0.6.7.zz.ip1 scriptss to configure network interfaces
ii netbase 4.34.ip.2 Basic TCP/IP networking system
Неожиданно, что внутри есть Dropbear - единственный вариант подключиться по ssh - это через usb -кабель (WiFi в этой книге нет).
Автозагрузку можно отключить нажав любую клавишу в окне Putty.
Остановка в процессе загрузки
Появилось приглашение загрузчика и можно выполнять команды:
Список команд загрузчика
Просмотр переменных окружения:
Нужно модифицировать boootargs
Устанавливаем и сохраняем новое значение:
Сохранение новых bootargs
Продолжить загрузку можно командой boot.
Но консоль блокируется из-за засыпания процессора:
Разум засыпает
Что сейчас нужно сделать:
Разобраться с тем как отключить отключение консоли (через no_console_suspend).
Посмотреть настройки сети (помнится ip был прописан в bootargs). В переменных среды указаны два адреса ipadr=192.168.111.1 и serverip=192.168.111.2. Но конкретно эти адреса могут быть использованы, насколько я понял, для сетевой загрузки. В процессе же загрузки в логе появляются ошибки связанные с сетью.
Теперь консоль отключается из-за засыпания процессора - нужно разобраться с этим, но вывод команды find . был записан в лог putty - собственно из-за чего все затевалось. можно теперь пробывать подключаться к Hanvon N516.
Попробовать подключиться по ssh (по Ethernet over Usb).
Первый пункт, как мне кажется самый сложный - дальше разберемся.
Шлейф мне еще пригодится для подключения к Hanvon N516.
Как лучше обеспечить надежное подключение к UART порту? Верхние два пина разъема J1 (всего насчитал 46 контактов) - это Rx и Tx этого порта. Смог снять лог загрузки электронной книги подключившись через приложение Putty через такой вот usbtouart на скорости указанной в bootargs.
Красный провод - земля (приклеивал малярным скотчем к корпусу USB порта), белый - Rx (прижимал иголку к пину Tx разъема J1)
Не ругайте за такой колхоз (использовать иголку посоветовал гугл в режиме ИИ).
Цель обеспечить надежное соединение как Tx, так и Rx и освободить руки.
Буду рад любым предложениям.
Нужные контакты разъема
J1 предназначен для подключения плоского шлейфа. Что если вставить в разъем шлейф, а подключаться уже к контакным площадкам этого шлейфа? Не знаю только как определить параметры шлейфа - тут, наверное, главное шаг контактов. И еще вопрос что-то не нашел шлейфа именно на 46 контактов, можно ли использовать с меньшим количеством, например, на 10 или 12 пинов, мне по факту только два нужны.
Обшая проблематика: есть полетный контроллер JHEMCU GHF420AIO ESC 35A (на нем собран квадрокоптер 2.5" - летает вполне успешно). Сама плата собрана на микроконтроллере stm32f405rgt6.
В нем нет встроенного барометра. Хочу приколхозить типа BMP 280 (или аналог). Подключается по I2C.
Официально заявленные протоколы и выведенные физически - UART
В нем нет встроенного барометра. Хочу приколхозить типа BMP 280 (или аналог). Подключается по I2C.
Как мне подключить барометро к шине I2C?
Иои UART подразумевает такое поключение по линия передачи данных?
Недавно придумал. В железе правда еще не воплощал, но на модели (MULTISIM) принцип работает.
Может кому идея пригодится, ну и если будет толковаякритика - тоже готов выслушать.
Пояснения:
TX - передаваемые данные (от UART),
RX - принятые данные (к UART),
LINE - однопроводная двунаправленная полнодуплексная линия связи. С другого конца которой - предполагается аналогичная схема.
Принцип действия основан на анализе потребляемого вторым абонентом тока, если ток есть- значит выдаваемый им уровень не совпадает с "местным" TX, и срабатывает инвертор на одном из транзисторов.
D1- ADM3202, MAX232, и т.п. стандартный приемопередатчик RS232
транзисторы - практически любые сигнальные биполярники, например BC847/857, теоретически можно и полевики всобачить, но сдается мне что емкость затвора - тут будет злом в плане быстродействия.
Инвертор - любой логический инвертор. Условно показан 1554ТЛ2 ака 74АС14. Но можно все что угодно.
UPD: По замечаниям в комментах, просимулировал емкостную нагрузку линии. Чуть добавил рассыпухи для устранения влияния емкостных нагрузок.
Подправленный вариант схемы работает до полумегабита при емкости на линии 5000пф и до 300Кбит при 10 000пф на линии.
Изначальный вариант схемы - оставлю, т.к. он удобнее для понимания принципа работы. Но если делать - то, естественно, надо брать второй.
Поломалась приставка, стоит картинка загрузки (perteo на белом фоне) бесконечно. Хотел подключится во uart и посмотреть что пишет, а на плате контакты не могу найти... Может кто сталкивался с подобным
Обратную сторону сфоткал исключительно потому, что без неё скажут "где фото обратной стороны? контакты там 100500%"
Надписей нет, это очевидно. Но может есть какие-то хитрости - общепринятые выводы процессора, характерные подтягивающие резисторы?