Многие любят весной полечить гиповитаминозы Обращаем внимание, что при выборе витаминных комплексов следует обращать внимание на то, что некоторые минералы и витамины между собой не совместимы, либо одно вещество снижает усвоение другого. Также может быть и обратная ситуация - один нутриент помогает усвоиться другому быстрее.
Ещё на заметку-при покупке комплексов витаминов и минералов обращайте внимание на суточную дозировку препарата и сравнивайте ее с суточной потребностью. Часто бывает, что они не совпадают. В соответствии с этим дозу БАДа нужно увеличить или уменьшить. В таблицах выше на первой фотографии указано положительное взаимодействие, а на второй-отрицательное. Это лишь часть всей биохимии витаминов
⬇️ Если заинтересовал наш пост можете посмотреть больше у нас ⬇️ https://t.me/MolDe_Vita/360 - Подпишись, если понравилось, и получай больше информации о своем теле, которая может укрепить твое здоровье
Собираюсь покупать Ноут, я хочу на нем гамать, во многие новинки, а самое главное это в CS2, посоветуйте пожалуйста какое железо подойдёт? С минимальным бюджетлом, смогу ли я найти достойный вариант бу за 20к если нет, то бюджет можно до 30к раздуть, а за 30к можно и новый купить я так понимаю, или взять бу за 30к,в покупки бу есть риски, возможно дадут кредит, но нужен такой вариант чтоб и быстро не устарел и цена была не овер 99к и даже не 70к, помогите пожалуйста! Благодарочка вам пикабутяне!
Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей используя протокол MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать в статью!
❯ Виды дисплеев и их протоколы
Пожалуй, ЖК-дисплеи с самого момента их появления стали основным инструментом для вывода информации и взаимодействия с пользователями. Первые ЖК-панели были монохромными и требовали отдельный драйвер, который занимался выводом изображения на экран и формированием необходимых для его работы напряжений.
Сейчас же всё гораздо проще и каждый любитель DIY-электроники может и сам подключить дисплейчик к своему проекту и использовать в необходимых ему целях. Ведь не зря написаны десятки библиотек по типу AdaFruit LCD, которые упрощают задачу программисту и дают ему возможность оперировать готовыми и простыми операциями по типу «вывести линию» или «отрисовать изображение». Однако, готовые библиотеки — это, конечно, здорово, но они не всегда дают понимание о том, как работают такие дисплеи на программном и аппаратном уровне. И первая часть статьи как раз и будет посвящена этому.
Всего в мире дисплейных матриц существует несколько общепринятых аппаратных протоколов. Некоторые из них можно легко использовать в собственных проектов с микроконтроллерами, с другими придется повозиться:
Параллельная шина 8080 — одна из самых простых и понятных шин данных, как в теории, так и на практике. Суть её очень простая: на каждый бит отводится по одной сигнальной линии, плюс две дополнительные линии для сообщения статуса передачи: RD означает запрос чтения, а WR — запрос на запись. Большинство дисплеев использует девятый, неявный бит D/C, который сообщает контроллеру, задаём ли мы номер команды, или уже пишем аргументы для этой команды. Что самое приятное — шина по сути стандартизирована и во многих дисплеях команды на старт записи в видеопамять, а также получение ID-контроллера идентичны. Шина бывает 8-битной и 16-битной (её состояние задаётся битами IM0..IM2 и используется не только для подключения дисплеев, но и микросхем параллельной флэш-памяти, ОЗУ и т. д. Такие шины используются в дисплеях с разрешением до 480x320.
SPI — шина, которая наверняка знакома большинству моих читателей. Достаточно простая — у нас есть две сигнальные линии с входным (MISO) и выходным (MOSI) битом, плюс сигнал тактирования, который согласовывает передачу данных. Таким образом, шина получается полнодуплексной. Фактически, каждый байт передаётся по одному биту через одну сигнальную линию, что, по сравнению с 8080, заставляет повышать тактовую частоту контроллера SPI, но при этом занимает гораздо меньше пинов самого МК или процессора. В программном плане, большинство дисплеев представленных в различных интернет-магазинах полностью совместимы с дисплеями 8080, ведь SPI — просто один из режимов работы. Единственный нюанс — из SPI дисплея не всегда можно вычитать ID-контроллера и вообще что-либо читать из регистров дисплея.
I2C — относительно редко используемая шина для дисплеев из-за её невысокой производительности, однако, тем не менее, очень подходящая для МК (благодаря использованию только двух сигнальных линий — SDA для данных и SCL для тактирования. Даже чипселект здесь программный благодаря тому, что каждое устройство имеет собственный адрес!), однако её можно найти в дисплеях некоторых телефонов из самого начала 2000-х годов.
TTL/параллельный RGB — тут, в общем-то, меня упрекали пару раз из-за того, что я продолжаю называть её TTL, но так сложилось исторически — даже в даташитах эту шину называют именно так. С логической точки зрения она очень простая: у нас есть 16/24 сигнальные линии, где 5 (или 8) бит используются для красного и синего канала и 6 (или опять же 8) бит используются для зеленого цвета (т. е. в 16-битном цвете у нас RGB565, а в 24-битном — RGB888). К ним идут сигналы HSYNC для горизонтальной синхронизации и VSYNC для вертикальной. Вообще, необязательно использовать все сигнальные линии предоставляемые дисплеем — можно использовать, например, RGB332 и использовать всего 8 сигнальных линий. Однако для отображения картинки, необходимо строго соблюдать тайминги синхронизации, иначе дисплей будет просто показывать белый цвет. Помимо цифрового варианта, бывает также аналоговый, очень похожий на телевизионный RGB или VGA. Такие дисплеи обычно используются для матриц до 1024x768 включительно.
MIPI DSI — протокол, используемый для дисплеев высокого разрешения — от 480x800 и выше, его можно встретить в большинстве современных смартфонов и планшетов. Кроме того, такие дисплеи используют относительно мало пинов — по два на каждый канал LVDS (обычно в смартфоне около двух-четырех каналов) + две сигнальные линии на тактирование. Звучит всё хорошо? Как-бы не так: протокол дифференциальный и на каждый канал (т. е. логический бит) приходится по две сигнальные линии — одна с положительная, а вторая отрицательная. Затем одна вычитается из другой и получается окончательный сигнал, а сделано это для уменьшения помех от передачи данных по нескольким линиям с очень высокой тактовой частотой без увеличения битности шины.
LVDS/eDP — Протоколы, используемые в матрицах ноутбуков, телевизоров и иногда планшетов. На физическом уровне близки к DSI, на программном — если честно, не знаю, но наслышан о некой стандартизации и высоком уровне совместимости. Даже «неродные» ноутбучные матрицы вполне «заводятся», максимум после перепрошивки родной EEPROM, даже если дисплей другого разрешения!
В списке выше, мы рассмотрели несколько популярных аппаратных шин для дисплеев. В данной статье, мы разберемся в программных особенностях таких дисплеев и узнаем, где взять по дисплею одного из следующих типов: SPI, I2C, а также 8080.
❯ Виды дисплеев и их протоколы
Пожалуй, писать статью, где были бы только готовые примеры без объяснения принципов работы «под капотом» было бы плохим тоном. Поэтому предлагаю немного разобраться в системе команд для самых распространенных контроллеров дисплеев в наше время.
У рассматриваемых нами дисплеев есть собственная видеопамять, благодаря чему нет необходимости соблюдать тайминги, а также общий набор команд (или аппаратных регистров), которые мы можем записывать и тем самым менять поведение дисплея. Если мы просто подадим питание на дисплей и попытаемся что-то вывести — у нас ничего не выйдет, поскольку при каждом аппаратном RESET'е, состояние большинства регистров, кроме SleepOn и PowerOn не определено и может содержать в себе любой «мусор». Для корректной работы дисплея, нам необходимо послать определенный набор команд, называемый инициализацией, который установит настройки драйвера дисплея, такие как контраст, параметры цветности, направление развертки изображения из VRAM и т. д. Пожалуй, стоит сразу отметить, что некоторые люди называют регистры дисплея командами — это означает одно и тоже!
Пример инициализации. На самом деле, не все люди делают такую простыню из вывозов функций чтения/записи регистров дисплея, поскольку это кушает драгоценный ROM. На AVR, например, команды инициализации можно хранить в ROM и читать из PROGMEM.
Если дисплей инициализирован неправильно, то мы можем наблюдать некорректную развертку, артефакты на дисплее и полосы: если вы когда-нибудь прошивали смартфоны прошивками других ревизий, то могли замечать подобный эффект сами.
Набор команд для контроллеров дисплеев частично стандартизирован спецификацией MIPI DBI, которая описывает и закрепляет некоторые конкретные адреса регистров, общие для всех контроллеров дисплея. К ним относится, например, установка «окна» для записи (0x2B и 0x2A), sleepout (0x11) и некоторые другие. Проприетарными командами остаются настройки питания, развертки, контраста и самого драйвера дисплея. Ну и всяческие LUT, а также палитровые режимы (если они есть) тоже проприетарные.
Пример одной из таких стандартизированных команд:
Почти во всех дисплеях есть разделение отправляемых байтов на команду (или выборка номера регистра для чтения/записи) и на данные. Как обработать текущий байт определяет отдельный пин (или бит, в зависимости от конфигурации дисплея), называемый D/C (Data/Command), иногда также можно встретить названиеRS. Обычно, при записи команды, D/C должен быть на низком уровне, при записи данных, соответственно, на высоком. Суть простая: записываем номер команды (или регистра) при низком D/C, а затем дописываем необходимые аргументы (или конфигурацию регистра) при высоком уровне D/C. Примерно так:
Касательно сброса, то в дисплеях обычно существуют два вида этого процесса: аппаратный сброс через соответствующий пин и программный с помощью специальной команды. Пин RESET никогда нельзя оставлять в «воздухе» (т. е. не подключенным) в надежде что «да состояние пинов МК после ресета известно, мусора на шине явно не будет». Мусора может и не будет, а вот дисплей упадет в вечный ресет, поскольку ожидает перехода сигнала RESET в высокий уровень. Тоже самое касается и пина CS, отвечающий за выбор устройства на шине. Если вам не нужен CS и у вас висит только одно устройство на шине — просто притяните его к массе. Некоторые контроллеры (например, ILI9325) адекватно реагируют на CS «в воздухе», некоторые — нет. Только после того, как RESET оказался на высоком уровне, дисплей начнёт принимать команды:
Переходим конкретно в выводу данных. Для начала вывода изображения на дисплей, нам необходимо выполнить команду 0x2C, которая переведет контроллер дисплея в режим записи данных в видеопамять. После этого, нам остаётся лишь установить высокий уровень на пине D/C и просто слать непрерывный поток пикселей. Контроллер дисплея сам инкрементирует координаты на дисплее и после того, как координаты выйдут за границы нужной области, дисплей сам их переведет в изначальные. Таким образом, достаточно лишь один раз проинициализировать дисплей и просто гонять в него данные, например, с помощью DMA.
Всё просто и понятно :)
❯ Дисплеи с шиной 8080
Пожалуй, подобные дисплеи найти проще всего, поскольку они использовались в большинстве кнопочных телефонов из нулевых. Такие экранчики можно встретить во многих моделях Nokia, Samsung, LG, Fly, Sony Ericsson и большинстве китайских телефонов. С поиском распиновки и разводкой таких дисплеев всё относительно просто и одновременно сложно: на некоторые модели телефонов (например, почти на все Nokia) можно свободно найти схему в гугле и узнать распиновку коннектора дисплея… однако этот коннектор сначала надо сдуть и развести на breakout-плате, или под микроскопом вывести перемычки. В некоторых случаях (например, Siemens S-серии), дисплей просто прижимался к контактам на плате, а сами контакты имели более чем паябельный шаг.
Из схемы на Nokia N70. Этот дисплей применялся во многих Symbian-смартфонах Nokia тех лет: N-Gage/N-Gage QD, N70, N72, 6600 и некоторых других.
Но особо удобными можно считать дисплеи с паябельными шлейфами с большим шагом пинов — такие можно встретить в некоторых телефонах Samsung и большинстве китайских телефонов. Пытливый читатель спросит «так это ж китаец, где ты на него схему будешь искать?». И вот тут, китайские производители нас приятно порадуют, поскольку за редким исключением, такие дисплеи имеют стандартизированную распиновку: лично мне известны матрицы 37 Pin, 39 Pin и 44 Pin. Как найти для них распиновку? Пишем на «алике» или «таобао» 37 pin lcd tft и смотрим: в описании продавец частенько прилагает распиновку (правда учтите, что 37 pin не имеет пинов IM для настройки ширины шины, а 16-битный интерфейс может быть слишком прожорилвый по числу пинов):
В случае с китайцами, иногда можно найти и схему (нажимайте на зеленую стрелку) на устройство: например, почти на все модели Fly схемы лежат в свободном доступе, где почти всегда можно найти распиновку дисплея. Иногда производитель даже выводит тестпоинты на все сигнальные линии и дисплей с тачскрином можно использовать, не выпаивая его с платы!
Распиновка на Fly IQ239. На нижней части изображения, вы можете увидеть, что такие, безусловно, здоровенные дисплеи можно купить за копейки и сейчас :)
Но задумывались ли вы когда-нибудь, откуда на тачскринах в дисплеях с «али» взялись кнопки «домой», «сообщения», «телефон»? Это ведь те самые дисплеи, которые использовались в «ноклах», просто припаянные к удобной плате! :) Кроме того, на китайские дисплеи без проблем можно найти даташит: обычно они используют контроллеры от ST или ILI, в зависимости от разрешения дисплея.
Концептуально, аппаратная реализация протокола одновременно простая и понятна любому: программа устанавливает состояние каждого бита передаваемого байта на сигнальных линиях D0..D7 (либо D00..D15, если шина у нас 16-битная), а затем просто «дёргает» линию RD (Read или чтение), либо WR (Write или запись) по переходу из низкого уровня в высокий, благодаря чему контроллер дисплея понимает, что байт (или слово в случае 16-битного интерфейса) можно «забирать» с шины. По переходу из высокого уровня в низкий, контроллер снова переходит в режим ожидания следующего байта с шины.
Где взять такие дисплейчики? Да почти везде! Но лучше всего брать дисплеи с китайчиков, которые можно развести на вот таких breakout-платах, которые можно заказать на алике за пару сотен рублей.
Обратите внимание на то, как по свински припаивают подсветку на некоторых дисплеях. И это завод! Лучше сразу прозвоните прежде чем подавать питание. Я, вот, забыл, понадеялся на производителя и по итогу сжёг подсветку :(
Другой вопрос, где искать на них информацию? Помимо схем, можно просто поискать на алике «37 pin lcd tft», «39 pin tft lcd», «24 pin tft lcd» и т. п. Обычно продавцы сами выкладывают распиновку и даже прикладывают ID контроллера дисплея. Поскольку иногда различия в распиновках всё же попадаются, обращайте внимание на то, куда у вас идут дорожки от подсветки и от резистивного тачскрина (если есть), а также вызванивайте все пины с массой — это поможет подобрать правильную распиновку без логического анализатора. Вот, например, дисплейчик из китайской нерабочей реплики Nokia 130 с здоровым 2.4" дисплеем… казалось бы, вообще не понятно что за дисплей, однако воспользовавшись смекалкой, мы находим его распиновку!
❯ SPI-дисплеи
SPI-дисплеи в телефонах встречались относительно редко. В основном, подобные дисплейчики можно было найти в моделях начала 2000х годов: сименсах, моторолах, ранних сонериках T-серии и Nokia на S40. Иногда SPI-дисплеи можно встретить в современных кнопочных телефонах — обычно они имеют шлейф с менее чем 15 пинами, как некоторые модели Fly. Обычно контроллер дисплея поддерживал сразу несколько аппаратных шин, а производитель телефона ещё на этапе установки шлейфа к контроллеру дисплея замыкал необходимые IM-пины выбирая необходимую шину, поэтому программный протокол фактически идентичен дисплеям с шиной 8080.
Несомненным плюсом SPI-дисплеев можно назвать малое число пинов для работы с матрицей: достаточно всего два (плюс сигнал D/C, если дисплей не 9-битный), если повесить RESET на VIO, либо три (четыре), если хотите управлять аппаратным RESET вручную. Но есть и, в некоторой степени, минусы: например, не все микроконтроллеры умеют работать в 9-битном режиме и возможно последний бит придётся досылать «ногодрыгом» (что ломает любую возможность реализации DMA).
Многие дисплеи с этим интерфейсом задокументированы ещё в начале 2000х годов на известных форумах и сайтах, таких как VRTP, Радиокот и easyelectronics, поэтому проблем с их подключением не возникнет даже у новичка. Даже такой крутой и уважаемый дядька, как @DIHALT, когда-то писал полезный материал об использовании FSMC в STM32.
Достать их новыми можно и сейчас: различные магазины запчастей для телефонов бывают продают их по 20-30-40 рублей… Я недавно себе целую коробочку накупил, в том числе и просто для ремонта смартфонов для будущих статей :)
❯ I2C-дисплеи
Дисплеи с такой шиной — настоящая редкость и обычно попадались в телефонах самого начала нулевых годов с низким разрешением дисплея. Из известных мне — Ericsson'ы и ранние Sony Ericsson T-серии, ODM Motorola (головастики например) и… пожалуй всё. Казалось бы, разве I2C может быть полезен для работы с дисплеями, где требуется активный вывод графики? Ведь он совсем медленный! Однако, даже он может пригодится для некоторых проектов, а в большинстве МК частенько попадается аппаратный TWI.
Кроме того, I2C дисплейчики удобно отлаживать: благодаря тому, что периферийное устройство должно отрапортовать ACK (состояние успешности получения байта) мастер-устройству, можно сразу определить обрыв линий до дисплея. Но какой-то конкретной информации по ним я не смогу написать — они все совсем разные :( Правда, полезным линком поделюсь, ребята с форума VRTP собрали хорошую таблицу с различными контроллерами дисплеев, где бывают и i2c!
❯ Подсветка
Отдельного радела стоит тема подсветки дисплеев. По первой может показаться, что тут всё просто: современным дисплеями достаточно 5В, а на старых можно замерить напряжение бустера на живом девайсе и смастерить свой DC-DC повышающий преобразователь, или взять, например, уже готовый драйвер, как известный в определенных кругах LTYN. На самом деле и тут есть свои нюансы.
Итак, каким образом реализована подсветка в том или ином устройстве? Обычно её реализация заключается в последовательном соединении двух и более светодиодов, которые формируют небольшую ленту под рассеивающей плёнкой. На современных китайских дисплейчиках, для работы в полную яркость достаточно всего лишь 5В источника питания + токоограничивающего резистора. Но что самое приятное, подсветка в таких дисплеях способна работать и при 3.3В, пусть менее ярко, но всё равно вполне читабельно.
Если вы делаете портативное маломощное устройство, работающее от одного Li-Ion аккумулятора, то достаточно лишь пустить 3.3В с линейного стабилизатора, который формирует напряжение VSYS для микроконтроллера. Таким образом, у вас будет стабильная подсветка среднего уровня яркости. В качестве альтернативного «бомж» варианта, когда нет возможности собрать нормальный драйвер подсветки, можно попробовать подключить светодиоды напрямую к АКБ, но при разряде дисплей будет потихоньку «тухнуть». Ещё один «бомж» вариант — разобрать дисплейный модуль, порезать дорожки на ленте и соединить пару светодиодов параллельно, выведя их через отверстие, откуда выходит шлейф дисплея, однако в таком случае, потребление подсветки заметно увеличится.
Правильным выходом будет взять с того-же телефона бустер подсветки с индуктивностью и иной необходимой обвязкой, и собрать бустер самому. Особой популярностью когда-то пользовались вышеупомянутые LTYN из телефонов Samsung (это маркировка известного драйвера LT1937). Уровнем подсветки на подобных бустерах телефоны управляют с помощью встроенного ШИМ-контроллера, чем можете воспользоваться и вы :)
❯ Запускаем дисплейчик на практике
В первой части статьи, я постарался ввести вас в курс дела и кратко рассказать о том, как работают такие дисплейчики «под капотом». Как видите — с теоретической точки зрения, ничего сложного нет: пересылаем данные на дисплей, да вовремя дёргаем пин D/C. Но какого же это на практике?
К сожалению, у меня на руках не нашлось подходящего дисплейчика от мобильного телефона (я ведь брал новые по уценке, не все заработали нормально), поэтому в качестве примера работы мы возьмём фактически такой же «китайский» дисплей с алика. Но будьте уверены — с большинством дисплеев, принцип работы будет идентичен (если мы говорим о дисплеях 2005г.в и моложе).
В качестве МК, мы возьмём мой любимый RP2040, который, по моему мнению, незаслуженно обделен вниманием. Время от времени я делаю всякие прикольные девайсы на базе этого МК, поэтому крайне рекомендую его всем моим читателям :)
Давайте же перейдем к практической части статьи! Обычно при создании проекта, я просто клонирую с гита RPi сэмплы с уже готовыми файлами CMake, беру hello world, конфигурирую CMakeLists.txt и пишу свою программу. На малинке пока что нет такого удобного способа создания проекта, как idf.py create-project :) Само собой, для удобства отладки я всегда включаю встроенную в чипсет эмуляцию UART через USB.
if (TARGET tinyusb_device) add_executable(hello_usb main.cpp )
# pull in common dependencies target_link_libraries(hello_usb pico_stdlib hardware_spi)
# create map/bin/hex/uf2 file etc. pico_add_extra_outputs(hello_usb)
# add url via pico_set_program_url example_auto_set_url(hello_usb) elseif(PICO_ON_DEVICE) message(WARNING "not building hello_usb because TinyUSB submodule is not initialized in the SDK") endif()
И инициализирую USB-стек и биндинги stdout к нему:
stdio_init_all(); sleep_ms(1000);
Задержка здесь важна, иначе девайс отказывается определятся в системе. Переходим, собственно, к разводке дисплея. Для работы нам достаточно лишь питания, подсветки, общей массы и четырёх сигнальных линий: MOSI, CLK, DC, RESET. На CS я обычно ставлю перемычку с массой, т. к обычно не вешаю что-то ещё на одну шину с дисплеем.
Переходим к инициализации дисплея. Наш экранчик работает на базе контроллера ST7735R и имеет разрешение 128x160. Сначала, назначаем функции для пинов и дёргаем RESET:
Весьма негусто скажете вы? Ну, с минорными изменениями, здесь заработает дисплейчик любого разрешения, даже 480x320! Переходим к фактической инициализации:
Прошиваем наш МК и смотрим что получилось. Видим шум на экране? Значит дисплей инициализирован верно!
После инициализации дисплея, мы можем выводить на него данные! Дабы дать возможность процессору заниматься другими делами во время передачи картинки на дисплей, мы настроим один из DMA-каналов. DMA-контроллер занимается пересылкой данных из ОЗУ в другой участок ОЗУ (аппаратный memcpy) или периферию. Как раз для второго случая, т. е. пересылки данных в контроллер SPI, мы и будем использовать DMA!
Аллокейтим фреймбуфер, куда мы будем выводить нашу картинку и настраивает DMA-канал:
Переходим к выводу изображения на дисплей. Для того, чтобы просто установить цвет пикселя в любых координатах экрана, достаточно лишь посчитать смещение от начала указателя на фреймбуфер к определенным координатам экрана. Формула очень простая и понятная: ширина дисплея * Y-координата + x координата и результат предыдущих операций помноженный на число байт в одном пикселе.
__inline void pixelAt(short x, short y, short color) { if(x < 0 || y < 0 || x >= LCM_WIDTH || y >= LCM_HEIGHT) return;
В функции есть валидация границ дисплея. Если уверены, что не зайдете за границы дисплея — можете убрать проверку, будет шустрее.
Теперь для вывода картинки, нам достаточно лишь скопировать изначальное изображение в наш фреймбуфер и попросить DMA-канал вывести изображение на дисплей. Для прозрачных картинок без альфа-канала (т. е. с цветовым ключом), функция будет выглядеть так:
Можно сделать чуть комплекснее, добавив альфа-блендинг и аффинные трансформации (возможность поворота и скейла картинок), но пока-что такой задачи не стоит. Ну что, всё очень просто и понятно? :) Пример прошивки можно найти на моём GitHub!
Производительность такого способ на RP2040 можно увидеть вот в этом видосе (на Пикабу не смог залить из-за ограничения на число медиа-элементов). Обратите внимание, что подход предложенный выше больше подходит именно для динамического вывода изображения без dirty-регионов. Он подойдет для игровых консолей, камер, анимаций или устройств с выводом динамической информации по типу осциллографов. Если вам нужно обновлять картинку реже, например, если вы делаете умные часы с плеером, то нет необходимости занимать довольно большой объем ОЗУ фреймбуфером, ведь вы можете писать напрямую в видеопамять. Тут уже решать в зависимости от конкретной ситуации именно вам :)
❯ Заключение
Вот мы с вами и систематизировали информацию о том, как использовать дисплеи с мобильных телефонов в своих проектах. Надеюсь, информация была достаточно полезной для вас! Однако, у меня к вам просьба: пожалуйста, не «дербаньте» рабочие девайсы «на запчасти» :( Это будет не очень гуманно по отношению к нашему «технобалдежу», где мы наоборот стараемся найти применение стареньким девайсам :)
Был ли для вас материал полезен? Пишите в комментариях.
Полезный материал?
Какие дисплейчики подключали?
❯ Важное объявление для читателей касательно будущей рубрики
Друзья! Я, как и многие мои читатели, помимо программирования и железа обожаю тачки! Особенно те тачки, где что-то нужно доделывать самому… и речь, конечно-же, о ТАЗах! Я долго думал, но всё же решился: сейчас я коплю на будущий интересный проект, связанный с ультрабюджетным электронным дооснащением автомобиля, который старше меня в полтора раза — скорее всего, речь пойдет о ВАЗ 2108/2109/21099, причём не исключено что карбюраторной! В планах довольно крутой проект, заключающийся в следующем: мы спроектируем очень дешевый бортовой компьютер (т.е панель) для управления автомобилем на базе дешевого Б/У планшета за пару сотен рублей. Планшет будет связан с управляющим МК через UART (о подобной коммуникации через хардварные протоколы я уже писал целых две статьи: сам себе Linux смартфон, превращаем планшет с нерабочим тачскрином в игровую консоль), и с планшета мы сможем не только управлять основными системами машины (стеклоподъемники, центральный замок и соленоид багажника), но и собирать и пытаться примерно посчитать некоторую информацию о расходе, километраже и стабильности работы двигателя на карбюраторной(!) машине без электронных систем с завода!
Если вдруг двигатель машины будет живенький и заводиться с полтычка, то может и удаленный прогрев постараюсь реализовать :)
В наши задачи будет входить не только проектирование аппаратной части такого оснащения, но и разработка симпатичного интерфейса для самой панели, дабы было не хуже чем в BMW :D Всеми схемами, исходным кодом и инструкциями я буду делится с вами в каждой статье и, как обычно, расскажу обо всех деталях реализации во всех подробностях! У меня уже есть некоторые идеи и наработки. Собственно, почему-б и не попробовать? Будет новая рубрика в блоге: апгрейд автомобилей глазами электронщика и прожженного программера.
Фото не моё, из интернета
Если вам нравятся мои статьи, вас интересует развитие такой рубрики и у вас есть желание и возможность — можете помочь проекту копеечкой с помощью формы доната ниже. Пикабу позволяет остаться анонимным и донатить даже без регистрации. Сейчас у меня есть 40 тысяч рублей личных накоплений, на покупку самой машины планирую выделить 70-80 тысяч рублей (я живу в Краснодарском крае, так что здесь ещё есть шансы найти что-то +- живое за такие деньги), так что остаётся собрать около 30-35 тысяч рублей. За каждую копейку я готов отчитаться (по факту покупки машины я сделаю пост с фотографиями авто, ДКП, а также оглашу фронт будущих работ и сразу начну заниматься проектом).
-...Hierro на английском означает железо, к примеру valla de hierro и rejilla de hierro в этих предложениях находится слово hierro.- Репетирует Ник в свой выходной.
Из-за постоянных переживаний, Нику приходится постоянно репетировать перед каждой своей сменой. Очередную репетицию прерывает вызов омникласса.
-В самый неподходящий момент позвонили.-
-Кугар, есть задание.-
-Только не в самый ответственный момент.-
Переместившись на базу вместе с остальными, команда к их удивлению не обнаруживает на рабочем месте Тейланса.
-Извините за опоздание.- Заходит Тейланс. -Есть и другая работа на родной планете.-
-А что вы делаете на другой планете? Интересуется Расти.
-Это секретная информация, а сейчас ближе к делу.- Включает Тейланс Экран. -В Штате Массачусетс обнаружена доисторическая живность неизвестного происхождения, как видно на экране это динозавры всех форм и размеров...-
-Че-то они не похожи на тех динозавров из фильма "Парк юрского периода".- Добавляет Джон.
-Они вымерли двести триллионов лет назад.-
-В Гарварде на профессора напала стая компсогнатов и университет пришлось закрыть. Оружейники о вас позаботились чтобы ваше оружие было снабжено бронебойными патронами в битве с этими созданиями. Узнайте где находится сердце питающее эту живность и уничтожьте его.-
-Сделаем все возможное!-
Под покровом ночи вооружившись встроенными к оружию фонариками, команда исследует коридоры Гарварда.
-Держаться ближе друг другу в темных коридорах легко потеряться.- Предупреждает Ник
-Даже если отдалимся друг от друга, омниклассы нам подскажут где мы находимся.- Возражает Джон.
-У этого способа есть риск обнаружения врагом, включенные фонарики создают риск обнаружения. Будем выключать фонарики по возможности.-
Исследуя коридоры из вентиляции доносится едва слышимое дыхание.
-Там кто-то есть.- Прячется Моника за командой.
-Миркат, не поднимай панику, ты создаешь условия для нашего обнаружения.- Успокаивает Натали.
-Идем дальше.-
В дальнем коридоре звучит чей-то предсмертный рык, немного пугая команду.
-Что это?- Паникует Моника.
-Жаль я квас с собой не взял чтобы дух перевести.- Размышляет вслух Джон.
-Отставить, сейчас не до этого. Идём туда.-
-Ты в своём уме Кугар? А вдруг нас там ждёт опасность?- эмоционирует Натали.
-Не увидим, не узнаем. Пошли.-
Придя к месту где донести рыг, команда находит мёртвого велоцираптора.
-Так я и знал что это будет одна из этих махин из брифинга.- Подтверждает Джон.
-Они и правда выглядят из железа. Надо отправить эту махину Тейлансу.- Сканирует Ник зверя.
-Объект который ты, Кугар, отсканировал, создан из железа добываемый на СкарлетЕ02. Это железо не контактирует с большинством известных кислот на Земле.-
-Раз оно не контактирует с кислотами так как нам тогда биться с этими тварями?-
-В вашем арсенале находится по три тесла гранате, попробуйте ими воспользоваться в крайних случаях. Ах да и ваше оружие имеет режим тесла, стоит только прокрутить колесо омникласса. Удачи.-
-Кугар... У нас проблемы.-
-Что это за звук?-
Из темного коридора доносится смесь звуков рёва и рычания, а из тени выходят динозавры всех мастей. Команда вынужденно бежит в глубь коридора в поисках убежища.
-Вот это поворот!-шутит Джон.
-По меньше шути Гризли, и так не до шуток.-
-Я вижу дверь!- указывает Кейт.
-Отлично, создаём баррикады, прикрывайте меня пока я эту дверь взламываю.-
Команда создав баррикады, отстреливается пока Николас пытается открыть дверь. Не найдя способа открыть дверь, Ник выбивает дверь.
-Гранаты!-
Бросив Тесла гранаты, команда закрывается предположительно в учительской и закрывает дверь книжным шкафом.
-Хоть передохну немного.- садится Джон на пол.
-Что-то Доносится из вентиляции!- Кричит Ник.
Из потолочной вентиляции выходит стая компсогнатов, атакуя Монику.
-Я как-то так себе и представлял нападение на профессора этими динозавриками!- Представляет Ник.
-Миркат, не двигайся.- целиться Кейт.
Только Кейт нажимает на курок штурмовой винтовки, как её толкает Натали.
-Оттер, ты бы вместе с этими динозаврами ранила бы Миркат!-
Ник сбивает прикладом мелких динозавров с Моники.
-Ещё лезут!- кричит Расти.
Команда отстреливается от наступающих компсогнатов.
-У меня уже скоро батарея закончится.- кричит Джон.
Ник запрыгивает на подоконник и прикладом выбивает окно.
-Сюда! Я прикрою!-
Ник прикрывая, каждого члена команды выпрыгивающих через окно, после чего он прыгает последним при этом неудачно приземлившись.
-Кугар, ты в порядке?- поднимает Натали Ника.
-Не переживай, Рейндир, костюм погасил удар.-
-Стоять! Не двигаться.- Слышится строгий голос.
-Вы кто такие и почему вы в Массачусетсе когда всех жителей Штата эвакуировали?- говорит командир армии США.
-Мы здесь живём.-
-Больно странная у вас одежда для гражданской жизни. Вы едете с нами. Скрутите их.-
-Не сопротивляться.- Отвечает Ник.
Солдаты скручивают команду и ведут в БТР.
Уже в БТР, команда вместе с солдатами едет куда-то в неизвестном направлении, а на любые вопросы куда едут в большинстве случаев не получат ответа.
-На шесть часов. За нами гонится гигантский тираннозавр.-
-Я справлюсь с ним!-
Солдат забирается на турель БТР, и стреляет в тираннозавр до тех пор пока не свалится замертво. Расправившись с первой угрозой, на её смену приходит другая: стадо трицератопсов. Пулеметчик пытается отстреливаться, но пропустив одного трицератопса, тот рогами опрокидывает БТР.
Вышедшие из БТР солдаты отстреливаются, но с натиском велоцирапторов не справляются: кого-то загрызают насмерть, а кого-то птеродактиль забирает в свое гнездо, водитель застреливается.
Высвободившись из БТР, команда настраивает омниклассы.
-Вы где так долго пропадаете?- Почти крича говорит внезапно появившаяся голограмма Тейланса.
-Наши омниклассы были отключены по причине обнаружения местными силами Земли. Сейчас мы сами по себе и где находится "сердце" питающая всех этих динозавров неизвестно.-
-Высылаю вам каждому по гравициклу.-
Гравициклы появляются сначала серые близкие к черному, а потом когда команда садится в них окрашиваются в цвет их омниклассов.
-Держимся вместе, и не разделяться если нет необходимости.- Сказал Ник перед тем как завести мотоцикл.-
Команда на гравициклах исследует улицы Массачусетса в поисках питающего "Сердца", попутно отстреливаясь от наступающих динозавров. Исследование затягивается, а наступающих динозавров становится все больше, пока команде не попадается тираннозавр.
-Только не опять!- промолвил Джон смотря назад.
-Наши гравициклы не способны разгоняться дальше, придется прятаться в ближайшем здании!-
Выжав самую максимальную скорость, по команде Ника все спрыгивают из гравицикла.
Едва не попав под лапы тиранозавра, убежавшего за гравициклами, команда выживает благодаря встроенной в их костюмы компенсации удара.
-Все целы?- Спрашивает Ник.
-Ты чем вообще думал когда мы спрыгивали?- Возмущается Натали.
-Скажи спасибо костюму, который сохранил тебе жизнь.-
-Мой омникласс что-то заметил.- Сообщает Кейт.
-Мой тоже. Это то о чем я сейчас думаю, сердце?-
-Не знаю, надо пойти туда и увидеть все глазами.-
-Мне страшно когда что-то скрывается от меня.- Дрожит Моника.
-Ты не одна, а с командой.- хлопает Кейт Монику по плечу.
Зайдя в здание, которое обнаружило омникласс, команда идёт на поиски “сердца”. Этаж за этажом и с постепенным учащением пиликающих звуков, команда заходит в офисное помещение без компьютерных кабинок где в центре нависает сердце. -Святая русь!- Проговаривает Джон на русском. -Это даже словами не описать, даже плохими.- Раздается чье-то рычание. -Мы здесь не одни. Подготовимся.- В помещение свыше сотни вбегают динозавры и защищая сердце бегут в атаку на команду. -Это будет не так легко!- Мыслит Джон. -Разделяемся! Вы прикройте нас, а мы разберемся с сердцем.- командует Ник девушкам. Расчищая себе дорогу подствольным дробовиком, первая половина команды постепенно подходит к сердцу, вторая же прикрывает первых. -Если уничтожить это сердце, то вся эта железная фауна будет уничтожена.- Предполагает Расти. -Давайте быстрее, мы не можем их больше сдерживать!- Раздается из рации голос Натали. -Мы уже почти закончили. Подготовить тесла гранаты!- Команда достает Тесла граната и активировав кидает в сердце. При контакте с сердцем, гранаты взрываются отключив экосистему и всех динозавров. -Это еще не все, они отключены. Рейндир, Оттер и Миркат, мы ставим взрывные термиты, ваша задача выстрелить в сердце, когда мы побежим назад.- -Так точно.- Отвечают хором. Поставив термиты, Ник с Джоном и Расти убегают, а Кейт, Натали и Моника стреляют из стингеров в сердце. Уничтожив сердце, динозавры отключаются. -Интересно, и кто это будет убирать?- Интересуется Кейт. -Об этом позаботятся мои дроны уборщики. Вся эта железная фауна пойдет на нужды моей планеты и вашей базы на Земле.- -Возвращайтесь домой.-
Во все времена существования мобильных телефонов, дешевый сегмент всегда оставался одним из самых прибыльных и массовых направлений мобильного бизнеса. Помимо «простозвонилок» в духе Nokia 1100 или 1202, на рынке есть огромный спрос к ультрабюджетным смартфонам ценой до 10 тысяч рублей. И если с дешевыми девайсами у локальных ритейлеров всё понятно (чипсеты 5+ летней давности, минимальный объём ОЗУ и ПЗУ, простенькие TN-матрицы низкого разрешения), то китайские магазины готовы предложить по этой цене устройства с небывало щедрыми характеристиками — и 8Gb RAM, и 512Gb ROM, и Snapdragon 888+. Для большинства покупателей неочевидно, что эти характеристики — обман, а девайс будет обладать лишь базовыми параметрами. Но что самое обидное, производитель закладывает программный и аппаратный срок службы в такие устройства, из-за чего более половины смартфонов выходят из строя через 4-5 месяцев после покупки, а в СЦ за ремонт просят половину цены от нового. Около года назад я купил почти новую китайскую реплику Huawei P30 Pro с родной коробкой и заводской плёнкой всего за 400 рублей, которая уже была не рабочей. Сегодня мы с вами: узнаем о том, как производители экономят и закладывают срок службы в бюджетные мобилки, на практике отремонтируем подобный девайс своими руками (причём ремонт обойдется нам в 70 рублей) и посмотрим, можно ли пользоваться таким бюджетником за 470 рублей на в 2023 на практике. Интересно? Тогда добро пожаловать под кат!
❯ Кто виноват и что нам делать?
Пожалуй, если сейчас зайти на любой маркетплейс и поискать бюджетный Android-смартфон, то мы увидим сотни приложений по вкусным ценам с какими-то небывалыми характеристиками для подобного ценового сегмента. Производители обещают топовые чипсеты Snapdragon, 8Гб DDR4 ОЗУ, 512Гб UFS ПЗУ и качественные IPS-дисплеи. А что самое интересное, эти смартфоны зачастую являются репликами крутых флагманских устройств и выглядят практически точь в точь как оригинальные девайсы.
Таким образом, производитель создаёт дополнительный психологический фактор к покупке такого бюджетного смартфона: «ведь он выглядит как флагман, характеристики флагманские, а чего б и не взять?». Принято считать, что эпоха реплик айфонов и самсунгов прошла лет 10 назад и никто не пытается выделиться за счёт дорогого флагмана, однако рынок точных копий всё ещё живёт и китайские производители продолжают выпускать реплики устройств Apple в огромных объёмах.
Заказав и получив новенький смартфон, возможны несколько реакций от новоиспеченного владельца, обычно в зависимости от его потребностей в мобильном девайсе. Если покупатель действительно ожидает флагманских характеристик от устройства, то тут его ждёт полное разочарование: на самом деле девайс имеет ультрабюджетные характеристики и работает на железе, в лучшем случае, семилетней давности. Нередки случаи выхода новых устройств на базе чипсета MediaTek MT6582 2013 года выпуска — более одиннадцатилетней давности! Огорчение ждёт пользователя и по части ОЗУ с постоянной памятью: зачастую производители ставят только 1Гб DDR2 памяти вместо обещанных 8Гб DDR4 и 8Гб постоянной памяти вместо 512Гб. В качестве ОС, вместо обещанной последней версии Android, пользователя обычно ждёт немного «перекрашенный» под фирменный интерфейс Samsung/Huawei/Apple Android 6 или 8 версии. После этого девайс обычно убирается в дальний ящик «как запасной», отдаётся ребенку или быстренько продается на барахолке за чуть меньшую цену, чем было куплено. При этом «8Gb RAM, 512Gb ROM» — это как бы часть названия устройства, а не маркетинг, так что даже к условному Авито за это не докопаться.
Если же покупателю нужен смартфон с базовым функционалом — т. е. мессенджеры типа Telegram/WhatsApp/Viber, соц. сети а-ля Facebook или VK, а также музыка и какой-то базовый серфинг в браузере, то он может и искреннее обрадоваться своей покупке, даже не обращая внимания на какие-то небольшие подлагивания интерфейса во время работы. Плюсы, помимо отличного (скопированного) дизайна, у таких девайсов тоже есть:
Дисплей: несмотря на то, что дисплеи в таких девайсах довольно низкого разрешения — обычно 540x960 (и это ограничение старого чипсета, а не экономия китайцев), зачастую в чуть более дорогие реплики устанавливают весьма неплохие IPS-матрицы на которые вполне приятно смотреть. В самых бюджетных моделях до сих пор ставят TN, но достаточно качественный, чтобы глаза «не вытекали» от углов обзора.
Звук и микрофон: обычно в подобных девайсах стоит моно-динамик, отличающийся довольно большой громкостью, но немного хромающий в плане качества звучания. Тем не менее, для слабослышащих людей это будет плюсом. В качестве микрофона в таких устройствах до сих пор устанавливаются аналоговые простые микрофоны, которые легко найти и заменить в случае неисправности, ни о каких цифровых микрофонах речи обычно не идет.
Аккумулятор: это плюсом можно назвать лишь 50/50 и зависит от модели к модели. Например, почти все китайские реплики айфонов обладают очень слабыми аккумуляторами (из-за ограничений по размерам корпуса), зачастую ёмкостью менее 2000мАч! Но в некоторые модели (например, клоны Huawei) устанавливают АКБ с честной ёмкостью ~3.000-4.000мАч, которые вполне неплохо держат, учитывая низкое потребление старых бюджетных чипсетов. Ещё один важный момент — в некоторых подобных смартфонах намеренно стоит упрощённая BMS (защитная плата аккумулятора), которая даёт уйти АКБ в глубокий разряд (т. е. ниже 2.8В), что пагубно сказывается на ёмкости аккумулятора, если девайс долго лежит разряженным.
И казалось бы, если взвесить на чаше весов плюсы и минусы девайса, то получается вполне неплохой ультрабюджетный смартфон: как раз купить маме/бабушке/ребенку или себе для базовых задач и пользоваться, не зная проблем! Но есть в бочке мёда две больших ложки дёгтя, связанные с тотальной экономией, которая выливается в поломку устройства спустя несколько месяцев после активного использования. «Бонусом» для производителя — эта ложка дёгтя закладывает самый настоящий «срок службы» девайса.
Первая ложка дёгтя не особо критичная и связана исключительно с программными приколами. Фактически, 8Гб постоянной памяти — это минимум, необходимый для работы относительно свежих версий Android и современных приложений. Поэтому, установив банковский клиент, WhatsApp, Telegram с кучей каналов, которые флудят картинками и VK, пользователь быстро обнаруживает, что памяти осталось очень мало и система предлагает удалить некоторые приложения для её освобождения.
Если проигнорировать это предупреждение и позволить приложениям дальше засорять память, Android со временем вывалится в софтлок, показывая диалог освобождения места при попытке запуска любого приложения — даже настроек! Освободив память, смартфон всё равно не получится сбросить даже через настройки, только через рекавери, что выливается в софтлок — из-за чего неопытные пользователи уже думают, что девайс «сломался» и несут его в сервис/идут покупать новый.
Происходит это из-за того, что китайцы пытаются обмануть Android, подменяя везде объём памяти с реальных 8Гб на 256/512/1024Гб. Android по каким-то причинам не руководствуется фактическим размером раздела /data/, а используют данные в конфигах системы, из-за чего девайс уходит вот в такой софтлок, из которого невозможно выйти обычными средствами. Увы!
Но большинство моих читателей и сами смогут скинуть устройство до заводских настроек через рекавери или просто загуглят, как это сделать. Однако есть и вторая ложка дёгтя — аппаратная, гораздо более серьёзная. Что же это за ложка такая? Узнаем в практической части нашей статьи!
❯ Экономия на чипах памяти
В один прекрасный момент устройство может зависнуть и перезагрузка тут не поможет. Смартфон в это время может перезагружаться, а может и просто висеть, при этом продолжая заряжаться и подавая все признаки рабочего устройства.
Первым делом опытные читатели попытаются его скинуть через рекавери — и даже если не увидят ошибок при вайпах, смартфон всё равно откажется загружаться.
Ещё более опытный пользователь загуглит прошивку для устройства запросом вида «P40 Pro Clone MT6580 firmware» и скачает прошивку для своего девайса с первого попавшегося сайта. По пути, товарищ скачает SP Flash Tool и установит драйверы. Однако при попытке прошить устройство, можно столкнуться с тем, что оно нормально прошилось, но теперь не запускается совсем/зависает с артефактами на экране/перезагружается. А при попытке прошиться ещё раз, увидит вот такое окно:
Увы, теперь Flash Tool не может переразметить внутреннюю память и записать новую таблицу разделов (тот самый GPT) в USER-раздел памяти. Восстановить девайс программными средствами не получится — и это не вина читателя/опытного пользователя.
Происходит это потому что чип флэш-памяти eMMC окончательно износился и ушёл в режим Read-only (только чтение, без возможности записи), дабы пользователь окончательно не потерял свои данные, которые вытащить могут только в СЦ и обычно только со специальным оборудованием. Чип eMMC имеет собственный контроллер, который мониторит физическое состояние секторов памяти и число бэдблоков — эдакий S.M.A.R.T. Когда контроллер решает, что у чипа слишком много испорченных блоков — он частично (т. е. какие-то операции записи всё равно проходят, из-за чего и повреждается GPT) отключает возможность перезаписи данных, из-за чего часть данных уже может быть повреждена, а система начинает вести себя нестабильно — и в случае Android, банально виснуть на заставке.
Иногда контроллер eMMC слишком рано приговаривает всю флэш-память и с помощью специального оборудования (например, z3x) и тестовых пинов на чипе памяти. Насколько мне известно, иногда такие флэши снова «поднимают» с помощью программатора и они могут прослужить ещё долгие годы своим владельцам.
Одним из примеров таких «заумных» контроллеров — eMMC в смартфонах Samsung Galaxy S3, Galaxy S4, Galaxy S4 Mini — у этих девайсов повально «вылетала» память и они висли с теми же симптомами, что описаны в статье.
Ранее проблемами с eMMC страдали флагманские Samsung (из-за ошибки разработчиков), HTC (некачественные чипы памяти) и некоторые другие девайсы. Но почему же эта проблема носит массовый характер на ультрабюджетных смартфонах? Узнаем на примере популярной в 2020 году реплики Huawei P30 Pro на базе чипсета MT6570, которую я купил год назад всего за 400 рублей в состоянии практически новой. Девайс был в коробочке, на нём была заводская плёнка, а его состояние было околоидеальным! Само собой я не удержался прикупить его себе :)
Девайс реально неплохо скопировали, за исключением больших рамок. Дизайн очень симпатичный как по мне. За 400 рублей — отличная покупка, самое время его оживить!
❯ Ремонтируем красавца
Разбирается довольно просто: необходимо отклеить заднюю крышку (осторожно, она очень хрупкая из-за согнутой формы. Я лично, несмотря на всю аккуратность и наличие фена, всё равно её треснул :c. Может у кого есть донор?), используя фен и тонкое лезвие, либо нить. Перед нами открывается вид на плату и аккумулятор:
Теперь нам необходимо снять среднюю часть корпуса, которая держится на винтиках. Не забываем вытащить сим-лоток, задняя часть корпуса (в районе платы с портом зарядки) может отщелкиваться немного туговато — это нормально. Не потеряйте толкатели кнопок — они ничем тут не закреплены.
Теперь можно отпаять АКБ, шлейф с кнопками и отключить шлейф дисплея и нижней платы. Отпаиваем вибромотор и разговорный динамик и вытаскиваем плату:
С обратной стороны чипсет, контроллер питания и флэш-память закрывает металлический экран, который припаян к плате. Его не нужно ничем выдирать, он замечательно сдувается феном на 350 попугаях без нижнего подогрева и риска что-либо угреть. При снятии экрана не заденьте обвязку и не уроните его на чипы, а то потом придется перекатывать КП/проц :)
Обратите внимание на Hynix H9TP32A8JDBC — это eMCP чип памяти, который содержит в одном корпусе 1Гб DDR2 ОЗУ и 8Гб флэш-памяти. Присмотритесь к его маркировке, маркировке на процессоре (MT6570A) и контроллере питания (MT6350V). На чипе памяти она вся в каких-то потертостях и повреждениях. Незадолго до написания статьи, читатель из Краснодара подарил мне еще один клон P30 Pro с идентичной платой и точно такими же проблемами (отвал флэши), там картина была абсолютно идентичная.
Само собой в процессе производства памяти далеко не все чипы получаются рабочими, некоторая часть из них — брак. На заводах есть автоматизированное тестирование, которое относит к бракам ту память, где сектор слишком быстро изнашивается и подвергается ECC (коррекции ошибок) после определенного числа стирания и записи определенных данных.
Из этого мы можем сделать вывод, что производители ради экономии ставят либо Б/У чипы памяти, выпаянные с утилизированных телефонов (H9TP — классическая eMMC, которая использовалась в современных смартфонах более 5 лет назад. Сейчас смартфоны используют UFS), которые уже были изношены на неопределенный процент и могут проработать как много лет, так и пару месяцев, либо отбраковку с заводов, которую, скорее всего, сгружают в общую корзину даже без блистера и затем продают по дешевке производителям смартфонов.
Как же это исправить? Правильно: установить новый чип памяти. Причём необязательно ставить идентичный, подойдет любой, который поддерживается Preloader'ом устройства.
Preloader — первичный загрузчик в смартфонах на базе чипсетов MediaTek, который занимается инициализацией контроллера ОЗУ. Поскольку производителем предполагается использование чипов eMCP — т. е. eMMC и ОЗУ в одном корпусе, в Preloader добавляется поддержка сразу многих чипов памяти. Preloader для выбора конфигурации контроллера ОЗУ использует CID устройства — поэтому, если в нём нет поддержки определенной CID, то устройство откажется включаться. Именно поэтому возникает ошибка DA_LOAD_FAILED при записи неправильного прелоадера!
CID текущей флэши можно узнать в логах SP Flash Tool, а список поддерживаемой памяти конкретным прелоадером можно узнать с помощью программы Wwr MTK.
Наш девайс поддерживает следующие чипы eMMC, оригинальный чип имеет корпус BGA183:
Сдуваем старый чип памяти с помощью фена. Не заденьте проц при снятии, плата теплоемкая, поэтому даже без нижнего подогрева проц будет очень легко «качаться»! После этого снимаем остатки старых шаров с пятачков с помощью оплетки (пятаки здесь крепкие, но если не хотите рисковать — то можно и шарик припоя покатать по площадкам).
Для замены я заказал несколько чипов памяти, точно таких же, как и в оригинале, по 70 рублей каждый, абсолютно новые. Чипы, особенно в такой липкой изнутри упаковке желательно сразу перекатать, иначе могут и не встать с первого раза.
Наносим тонкий слой флюса, дабы чип не уехал, центрируем его и ставим новую флэшу на место при температуре ~330 попугаев. Если флюса нанесено достаточно, то чип не уедет и сам встанет на место — вы сами увидите это. Опытные мастера скажут «ты шо, кукухой поехал? Угреешь же при 330гр.!». Но судя по всему, по настоящему угревается и помирает только уже полумертвая флэша.
Вприпрыжку бежим подсобирать девайс и подключать его к USB. Определится ли девайс? Сможет ли Flash Tool прошить его?
И… да! Флэша встала на место нормально :)
Включаем девайс и не можем нарадоваться: у нас появилось изображение! Правда, девайс всё ещё не грузится: некоторые прошивки сделаны из дампов и не содержат в себе разделов userdata.img и cache.img (обратите внимание на скриншот выше). После замены флэш-памяти, эти разделы оказались забиты нулями и Android не может примонтировать их, из-за чего устройство виснет.
Поправить легко: нужно зайти в рекавери и сделать вайпы. Происходит это из-за того, что некоторые дампы "нарезаны" без раздела userdata и cache. Если они будут забиты нулями, то система не сможет примонтировать эти разделы и зависнет. После перечисленных действий девайс загружается и работает!
❯ Фиксим программные болячки
Однако тут есть важный момент, который я специально предусмотрел для этой статьи: я не делал бэкап NVRAM. Поскольку новая флэша у нас забита нулями и мы прошили только те разделы, которые напрямую связаны с системой, настройки Wi-Fi, Bluetooth и IMEI оказались забиты нулями, из-за чего смартфон даже в 112 не дозвониться. При попытке набрать *#06# мы увидим «Неправильный IMEI», а в Wi-Fi останется сеть с ошибкой NVRAM Warning = 0x10.
Поскольку я предполагаю, что и у вас нет бэкапа NVRAM, то действовать можно следующим путем: попробовать прошить раздел NV от другого устройства на том же чипсете, восстановить NVRAM и IMEI с помощью MetaMAUI с помощью BPLG-файла, а также воспользоваться софтом для СЦ, дабы восстановить IMEI. Девайсы на 6570 и 6580 по каким-то причинам вообще никак не хотят цепляться к в MetaMode, поэтому воспользуемся Miracle Thunder. Нажимаем Ctrl + Shift + M, дабы у нас появились опции для записи IMEI, выбираем IMEI и делаем себе крутые имеи на обе SIM :)
Возвращать нужно только родной IMEI-устройства, который можно найти, например, на сим-лотке. Подделка IMEI является незаконной!
Включаем смартфон, пытаемся позвонить куда-нибудь и ура — всё работает :) Портируем рекавери, накатываем рут — и у нас есть полноценный разлоченный девайс!
❯ Как девайс себя проявляет теперь?
Предлагаю взглянуть на смартфон после того, как мы его оживили! Посмотрим, какие задачи он сможет выполнять, с какой производительностью будет работать и стоило ли его покупать в год выхода — т. е. 2020 году.
CPUID говорит нам о следующих характеристиках и даже здесь его вводят китайцы в заблуждение. ОЗУ никаких не 4Гб, а 1Гб, а флэш-памяти всего 8Гб. Подобные спецификации могут показаться скромными в 2024 году.
Переходим к серфингу сети. И тут уже чувствуется затык по производительности в устройстве. Современные тяжелые сайты девайс откровенно не тянет, а в каких-то ситуациях браузер может даже крашнуться. Увы!
А как же мессенджеры? Ну, буквально на днях «протухли» сертификаты, из-за чего все девайсы до Android 5.1 частично потеряли возможность серфить такие сайты, как, например, ВК. Но и Kate Mobile, и Telegram работают весьма сносно на такой реплике. Тоже самое касается и WhatsApp, однако с тенденциями раз в год-два выкидывать поддержку старых версий Android, мессенджер не проживёт долго на этом девайсе :(
Ну и куда-ж без игр! Залетаем в классику начала десятых и понимаем, что девайс с ней весьма неплохо справляется.
Ну и дабы радовать вас не только скриншотами, прикладываю видео с производительностью работы девайса. Устраивает ли вас такой перформанс? Решать вам!
❯ Заключение
Сегодня мы с вами узнали, каким же именно образом некоторые производители закладывают срок службы в смартфоны. Быстро помирающая флэш-память стала давним бичом даже для флагманских устройств, чего уж говорить о бюджетных китайских репликах. Но как говорят некоторые мастера — девайс всегда можно восстановить, если плата не раскрошена пополам, а я на практике вам подробно рассказал о причинах и показал процесс оживления такого китайчика :)
Стоимость такого ремонта в СЦ составит около 3-4 тысяч рублей, что составляет чуть ли не половину цены нового устройства. Однако не стоит винить мастеров в дороговизне такой операции: новые чипы памяти обычно сами по себе стоят как минимум рублей 400-500, чипы чаще всего перекатывают с заводских шаров на новые, время спецов тоже стоит денег. Моя задача была в том, чтобы доказать вам, что такой девайс можно и дома самостоятельно отремонтировать, имея относительно небольшой набор оборудования. Возможно вы ранее видели мои посты, где я ищу китайские реплики и подделки на айфоны/самсунги/макбуки и т. п. для будущего контента, даже нерабочие. Как вы и сами видите — эти реплики попадают в хорошие руки :)
Если хотите что-то задонатить из подобных девайсов — пишите в тг @monobogdan, буду благодарен и не забуду вас упомянуть в статье!
Стоит ли девайс своих 470 рублей и затраченных сил? Пользуетесь ли китайскими репликами? Пишите в комментариях, будет интересно почитать! Интересен подобный материал? Подписывайтесь на мою телегу: там есть бэкстейдж статей, различные мысли и солюшки по подобному ремонту, а также всегда вовремя публикуются ссылки на статьи!
Ваше мнение насчёт этой статьи?
Ходили ли вы когда-нибудь с подделками на брендовые устройства?
Стоит ли такой смартфон 470 рублей?
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать свежие статьи каждую неделю!