Pull to refresh

Comments 38

Прочитав абзац:


на барахолке увидел у продавца разные симпатичные дисплейчики от мобильных телефонов и не только за небольшую цену. Решил взять за компанию в количестве трёх штук — "куда-нибудь пригодится".

я вспомнил своё увлечение радиоделом в далёких 60-х прошлого столетия:


Откуда пошла тяга к радиоделу или, как сейчас сказали бы, к электронике, я не помню, но увлечение было серьёзное. Сначала детекторный приёмник, потом приёмники прямого усиления, потом супергетеродинный радиоприёмник да ещё с приёмом коротких волн. Вместо корпуса мыльница. Апофеозом стал магнитофон, где самое трудное было собрать лентопротяжный механизм, и миниатюрный телевизор. Последнее осталось незаконченным, хотя была разработана схема и изготовлена печатная плата. Проблема была в отсутствии кинескопа, электронно-лучевой трубки малого размера. Но когда я дома отремонтировал телевизор, мой авторитет в глазах родителей вырос до небес.

И с грустью подумал, как жалко что тогда у нас не было такой барахолки. Глядишь бы и телевизор удалось бы довести до ума...

Спасибо за интересную статью! Как вариант еще, можно было в саму Truly написать, сайтов у них много, может быть где-нибудь и ответили бы. Пару раз у меня получалось достучаться до китайцев, чтобы получить документацию на неведомую хрень. Один раз даже образцы прислали, которые помогли спасти проект.

Хочу поблагодарить вас за вашу статью про камеру. Отличная статья. Вдохновила в том числе и она. Кстати, в ней вы пишите, что пытались найти драйвер камеры в системе симбиан (или в прошивке). Хочу попробовать такое в отношении дисплеев. Есть пара мыслей, но с чего лучше начать пока не решил.

Спасибо, приятно знать, что кому-то моя писанина пригодилась :)
Вообще, каким бы этически спорным ни был реверс-инжиниринг, он позволяет добиться многих результатов существенно быстрее.
Помнится, я был тогда сильно озадачен, почему при всех правильных настройках и затертом до дыр мануале картинки таки нет. Телефон тот, кстати, до сих пор так и лежит на полке. А с симбианом не сложилось. Я очень долго и муторно выкачивал откуда-то десятки гигабайт, как сейчас помню, а когда оно всё же скачалось, пришел в уныние из-за того, что не понимаю, что же конкретно искать. Пытался смотреть исходники, но в мою тогдашнюю картину мира их структура никак не вписывалась.

Исходники случайно не с китайских сайтов качали?
Сам я пока только видел, что люди умеют где-то доставать такие строчки, как привёл в конце статьи (где микросхемы-драйверы). Но где точно и как они это делают, пока не ясно. Видимо считывают прошивку с телефона (сливают дамп), потом, наверное hex-редактор (просмотреть код). Или где-то скачивают. Например, мне попадались сайты ремонтников телефонов с нужными прошивками и схемами. Но скачать без регистрации и смс далеко не всегда можно. Обычно регистрация, потом ещё набрать баллы, сообщения, репутацию, а может и заплатить за доступ. Ради пары файлов таким заниматься не хочется.

Была бы статейка/видео хорошие по теме, с удовольствием посмотрел бы. Пока не попадалось. Наверное как-то не так ищу.

Есть у меня телефон живой, на его плате прямо подписаны контактики юарта и jtag. Может оттуда можно что-то интересное вычитать.

Попытаться написать в компанию, наверное, стоит. Но часто люди пишут, что в ответ ничего, либо что-то вроде "Вы производитель шилдов? Нет?". И опять молчание.

Пытался писать в компанию MStar (производитель чипов для скейлеров и вообще для цифровых телевизоров). Ответа тоже не получил. Даже при том что однажды на выставке общался с инженером этой компании, но в тот день было закрытие выставки, и они все были уже слегка перебравшие

Оу, коллега по несчастью. Сейчас они уже SigmaStar (ну или часть их). Писал им, причем от лица комании, такая же ерунда - игнор. Может гуглом или эплом нужно быть, чтоб ответили :)

Учитывая, что все виденные мною дешёвые китайские тюнеры и телевизоры имели внутри себя чипы Mstar, подозреваю, что потребители этих чипов помельче Эппл и Гугла. Но ведь как-то же они разрабатывают эти телевизоры и тюнеры, берут же где-то даташиты?
И какой смысл был приезжать и выставляться на CSTB, если на запросы потенциальных потребителей не отвечают

А так же камеры, регистраторы и многое другое. Да, задаюсь этим же вопросом. Мне удалось выяснить, что документация у них под NDA, и мы и заказчик готовы были его подписать, но для этого нужно как-то на связь выйти... В общем забавные ребята, конечно.

Ещё некоторое недоумение вызывает тот факт, что распространены чипы с двумя совершенно разными логотипами и разной naming convention. Как будто два разных (не связанных) производителя.

Довольно большая и вполне серьёзная корейская компания Humax, из модели в модель (своих абонентских приёмников/терминалов) переносила явную неадекватность.
Встречался на одной из CSTB с их представителем, тот явно сразу понял о чём речь, но попытался "включить дурака".
В итоге общения пообещал "передать инф. в соответствующий отдел" (элегантно "отшил").

Ну а через короткое время, их продукцию в масс.секторе большие операторы сменили на китайское (censored) "зато дёшево" (С)

Акадовский тюнер DVB-C Humax регулярно зависал ;)

Под АКАДО, базовая модель (шасси?) была "адаптирована".
Плюс (сильно подозреваю), что уровень подготовки и/или распространения (состояние аб.сетей) тоже вносили существенную "стабильность".

Stm32 я выбрал из-за логических уровней 3,3 В

А какой популярный МК не умеет в 3,3 В? Прямо удивился в этом месте)

В стародавние времена :) были популярны ATmegа и PIC, и на барахолке, наверное, их сейчас даже больше,чем STM32. Так там 5 Вольт на ножках, как впрочем и питание.

А, видимо, некоторые древние PIC были только 5В. AVR могут и 3,3 (и ниже), и 5В. В отличие от STM32F.

Да-да с PICами более консервативно, хотя они потом таки купили AVR :)

что не мешало им (большей части) норм лопать 3.3в уровни, ибо порты были заточены под такой вариант

Порты заточены под ТТЛ уровни, а они для лог.1 — от 2,4 В. 74НСТ тоже переварит такой уровень при любом питании, в отличие от 74НС, которая при 5,5 В уже перестаёт корректно реагировать даже на 3,3 В.
Так там 5 Вольт на ножках, как впрочем и питание.
AVR работают с питанием от 1.8 до 5в, хоть в стародавние времена, хоть сейчас. STM32 — в основном от 2 до 3.6, некоторые от 2.4
как впрочем и питание
Была ещё ATtiny43U, с питанием от 1 батарейки 0.7-1.8в

Выбор не в глобальном смысле, а из того, что под рукой и удобно. А рядом были Ардуино нано и stm32 (это из того, что не отдельным микроконтроллером, а уже в виде отладочной платы). У Ардуино нано микроконтроллер запитан от 5 В. Т е уровни логические тоже 5 В. Возиться с согласованием уровней не хотелось, да и было желание попрактиковаться с stm32.

я люблю ЭЛТ мониторы ;)

вот бы из изготавливали сегодня, чтоб новенький приобрести.

Спасибо за то, что вынудили вспомнить нечто схожее, из начала 90х. :)
Досталась за смешные деньги мебранная клавиатура для спектрума, но... не имеющая ничего общего по "поножовщине" с тем что имелось в хозяйстве (несколько разных клонов Speccy).

Интернета нет, а вот мультиметр (ещё стрелочный) в наличии...
Ну и "юношеское упорство" в наличии :)

В итоге, после некоторого времени всё отлично заработало.

P.S.
Приятно видеть, что ещё есть "нас не остановить отсутствием детального datasheet!"

Каков труд! С интересом ознакомился, да еще и в закладки заложил. Спасибо.

Меня тоже в своё время бесило, что у меня валяется куча электронного барахла с разборки, но отсутствие документации делает невозможным использование компонентов в своих проектах. Сейчас я похоже перерос этот этап и мне проще заказать дисплей на алишке на каком-нибудь st7789 с документацией и кучей библиотек, ибо нервы и время стоят сильно дороже.

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

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

сейчас бы на похожие "подвиги" не решился, "слишком стар я стал для всего этого дерьма" (с)

А можете подробнее про выдёргивание из прошивки? Где брали прошивку, как именно с ней работали?

я уже не вспомню конечно подробностей, но так как было известно к каким телефонам этот дисплей подходил, для какого-то из них было найдено обновление прошивки.

морально приготовившись погрузиться в пучины дизассемблера, просто открыл файл, полистав его и поискав по адресу дисплея типа "0х78" (просканировал адреса нашел на какой он хоть как-то отзывается) был обнаружен массив из пар значений (адрес регистра - значение) почему-то тоже в ascii. причём несколько для разных дисплеев.

и даже по окружающим кускам текста можно было понять что это инициализация дисплея. там какие-то вменяемые имена функций были рядом.

хз может там jvm какая была и хранилось это не как скомпилированный кусок бинарного кода для целевого процессора(типа arm7 какого-нибудь поди в телефонах тогда были), а вот так.

то что дисплей в результате удалось запусть - вообще чудо.

поискал сейчас всякие прошивки для древних популярных тогда телефонов, вот что нашел:

файл K700i_FS_EMEA1_R2AY004_CID36.fbn

в самом же начале с ~100 строки:

interface=pdi;
{
name=HD66798_200404231;
#from PA20;
cap_resx=B0;
cap_resy=DC;
cap_bpp=10;
cap_bpppd=3;
cap_noofpd=1;
cap_freepdvert=1;
cap_pdlines=0;
cap_nonpdcolor=0;
cap_width=8822;
cap_height=AA28;
cap_led=;
cap_scroll=;
cap_offset=00 04;
cap_offset_pd=00 04;
pd_rectangle=00;
init=%d $00 07$ 00 04 $00 12$ 00 00 $00 13$ 10 1F %wb %d $00 11$ 00 01 $00 12$ 00 08 $00 13$ 02 0F $00 10$ 00 04 %w2a %d $00 10$ 02 24 $00 11$ 02 01 $00 12$ 00 18 %w2a %d $00 13$ 30 0F $00 01$ 02 1B $00 03$ 62 30 $00 07$ 00 44 $00 08$ 05 03 $00 09$ 00 2F $00 0B$ 00 02 $00 40$ 00 02 $00 41$ 00 00 $00 42$ DF 04 $00 43$ 03 E1 $00 44$ AF 00 $00 45$ DF 04 $00 23$ 00 00 $00 24$ 00 00 $00 21$ 04 00 $00 30$ 00 00 $00 31$ 05 05 $00 32$ 04 07 $00 33$ 02 00 $00 34$ 00 07 $00 35$ 05 02 $00 36$ 07 07 $00 37$ 00 02 $00 38$ 01 D0 $00 39$ 00 0F;
reinit=;
reinit_pd=;
swreset=;
power_on=%d $00 07$ 00 04 $00 12$ 00 00 $00 13$ 10 1F %wb %d $00 11$ 00 01 $00 12$ 00 08 $00 13$ 02 0F $00 10$ 00 04 %w2a %d $00 10$ 02 24 $00 11$ 02 01 $00 12$ 00 18 %w2a %d $00 13$ 30 0F $00 01$ 02 1B $00 03$ 62 30 $00 07$ 00 44 $00 08$ 05 03 $00 09$ 00 2F $00 0B$ 00 02 $00 40$ 00 02 $00 41$ 00 00 $00 42$ DF 04 $00 43$ 03 E1 $00 44$ AF 00 $00 45$ DF 04 $00 23$ 00 00 $00 24$ 00 00 $00 21$ 04 00 $00 30$ 00 00 $00 31$ 05 05 $00 32$ 04 07 $00 33$ 02 00 $00 34$ 00 07 $00 35$ 05 02 $00 36$ 07 07 $00 37$ 00 02 $00 38$ 01 D0 $00 39$ 00 0F $00 07$ 00 45 $00 07$ 00 65 $00 07$ 00 67 %w66 %d $00 10$ 22 20 $00 02$ 07 00 $00 07$ 00 77;
power_off=%d $00 07$ 00 76 %w66 %d $00 07$ 00 66 %w66 %d $00 07$ 00 44 $00 13$ 00 00 $00 12$ 00 00 $00 10$ 00 01;
normal_pd=%d $00 0B$ 01 0F $00 07$ 00 72 %w28 %d $00 07$ 00 62 %w28 %d $00 07$ 00 40 $00 07$ 00 48 %w28 %d $00 07$ 00 49 %w28 %d $00 07$ 00 69 $00 07$ 00 6B %w28 %d $00 07$ 00 7B $00 42$ %pd_stoprow %pd_startrow %w28 %d $00 10$ 27 20 $00 11$ 02 05 $00 02$ 0D 00;
pd_normal=%d $00 0B$ 00 02 $00 11$ 02 01 $00 07$ 00 7A %w28 %d $00 07$ 00 6A $00 07$ 00 48 $00 42$ DF 04 $00 07$ 00 44 %w28 %d $00 07$ 00 45 %w28 %d $00 07$ 00 65 $00 07$ 00 67 %w69 %d $00 10$ 22 20 $00 02$ 07 00 $00 07$ 00 77;
pdidataareadmaupdate=$00 00 00 00 00 21$ %y 00 $00 22$;
pdidisplayreg=;
pdipgmwrite=1F 1D 09 00 1F 20 90 99 1F 28 9C 99 17 98 %cnt_lo %cnt_hi 17 05 15 05 17 F8 1F 00 1F 08;
pdipgmdmaupdate=1F 1D 09 00 1F 20 90 99 1F 28 9C 99 17 98 0a 00 17 05 15 05 17 f8 13 80 %update_cnt1_lo %update_cnt1_hi 17 88 %update_cnt2_lo %update_cnt2_hi  17 60 15 01 17 e0 17 e8 1f 00 1f 0d;
pdipgmread=1F 1D 09 00 1E 20 90 99 1E 28 9C 99 16 98 02 00 10 05 16 f8 16 2c 99 99 17 00 07 00 17 00 07 00 17 06 1F 07 1F 00 1F 08;
pdipgmreadhigh=1F 1D 09 00 1E 20 90 99 1E 28 9C 99 16 98 02 00 10 05 16 f8 16 2c 99 99 17 00 07 00 17 06 1F 07 17 00 07 00 1F 00 1F 08;
pdipgmgcspeed=2;
pdipgmwritespeed=2;
pdipgmreadspeed=15;
pdirs=1;
pdinibbleswap=0;
pdidisplaycolour1=130F0E0D;
pdidisplaycolour2=17161514;
pdidisplaycolour3=06050403;
pdidisplaycolour4=0C0B0A07;
pdidisplaycolour5=00000000;
pdidisplaycolour6=00000000;
}
;
}

а потом идёт код инициализации камеры даже с какими-то комментариями и ченжлогом :)

вряд ли это был именно этот дисплей и этот телефон, но что-то похожее,

и как именно я тогда это умудрился распарсить во что-то рабочее и запустить без документации тоже уже загадка.

Благодарю. А прошивку искали по запросу вроде " K700i firmware"?

Есть мнение, что человек молод, пока у него есть желание учиться новому.

да, нашел тут https://firmware.center/firmware/Sony-Ericsson/K700/

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

А такого вида строки, как привёл в конце статьи, встречали где-нибудь?

судя по тому что самсунговский контроллер в списке отсутсвует это вообще могут быть просто некие неподчищенные остатки от sdk.

Там у некоторых контроллеров device ID читать можно из определённых регистров. Можно попробовать почитать всякие регистры согласно различным даташитам

Да, можно читать id, но не у всех контроллеров. В библиотеках для Ардуино так и делается. Вот у S6B33Bх как раз и не нашёл регистра с ID или команды read ID. Может не заметил.

Вот бы бОльшая часть контента Хабра была такого плана
было бы интересно посмотреть как подключить экран с тачскрином от китайского планшета к малинке пи зеро
Sign up to leave a comment.

Articles