Друзья! А вы когда нибудь задумывались о том, как делают смартфоны и планшеты? Какие инструменты для этого используются и откуда берутся материнские платы разных размеров и форм-факторов, но с таким похожим расположением элементов? Недавно мне удалось приобрести девкит aka evaluation board популярного в прошлом среднебюджетного чипсета Qualcomm Snapdragon 410 за 4.000 рублей и заценить его, что называется, в деле. Чем он отличается от одноплатного компьютера, из чего он состоит и что умеет — читайте в сегодняшней краткой, но достаточно подробной статье!
❯ Что такое девкит?
Если вы крутой и продвинутый инженер, то ответ на вопрос что такое evaluation board наверняка знаете и сами. Однако сегодняшний материал будет написан в эдаком научпоп-стиле «для всех», поэтому строго в комментах не судите — старался всё расписать максимально доступно для рядового читателя!
Итак, давайте начнём издалека. В каждом смартфоне и планшете есть набор необходимых для функционирования системы компонентов:
- Чипсет: сердце устройства, фактически процессор. Однако от процессоров общего назначения мобильные чипсеты отличаются тем, что в одном кристалле помимо ARM-ядер также находятся вспомогательные модули — контроллер памяти и eMMC/UFS, графический ускоритель, DSP-модуль для обработки изображения с камер, аудио-тракт, отвечающий за вывод звука через встроенный ЦАП или через протокол i2s на внешний кодек, а также модуль управления пинами общего назначения (GPIO) и общения с внешними устройствами с помощью шин SPI и I2C.
- BT/Wi-Fi/GPS/FM радиотракт: обычно один комбо-чип, объединяющий в себе все указанные технологии беспроводной передачи данных. Модуль подключён к процессору напрямую, ранее — через SDIO, сейчас с помощью иных аппаратных шин. Вокруг чипа стоит обвязка — усилители сигнала и различные небольшие компоненты, необходимые для функционироавния тракта.
Пример реализации GPS/Wi-Fi/BT в чипсете SC6820. В MediaTek тех лет реализация +- похожая - GSM радиотракт: также известный как модем. Именно от него зависит, какие стандарты связи и наборы частот будет поддерживать устройство. Основой модема служит бейсбенд — специальный DSP-процессор со своей собственной прошивкой, который занимается измерением уровня сигнала, выбором вышки и коммуникацией с ней, а также обработкой AT-команд, которые посылаются чипсетом при совершении звонков, обработке SMS и т. п. Также бейсбенд занимается декодированием звука. К бейсбенду в пару идет антенный усилитель и свитч, обычно в одном или нескольких чипах (в зависимости от набора поддерживаемых стандартов).
- Контроллер питания: этот чип выполняет сразу несколько важных ролей, связанных с питанием устройства — схема зарядки (чарджер) литий-ионных АКБ, многоканальный ШИМ-контроллер, способный выдавать несколько уровней напряжений (обычно называемых Power Rail'ами. Типичные напряжения в смартфоне/планшете — ~0.8V питание ядер процессора, 1.8V — питание логики, 3.3V — питание контроллера тачскрина/дисплея, 5V — напрямую никуда не поступает, бывает лишь на входе USB). К КП всегда идёт обвязка в виде мелких SMD-компонентов и ключей. В редких случаях (привет Unisoc) и его умудряются запихнуть в чипсет!
Звучит сложно? После практики ремонта и моддинга смартфонов всё значительно проще :)
Однако спроектировать такую большую систему «на коленке» сложно и для разработчиков смартфонов/планшетов существуют специальные платы, называемые evaluation board или понятным любому русскому человеку словом девкит.
Dragonboard 800
На таких платах распаяно всё необходимое для работы устройства: процессор, память, радиотракт, джек для звука и микрофона, чарджер для АКБ, USB и конечно-же, JTAG для отладки с гребенкой, на которую выведены пины процессора. Кроме того, на девкиты часто устанавливаются уже готовые дисплеи и тачскрины, а процессор с ОЗУ и памятью нередко выносят в отдельные системы на модуле (SoM, о серийном планшете с съемным процессором читайте в моей отдельной статье). Делается это для возможности быстрой замены спаленного проца (ну, в конце-концов, не все инженеры могут сдуть и поставить процессор в BGA-корпусе) и в некоторой степени для упрощения дизайна самой платы (поскольку на SoM есть лишь самая необходимая обвязка). То есть сами девкиты — это формально две платы, где основная представляет из себя лишь набор интерфейсов и гребенки пинов с процессора!
На самом деле, evaluation kit'ы не шибко отличаются от современных одноплатников — единственное отличие в габаритах (одноплатники в разы меньше и подходят для готовых устройств), доступных шинах и GPIO: хотя и здесь есть интересные устройства типа Olimex A20 SoM, который выводит почти все пины с AllWinner A20. Так что можно смело сказать, что одноплатники отпочковались от девкитов и являются их куда более дешевыми, а главное поддерживаемыми коммьюнити аналогами.
Недавно мне удалось купить девкит Snapdragon 410 под названием Variscite Dart SD410. Это, конечно, не самый крутой доступный девкит (у него нет GSM-части), но тем не менее это полноценная плата с собственным столом, дисплеем, тачскрином и различными образами ОС.
Нашёл я его на известной онлайн-барахолке, человек хотел сделать из него игровую консоль, но не сложилось. Так и выставил за 5.000 рублей. Немножко торга и вот — девкит уже у меня, а я как большой ценитель различных редких и интересных одноплатников и девкитов не могу нарадоваться :)
Давайте же распакуем его и познакомимся с ним поближе!
❯ Распаковка
Поставляется девкит в довольно большой коробочке с кратким мануалом, а также блоком питания. Для чуть более старых девкитов, например Idea6410 на базе Samsung S3C6410, характерны были DVD-диски в комплекте с лицензионной (?) Visual Studio 2005, Platform Builder с Windows CE и, конечно-же, BSP.
Сама плата прикручена к специальному «столу», дабы всё нужное не висело «на соплях». Несмотря на относительно большие размеры, девкит вполне можно превратить и в готовое устрйоство, размерами близкими к 7-дюймовому планшету. Делаем свой Nintendo Switch на Снапе!? :)
С верхней стороны платы расположен коннектор камеры, гребенка для JTAG, I2C/SPI и куча GPIO. Также сверху есть батарейка для поддержания работы RTC и три кнопки, характерных для Android (назад, домой и включение), а также перемычки на переключение режима загрузки. SD410 умеет грузиться с MicroSD, eMMC и… USB! Вот уж неожиданно для устройства на «снапе»!
По центру расположена та самая съёмная система на модуле с процессором и ОЗУ на борту. В качестве чипсета выступает APQ8016E с eMMC производства Samsung, на плате SoM также можно увидеть радиотракт Wi-Fi/BT/GPS и с обратной стороны контроллер питания. Фактически — это минимально необходимый набор для работы планшета или смартфона, остальная плата — лишь разведенная периферия!
Снизу платы разведен сетевой контроллер для LAN, а также USB-порты и 3.5мм разъемы Jack для подключения микрофона и динамиков. Есть также пятачки для ручной пайки динамиков и некоторых иных элементов.
С левой стороны платы расположен дисплей с емкостным тачскрином. Меня сразу удивила надпись LVDS, поскольку в мобильных устройствах гораздо более характерен MIPI DSI (схожий протокол), однако сняв и осмотрев дисплейный модуль я убедился, что Variscite изготовили переходную плату с TTL RGB на LVDS с помощью внешнего скалера. Зачем? Я и сам не знаю. Но с обратной стороны платы выведены пины DSI напрямую для подключения дисплея с мобильных гаджетов.
Справа мы видим свитч питания и набор пользовательских светодиодов, которыми можно поморгать. Кнопочки, кстати, тоже отдельные GPIO экспортированные в систему и их можно использовать для своих нужд.
Давайте же запустим плату!
❯ Запускаем
Для функционирования платы необходимо как минимум две вещи. Первая — исходный код ядра. Так уж получилось, что далеко не все чипсеты поддерживают Mainline-ядро Linux и используют свои форки, пока ещё не объединённые с основной веткой. Вторая называется BSP (Board Support Package) — пакет для поддержки системой определенной платы. В случае Linux, в BSP содержится конфиг сборки ядра, device-tree или machine-файлы (если ядро не мейнлайн и без поддержки dtb) с описанием подключенных к плате устройств и конечно-же сами драйвера для дополнительной периферии (например контроллера дисплея).
Чтобы получить образы системы, нужно регистрироваться на сайте вендора и заходить на приватный FTP… но у меня такой возможности нет, поскольку девайс я покупал с рук. Но продавец выслал мне BSP с recovery-образами двух систем: Android и Yocto Linux.
Android уже был предустановлен на eMMC и здесь всё в целом стандартно: обычная система версии 7.1, AOSP, но с различным тестовым и презентационным софтом от Qualcomm. В целом, это уже фактически готовый самый обычный Android-планшет, только с внешней гребенкой и питающийся только от 5В:
Гораздо более интересной выглядит установка Linux. Образы поставляются в виде прошивки для fastboot, которые шьются буквально одной кнопкой. Сначала нужно ввести плату в режим fastboot: делается это включением платы с зажатой кнопкой «назад». Затем распаковываем архив с Yocto Linux и выбираем нужный образ — есть десктопный, консольный и с оконным менеджером Weston. Я выбрал последний: распаковываем gz-архив и редактируем скрипт прошивки, дабы он брал образ rootfs с weston:
После этого запускаем процесс прошивки, ждём секунд 30:
И у нас есть полноценный Linux как на одноплатнике!
❯ Заключение
Ну что друзья, в сегодняшнем материале мы с вами рассмотрели такую интересную систему на модуле. Надеюсь, вам было интересно! А с какими интересными девбордами и чипсетами работали вы?
Друзья, если у вас есть похожие девкиты или просто одноплатники на каких-то интересных чипсетах типа древних самсунгов (времен S5PC), OMAP'ов, i.MX и т. п. и вам они не особо нужны — я готов рассмотреть их покупке. Особенно интересно было бы поколупать такой легендарный процессор, как Intel PXA (или его продолжателя в лице Marvel PXA) — киты с ним в свое время было достать несложно. Пишите в личку на Хабре :)
Автор: Богдан