Содержание статьи
Вообще, я заметил что читатели любят статьи с полным анализом схемотехники ретро-устройств. В марте мы с вами полностью разобрали схему и компонентную базу однокристального телефона Nokia 225, а в апреле изучили настоящий раритет из 90-х — Motorola StarTAC, где в качестве центрального процессора выступал легендарный m68k. В статье про StarTAC я упомянул, что после 2000-го года, прогресс мобильных телефонов пошёл семимильными шагами и чуть ли не каждый крупный производитель чипов предлагал свою собственную платформу для бюджетных телефонов…
Сегодня мы поговорим про одну из таких платформ от Skyworks на примере легендарного Samsung C100. Интересно узнать, как работал изнутри и что было «под капотом» у легендарного кнопочника из нулевых? Если любите настоящие гиковские статьи — то жду вас под катом!
❯ Предисловие
Samsung C100 можно без преувеличений назвать легендарным телефоном. Будучи выпущенным в 2003 году, аппарат был одним из первых действительно бюджетных устройств с цветным дисплеем. При этом в отличии от Moto C350 и Siemens A60, в C100 использовалась не тормозная и блеклая 8/12-битная CSTN-матрица, а вполне приличный 16-битный UFB-дисплей с отличной цветопередачей и хорошим для тех лет разрешением в 128×128. Эдакий IPS из нулевых.
Как и многие другие корейские аппараты тех лет, C100 также мог похвастаться красивым дизайном и удобным форм-фактором «длинного» моноблока. Весил аппарат всего 76г, а его толщина была около 17мм — в те годы это считалось круто. На фоне C100, A60 выглядел слишком утилитарно и «по европейски», в то время как C350 выглядел стильно… но совсем уж бюджетно.

Однако C100 выигрывал у американцев и европейцев не только дизайном и технологиями, но и софтом. Пока в C350 и A60 люди были вынуждены довольствоваться заводским функционалом и парой тормозных игрушек, Samsung добавили в C100 поддержку самых первых Java-приложений. И хотя игр под MIDP 1.0 не так уж и много, сам факт возможности поставить сторонний браузер или мессенджер типа JIMM, был весьма крутым, хотя Java-приложения можно было качать только из дорого WAP-интернета.

Помимо этого, корейцы куда сильнее заморочились касательно интерфейса, нежели Moto и Siemens. У моторов и сименсов интерфейс был тормозной, блеклый и местами нелогичный (это скорее про A60), а вот в C100 пользователя встречали анимированные обои, богатая и красивая анимация каждого пункта меню и удобная навигация. К слову, интерфейс и в дальнейшем стал визитной карточкой Samsung и вплоть до выхода первого iPhone, Samsung считался чуть ли не эталоном красоты интерфейса (наравне с Sony Ericsson).

И конечно у Samsung не было равных в качестве звука. В 2003 году, C100 звучал просто невероятно: громкий динамик, 40-тональная полифония, поддержка аудио-формата MMF — это было уже покруче, чем просто тональная пищалка и простенькие MIDI. Дело в том, что в качестве синтезатора и аудиокодека для музыки здесь использовался отдельный чип Yamaha MA-3, который помимо классического PCM/ADPCM звука умел также в FM-синтез (по тому же принципу, что и OPL в звуковых картах из 90-х), а также Wavetable’ы. Вишенкой на торте был собственный формат MMF, который совмещал в себе фишки обычных midi-мелодий и трекерной музыки, позволяя микшировать к основному инструменталу ещё и PCM-сэмплы.
Этот Samsung C100 стал одним из первых телефонов в моей коллекции ретро-гаджетов. Достался он мне в 2021 году, когда я у барахольщика выкупил целый пакет телефонов со свалки за 1.500 рублей. Несмотря на то, что многие аппараты там были в очень уставшем состоянии, этот C100 вполне сохранился и полностью работал, а с его братиком в лице X460 я даже успел походить в 2022 году как с дополнительным. Причём несмотря на солидный возраст в 23 года, даже родной аккумулятор всё ещё держит заряд пару дней. Вот уж корейское качество!

После прошлых бюджетников в лице Samsung R200/R210, это был прямо таки серьезный апгрейд. Однако немногие знают, что за красивым и плавным интерфейсом, и крутым функционалом скрывается весьма заурядное и слабое железо. Более того, оно даже слабее, чем в Motorola C350… Звучит как что-то диковинное? Давайте разбираться!
❯ Разбираем
В первую очередь, C100 привлекает типично-корейским конструктивом тех лет. Если на условной Nokia, Motorola или Siemens можно было менять панельки и кастомизировать корпус вообще не выкручивая винты, то у корейцев всё было стабильно монолитно: несколько винтов с нижней части корпуса и две мощных защелки с верхней. Интересно и то, что корейцы до последнего следовали концепции «аккумулятор — часть корпуса», из-за чего нередко можно было встретить условный LG с красным корпусом и белой задней «крышкой».

Как технаря, меня сразу удивило… или нет, даже поразило наличие подписанных тест-поинтов с JTAG для процессора устройства. Иными словами, телефон можно было отлаживать чуть ли не с помощью Dirty-JTAG адаптера, что позволяло патчить память, ставить брейкпоинты и реверсить прошивку. В целом, отношение к моддерам в те годы у Samsung было совсем другое, нежели сейчас. Загрузчики никто не блокировал, телефоны шились через обычные UART-USB преобразователи (которые были в дата-кабелях), никакие внешние программаторы не были нужны, а при наличии бэкапа аппарат просто нереально было окирпичить.
Сегодняшняя ситуация выглядит куда более контрастной: Samsung запретила разблокировку загрузчиков, убрала режим Odin для прошивки в свежих флагманских смартфонах, а если у устройства выходит из строя флэшка — то процессор отправляется в мусор, необходимо брать пару процессор + флэш из другого устройства. Выглядит грустно…

Чего уж говорить, с прошивками для C100, Samsung клали map-файлы от линкера с полным описанием всех символов в прошивке. Все названия функций, переменных, секций в памяти — всё это было в открытом виде и простейшим скриптом импортировалось в дамп прошивки в дизассемблере. Например в моддинг-сцене Siemens’ов практически всё это реверсилось годами руками крутых моддеров, а реверсеры Motorol’ок пользовались слитыми elf-файлами из R&D центра Motorola в РФ (Telma) с той же самой информацией.
На C100 также существовала моддинг-сцена, но патчи там были попроще — в основном на расширение памяти и возможность установки Java-приложений с ПК.

После разборки корпуса, перед нами открывается вид на материнскую плату устройства. И здесь уже сразу видно причину «неубиваемости» C100 — щедро налитый под всеми BGA-чипами компаунд. В целом и аппаратная платформа сама по себе достаточно простая и примитивная, ломаться здесь особо и нечему.

Интересно то, что все мобильные платформы тех лет строились по одному и тому же принципу: Baseband (центральный процессор), микросхема MCP с NOR и DRAM/SRAM/PSRAM (иногда RAM была отдельно), контроллер питания, RF-фронтэнд и усилитель мощности. На этом список чипов обычно заканчивался. В целом, Samsung почти не исключение…
С нижней части платы скрывается процессор SkyWorks CX805 (Conexant CX805), который состоит из:
-
Одного ядра ARM7TDMI, работающего на частоте ~46МГц. Классика тех лет, ARM7 пришёл на замену m68k в телефонах рубежа 2000-х годов, а также использовался в игровых консолях типа GameBoy Advance. Помимо SkyWorks, это же ядро можно было найти в ранних Ti Calypso, Motorola Neptune LCA/LTE (тот самый C350, E398 и Razr V3), а также платформах от Analog. К слову в C350, ARM7 работал на частоте в 54МГц и был чуточку шустрее.
ARM отвечает за обработку пользовательского интерфейса, Java, воспроизведение звуков и прочие повседневные задачи. Также он занимается самыми верхними слоями GSM-стека — например, обработкой AT-команд.
-
Дополнительного DSP на собственной архитектуре Skyworks. Здесь он отвечает за обработку GSM-датаграмм (сырые пакеты, прилетевшие от фронтэнда, а в фронтэнд из антенны), кодирование и декодирование голоса и некоторые другие низкоуровневые операции с GSM-стеком типа установки связи с GPRS точкой доступа. В некоторых других телефонах, например Motorola C380 и E398, DSP также отвечает за декодирование mp3.
-
Контроллера параллельной внешней шины типа 8080. Контроллера DRAM в ранних мобильных процессорах не было, поэтому использовалась либо SRAM, либо PSRAM (DRAM с встроенным контроллером для рефреша памяти), из-за чего флэш, ОЗУ, дисплей и некоторая периферия подключались к одной единственной шине. В C100 к одной шине подключен дисплей, аудиочип Yamaha MA-3, ОЗУ и NOR.
-
RTC для подсчёта времени, аппаратных таймеров, ШИМ-контроллера, GPIO, контроллера клавиатуры, контроллера ИК-порта и конечно же PLL для тактирования периферийных блоков.
-
И всё это на техпроцессе в 250нм!
Вообще, я описал далеко не все фишки CX805, на самом деле процессор здесь гораздо сложнее, чем кажется. Но до пересказа даташита я пока ещё не дошёл 🙂
Рядом с процессором расположилась MCP Sharp LRS1828, которая содержит в себе ~16МБ памяти типа NOR и ~4МБ оперативной памяти типа SRAM.

Чуть правее расположилась легенда — чип Yamaha Y762C, также известный как MA-3. Как я уже говорил выше, это сердце аудиоподсистемы устройства и он занимается как синтезом звука с помощью FM-модуляции и Wave-таблиц, так и выводом уже оцифрованного звука с PCM/ADPCM потока. Рядом с MA-3 расположился неизвестный усилитель 4684.
В целом, то, что в нулевых чаще использовались midi вместо обычного PCM звука, связано как раз с ограниченным объёмом флэш-памяти, а не отсутствием технической возможности. В конце-концов, DSP из AMR на выходе выдаёт точно такой же PCM, какой и в wav-файлах.

Ещё чуть правее MA-3 расположился усилитель CX77306 вместе с TR-переключателем EPC05, а выше них RF-фронтэнд CX74017-16. Как мы с вами уже знаем по прошлым статьям, RF-фронтэнд является эдаким «черным ящиком», в котором происходит вся магия по преобразованию аналоговых GMSK-волн в цифровые датаграммы, которые затем обрабатывает DSP, и наоборот — из DSP датаграммы приходят в фронтэнд и отправляются в эфир. Процессор общается с фронтэндом посредством последовательной шины типа SPI.

Рядом с фронтэндом расположился контроллер питания CX20524, который включает в себя АЦП для RX-части фронтэнда, ЦАП для TX-части, монитор статуса питания (включая обработку кнопки включения), аудиокодек (для разговорной части устройства, не «музыкальной»), SPI для общения с процессором, LDO для формирования питания остальных модулей и, судя по схеме, чарджер литиевых аккумуляторов.
Однако на принципиальной схеме похоже есть ошибка, поскольку на практике зарядкой занимается легендарный LTH7. В нулевых довольно часто практиковался такой ремонт: если в телефоне выходила из строя логика зарядки и мастер не мог найти причину или нужный чип на замену, то брался LTH7 из донорских Samsung’ов, в «воздухе» разводилась необходимая обвязка (резистор и два сглаживающих конденсатора) и всё — зарядка снова работала 🙂

❯ Анализируем
В целом, принципиальную схему телефона можно представить вот так. Как мы с вами видим, центральный процессор в лице CX805 по сути представляет из себя самый обычный микроконтроллер по типу STM32, только к стандартному функционалу добавился ещё и контроллер клавиатуры. Интересно и то, что в те годы у мобильных процессоров не было отдельного контроллера дисплея и соответственно аппаратного ускорения отрисовки 2D-графики, из-за чего интерфейсы были относительно тормозными.

Помимо вычислительных ядер, в CX805 также есть BootROM с первичным загрузчиком и небольшой объём встроенной RAM. Как и в современных мобильных процессорах, в BootROM содержится код для первичной инициализации периферии — в первую очередь PLL для тактирования остальных модулей микроконтроллера, и UART для возможности запуска кода, полученного через COM-порт/USB. После первичной инициализации, BootROM ждёт специальный пакет «Beacon» на UART0 и если находит его — то загружает через UART в IRAM код специального загрузчика, который используется для перепрошивки телефона. Если Beacon’а нет — то управление передается прошивке в Flash-памяти телефона.

Как я и говорил чуть выше, вся внешняя периферия телефона подключается к классической 24-битной параллельной шине типа 8080, что позволяет адресовать до ~16МБ памяти. При этом для выбора между банками RAM и ROM используется аж 7 разных чипселектов. Дисплей также подключен через шину 8080, однако своих адресных линий он не имеет — вместо этого его CS скорее всего дергают отдельным GPIO и «замапплен» он куда-то за пределы Flash.

К процессору подходят два внешних клока — первый на 32кГц для тактирования часов реального времени, а второй на 19.5МГц от контроллера питания для тактирования PLL. Опорный кварц приходит сначала в контроллер питания в первую очередь из-за того, что 19.5МГц нужны для синхронизации внутренних процессов RF-тракта, в то время как за тактирование периферии и ARM/DSP-ядер в процессоре отвечает многоканальный PLL.

За звук в телефоне отвечают сразу два модуля: DSP, который кодирует и декодирует AMR во время разговора, и аудиокодек, который представляет из себя ЦАП для преобразования PCM в аналоговый звук и АЦП, который преобразовывает звук из микрофона в тот же самый PCM. За музыку (и возможно системные звуки), как мы помним, отвечает чип от Yamaha.
Также в КП расположился контроллер SIM-карты. Дело в том, что разные сим-карты при внешней идентичности могут работать при разных напряжениях. Раньше симки работали при напряжении 3В, а современные работают при 1.8В. Соответственно сигнальные линии симки имеют такие же логические уровни, как VIn — а значит для работы нужна схема согласования, которую КП как раз и реализует. Для управления LDO, статусом зарядки и чтения данных с SIM, процессор подключен к КП через шину SPI.

За питание процессора, RF-фронтэнда и других модулей в КП отвечают конфигурируемые LDO’шки (их настраивает драйвер контроллера питания). Кроме того, присутствует дополнительная постоянно работающая LDO-шка для питания RTC в процессоре. Логика работы тут простая: когда мы вставляем аккумулятор, на VIN КП приходит VBAT — питание с аккумулятора. Далее внутренняя логика КП переходит в так называемый режим сна и ждёт нажатия кнопки включения. После нажатия кнопки, процессор сразу же поднимает LDO-шки в стандартные значения и ждёт ответа от процессора — так называемый Heartbeat. Если процессор не отвечает в течении какого-то времени, Watchdog в КП просто отключает питание — то есть когда мы выключаем телефон, процессор просто перестаёт слать Heartbeat’ы.
Интересно и то, что кнопка включения обычно сразу заставляет КП включить все питальники, но не устанавливает на них защелку. Защелка устанавливается программно загрузчиком телефона, если пользователь держал кнопку включения достаточно долго. Также в КП есть классический CC/CV чарджер, но в Samsung’ах его почему-то не использовали, предпочитая внешний чарджер LTH7. Зато использовали Fuel-gauge для мониторинга заряда аккумулятора.

За RF-часть я не настолько силен, но удивлен что ADC/DAC для RF-части находится не в фронтэнде, а именно в КП. Зато в фронтэнде в свою очередь находится мультиплексор для приема сигнала с разных частот — 900, 1800 и 1900, а также синтезатор частот и логика для управления усилителем сигнала. Интересно и то, что усилитель — один из главных потребителей в телефоне (может легко в пике потреблять чуть ли не 2А) и его всегда подключают напрямую к VBAT, так что при его выходе из строя телефон не включится вообще.

И в целом это всё! Могли бы с вами ещё более подробно изучить схему телефона на примерах конкретных цепей, но сервис-мануалы у Samsung’а так себе — есть только основные трейсы.

❯ Заключение
Вот таким был легендарный моноблок от Samsung. Как мы с вами видим, всё гениальное — просто! Красивому, шустрому и функциональному устройству не всегда нужен самый мощный процессор, работающий на предельном клоке и куча оперативной памяти, иногда вопрос стоит исключительно в оптимизации и желании сделать реально крутой аппарат. Респект инженерам Samsung!
Ну а я надеюсь, что вам было интересно. Подписывайтесь на блог, чтобы не пропускать новые статьи каждую неделю! А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
А если вы хотите что-нибудь подарить из железа и увидеть о нём статью — пишите мне в Telegram. Меня очень интересуют самые разные гаджеты: начиная от игровых консолей и любых связанных с геймингом устройств, телефонов, смартфонов, КПК, заканчивая ретро-компьютерами и ноутбуками. Кто знает, может героем следующей подобной статьи окажется ноутбук из 90-х? 🙂
После обзоров устройства не продаются, а остаются в моей коллекции. Когда-нибудь я хочу сделать музей, где к каждому устройству можно будет приложить QR и почитать мою статью. Кто знает, вдруг на следующей неделе я также подробно расскажу про девайс из вашей юности? 🙂

Кстати, у меня есть GameBoy Advance SP, под который я очень хочу написать игру. Однако мой экземпляр был залит водой и кофе. Может у кого-то есть донор с дохлой платой, откуда я смог бы взять контроллер питания? У меня AGS-101.
Может быть интересно:
-
Как на самом деле работают LLM
-
Тайна легендарной Nokia N70: как финны сделали кнопочный смартфон сразу с двумя процессорами
-
АВК-6: Персональный Аналоговый Компьютер

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.Что думаете о C100?80%Реально легенда😎 Чуть ли не кнопочный iPhone со своим UX!40%Вообще не легенда. Лучше утилитарный и практичный интерфейс Nokia, чем этот колхоз от Samsung.00%А я смотрю они с годами не меняются. Что в C100 UI пестрит свистелками, что в OneUI в S26!!!00%Вот уж точно никогда не подумал бы, что C100 слабее Moto C350. Чудеса оптимизации!00%А что вы хотели? Пока Samsung пилили прошивку по всем эмбеддерским канонам, Motorola наваливала абстракций и ООП там, где оно не нужно. Вот и результат.020%Открытый JTAG? Разблокированный с завода загрузчик? MAP-файлы для прошивки и куча дебаг-инфы? Это точно Samsung???1 Проголосовали 5 пользователей. Воздержался 1 пользователь. Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.Как вам такой формат статей?85.71%О, это классный контент. Подробный разбор схемотехники — такое мы любим!60%Это мусорный контент. Такое не нужно ни на Хабре, ни даже на Пикабу. Автора забанить.014.29%Теперь я знаю как работают кнопочники под капотом и из чего состоят😎10%Статья написана дилетантом, который вообще не шарит в теме. Я как инженер сразу это понял!00%Статья написана дилетантом, который вообще не шарит в теме. Я как ремонтник сразу это понял!00%Статья написана LLM, а автор вообще не шарит. Я сразу это увидел!!!0 Проголосовали 7 пользователей. Воздержавшихся нет.
