Одноплатные компьютеры: что, зачем и почему. HummingBoard – одноплатные компьютеры для “интернета вещей” Пк на одной плате

Одноплатные компьютеры: что, зачем и почему. HummingBoard – одноплатные компьютеры для “интернета вещей” Пк на одной плате
Одноплатные компьютеры: что, зачем и почему. HummingBoard – одноплатные компьютеры для “интернета вещей” Пк на одной плате

Исходя из названия, одноплатный компьютер - это компьютер, собранный на одной плате, с полным набором необходимых для полноценного функционирования модулей: процессором, оперативной памятью, видео-процессором, сетевым(и) интерфейсами, системой ввода-вывода и т.д. Такие компьютеры, как правило, имеют очень компактные размеры (с пластиковую карту и даже меньше), низкое энергопотребление, а так же сравнительно невысокую цену. Эта публикация познакомит Вас с некоторыми интересными представителями данного сегмента рынка.

Сфера применения

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

На сегодняшний день одноплатные компьютеры стали достаточно производительными, что ещё больше расширило возможности их применения - большинство современных моделей, имеющих на борту 1, 2 Gb и более оперативной памяти, 4-х и даже 8-ми ядерные процессоры, достаточно мощные графические и качественные звуковые подсистемы, могут быть использованы как домашние медиа-центры, в системах видеонаблюдения, а так же как энергоэффективные десктопы, мини-компьютеры под управлением операционных систем на основе ядра Linux - Debian, Ubuntu, Fedora, Android и т.д.

Существует большое количество производителей, выпускающих одноплатники с использованием мобильной архитектуры ARM, мы рассмотрим некоторых, наиболее интересных из них:

Raspberry Pi

Один из первых одноплатных компьютеров на мобильной архитектуре ARM, разработан Raspberry Pi Foundation. В последствии получил большую популярность и породил множество аналогов и клонов, как более производительных и дорогих, так и более дешёвых. Выпускается в нескольких комплектациях, от самой дешёвой (Raspberry PI Zero) с одноядерным процессором и 256 Mb оперативной памяти и до топовой (на момент написания статьи - Raspberry Pi 3 Model B) с 4х ядерным процессором Broadcom BCM2837 и 1Gb оперативной памяти. Во всех версиях имеются USB порты (от 1го до 4х, в зависимости от модели), порт GPIO (general purpose input/output, 26-пиновый или 40-пиновый). Есть модели с сетевым интерфейсом Ethernet, есть с Ethernet + Wi-Fi и Bluetooth, и есть модели вовсе без сетевых интерфейсов (Raspberry Pi 1 Model A). Стоимость данных плат варьируется от $10 до $40

Установка операционной системы производится путём развертывания заранее подготовленного образа (скачивается на официальном сайте) на MicroSD карту, которую нужно покупать отдельно. Поддерживаемые операционные системы: Debian, Fedora, Arch Linux, Gentoo, RISC OS, Android, Firefox OS, NetBSD, FreeBSD, Slackware, Tiny Core Linux, Windows 10 IOT.

Banana Pi, Banana Pro

Фактически это клон Raspberry Pi с улучшенными характеристиками, разработан компанией "Lemaker". построен на аппаратной платформе Allwinner A20 SoC (центральный процессор ARM Cortex-A7 dual core + графический процессор ARM Mali400MP2 dual GPU core) и 1GB DDR3 SDRAM. В отличии от Raspberry Pi имеет порт SATA с отдельным разъёмом питания (поддержка жёстких дисков до 4 ТБ), сетевой интерфейс Ethernet 10/100/1000 Mbps (против 10/100 Mbps у Raspberry Pi), возможна установка отдельного Wi-Fi-модуля (USB WiFi Dongle). Так же имеется коннектор для камеры (Camera Serial Interface) и встроенный ИК-порт. Кроме цифрового видеовыхода HDMI есть LVDS connector для сенсорных дисплеев и композитный видеовыход (AV video).

Версия отличается наличием встроенного WiFi 802.11 b/g/n 2.4GHz, шиной расширения на 40 пин. (вместо 26 у Banana Pi), отсутствием композитного видеовыхода.

Так же существует много модификаций данной платы, например:

  • - на аппаратной платформе Allwinner A31S , с более мощным, 4-ех ядерным процессором (Cortex A7 quad-core) и графическим ядром (PowerVR SGX544MP2).
  • (версия 1.2) - на аппаратной платформе Allwinner A83T , с 8-ми ядерным процессором (ARM Cortex-A7 octa-core, 1.8 ГГц), графическим ядром (PowerVR SGX544MP1), 2 ГБ LPDDR3 SDRAM оперативной памяти и со встроенной 8G eMMC памятью.
  • - отличается богатством сетевых интерфейсов: 5 интерфейсов Ethernet 10/100/1000 Mbps, Wi-Fi 802.11 a/b/g/n 2.4 ГГц/5 ГГц, а так же Bluetooth 4.1. Кроме этого, данная модель имеет CSI вход для видеокамеры и встроенный микрофон. Такая конфигурация даёт широкие возможности в построении сетевых шлюзов, маршрутизаторов, беспроводных точек доступа, систем видеонаблюдения и т.д.

Banana Pi M3 (version 1.2)

Доступные для установки операционные системы: Debian, Raspbian, Scratch, Lubuntu, openSUSE, ArchLinux, Bananian Linux, Android, Fedora, Kali Linux. Установка ОС возможна как на TF-карту (MicroSD), так и на внутреннюю eMMC память (для тех моделей, у которых она есть).

Официальный сайт производителя - www.lemaker.org

Orange Pi

Ещё один последователь "Малины" от китайской компании Shenzhen Xunlong Software CO, отличается очень демократичной ценой и неплохими характеристиками. Богатый модельный ряд даёт возможность выбрать одноплатник этого производителя под любые технические требования и любой бюджет: Orange Pi Zero, Orange Pi One, Orange Pi Lite, Orange Pi PC (PC2), Orange Pi PC Plus, Orange Pi Plus 2E, Orange Pi Plus (Plus 2), Orange Pi Zero Plus2, Orange Pi 2G-IOT, Orange Pi Win/ Win Plus, Orange Pi Prime, Orange Pi i96.

Рассмотрим некоторые из них:

Один из самых компактных одноплатников: его размеры составляют всего 48 мм × 46 мм при весе в 26г. Такие габариты позволят использовать эту модель в проектах, требующих от всех компонентов минимальных размеров и минимального энергопотребления. При своих скромных габаритах данная модель имеет неплохие характеристики - на нём используется аппаратная платформа AllWinner H2 SoC (центральный процессор Quad-core Cortex-A7 1,2 GHz + графика Mali400MP2 GPU), 256MB/512MB DDR3 SDRAM оперативной памяти, встроенный сетевой контроллер 10/100M Ethernet RJ45 с PoE (Power over Ethernet - технология, позволяющая устройству получать питание из кабеля витой пары), модуль Wi-Fi 802.11 b/g/n, 26 пиновый порт расширения, 13 пиновый функциональный интерфейс (2xUSB 2.0, ИК вход, вход микрофона и видеовыход), а так же USB OTG (с возможностью получения питания).

Цена этого мини-компьютера на Aliexpress - от $7 за версию с 256Mb оперативной памяти и от $9 за 512Mb.

Orange Pi PC 2 - модель построена на базе AllWinner H5 SoC (Четырёхядерный 64-битный Cortex-A53 + восьмиядерная графика Mali450), имеет 1GB DDR3 оперативной памяти, гигабитный Ethernet-порт, CSI вход для подключения видеокамеры, HDMI-выход, на борту присутсвует звуковая подсистема с 3,5 мм аудиоджеком и встроенным микрофоном. Плата имеет поддержку TF card (до 64Gb), NOR flash (2MB), ИК-приемник, 3 USB 2.0 порта, один USB 2.0 OTG порт. Так же имеется 40-ка пиновый порт расширения (совместимый с Raspberry Pi B+), UART, ground.

Модель с 2Gb оперативной памяти и аппаратной платформой AllWinner H3 SoC (четырёхядерный Cortex-A7 1,6 Ghz + Mali400MP2 GPU). Отличается наличием встроенной eMMC флеш-памяти объёмом 16GB, которая имеет большее быстродействие чем TF-карты памяти, а так же наличием интерфейса SATA 2.0 для подключения магнитных жестких дисков (HDD) и твердотельных дисков (SSD) и наличием встроенного Wi-Fi модуля. Остальные характеристики практически повторяют предыдущую модель за исключением наличия 4-ёх портов USB вместо 3-ёх у Orange Pi PC 2.

Данная модель имеет на борту встроенный GSM/GPRS-модуль с поддержкой SIM-карт мобильных операторов, встроенный микрофон и аудиовыход, встроенный модуль Wi-Fi и Bluetooth, вход для аккумуляторных батарей, CSI вход для видеокамеры, а так же выход для подключения LCD. Остальные характеристики достаточно скромны: аппаратная платформа RDA8810 SoC (центральный процессор ARM Cortex-A5 32bit и графический процессор Vivante"s GC860), 256Mb оперативной памяти, один USB 2.0 порт и один USB OTG 2.0 порт, поддержка карт-памяти и встроенные 500Mb SLC Nand Flash.

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

Операционные системы, доступные для установки: Android, ArchLinux, Armbian, Ubuntu, Lubuntu, Debian, Rasbian, OpenSuse, Fedora, Kali Linux.

Cubieboard

Cubieboard - имеет в модельном ряду одни из самых производительных конфигураций на рынке одноплатников. На сегодня выпускаются такие модели: Cubieboard 1, Cubieboard 2, Cubieboard 3 (Сubietruck), Cubieboard 4 (CC-A80), Cubieboard 5 (Сubietruck Plus), CubieAIO-A20.

Самая младшая модель в линейке Cubieboard имеет совсем не такие уж и малые характеристики: аппаратная платформа Allwinner A10 SoC (ARM Cortex A8 @ 1 ГГц процессор, с Mali 400MP GPU и CedarX VPU), 1Gb DDR3 памяти, 4 Гб встроенной NAND Flash, 1x MicroSD слот, 1x SATA порт, HDMI выход, разъем сетевого интерфейса 10/100 Ethernet, 2x USB порта, 1x USB OTG порт, ИК-приёмник, 96-ти контактный порт расширения (I²C, SPI, LVDS, CSI/TS, FM-IN, ADC, CVBS, VGA, SPDIF-OUT, R-TP)

Модель на базе Allwinner A20 с огромным количеством портов расширения: разъём miniPCIE с поддержкой модулей 3G/4G, интерфейс SATA 2.0 с поддержкой mSATA, 6xUSB портов, 1 x OTG порт, 1 x Toslink (SPDIF оптический), 54 пиновый порт расширения включающий UART, LineIN, MicIn, PWM, Low Resolution ADC, SPI, I2C, LCD, GPIO, CCIR656, MIPI_CSI, I2S, сеть 100M/1000M Ethernet RJ45, встроенные 4/8GB TSD/emmc памяти, 1GB DDR3 оперативной памяти, встроенный модуль Wi-fi и Bluetooth 4.0.

Cubieboard 5 (Cubietrack Plus) - топовая модель на момент написания статьи, имеет внушительные характеристики, немалые размеры и цену (как для одноплатных компьютеров). Построена на базе аппаратной платформы AllWinner H8 (восьмиядерный ARM Cortex A7 с максимальной частотой 2.0 Ghz и графикой PowerVR 544), имеет 2Gb DDR3 оперативной памяти, гигабитную сеть, встроенный Wi-Fi модуль, работающий в двух диапазонах (2,4 и 5 Ghz), Bluetooth, встроенные 8Gb eMMC памяти, интерфейс SATA 2.0, традиционный слот для microSD карт, выход HDMI, аналоговый аудио выход 3,5 мм, встроенный микрофон, 2 USB 2.0 порта, 1 USB OTG порт, 70-ти пиновый порт расширения, а так же встроенный аккумулятор RTC (CMOS) на 40 mAh. На плате присутствует распайка для литиевых аккумуляторов - возможно подключение автономного питания. Кстати о питании: для полноценной работы Cubieboard 5 рекомендуется блок питания не меньше 2,5A при 5 вольтах (12,5 Вт). Плата имеет достаточно большие размеры (опять же, как для одноплатных ПК) - 112мм х 82мм и немалую цену - в комплектации со всеми шнурами и кейсом около $90. Данная конфигурация имеет достаточные параметры для использования Cubieboard 5 как обычного десктопа (или мини-компьютера) под управлением Linux.

Официальный сайт одноплатника - cubieboard.org

Odroid

Odroid - серия одноплатников от южнокорейской компании Hardkernel Co. От предыдущих рассматриваемых моделей отличаются использованием аппаратной платформы Amlogic SoC (для младших моделей) и Samsung Exynos SoC (для старших моделей) вместо более дешёвого Alwinner. На сегодня модельный ряд состоит из: ODROID-C0, ODROID-C1+, ODROID-C2, ODROID-XU4, ODROID-XU4Q.

Рассмотрим некоторые из них:

Младшая модель в линейке, использует Amlogic S805 (четырёхядерный Cortex-A5(ARMv7) 1.5Ghz и графика Mali-450 MP2). На борту 1Gb DDR3 SDRAM оперативной памяти, слот для подключения eMMC памяти, слот для microSD карт, 40 + 7 пиновый порт GPIO, 2 порта USB 2.0, ИК приёмник, зарядка для литиевых аккумуляторов. Плата имеет весьма компактные размеры (65х56 мм) и позиционируется производителем как платформа для создания роботов и дронов (квадрокоптеров).

Платформа этой модели - Amlogic S905 SoC (четырёхядерный ARM Cortex-A53 (ARMv8) 1.5GHz и ARM Mali-450), модель имеет 2Gb DDR3 SDRAM, модуль для подключения eMMC памяти объёмом от 8 до 64 Gb и слот для подключения карт памяти MicroSD (до 128 Gb), 4 порта USB2.0, порт USB2.0 OTG, сеть 10/100/1000Mbps Ethernet, видеовыход HDMI 2.0, аудио вход, разъём для подключения видеокамеры, слот расширения 40pin (GPIO / UART / I2C / ADC) и 7pin port (I2S).

ODROID-XU4 / ODROID-XU4Q

Обе модели построены на базе Samsung Exynos5422 (Cortex-A15 2Ghz и Cortex-A7 восьмиядерный процессор + Mali-T628 MP6), 2Gb LPDDR3 оперативной памяти, модуль подключения чипов памяти eMMC (которая гораздо быстрее чем microSD карты), слот для MicroSD карт памяти, сеть 10/100/1000Mbps Ethernet, HDMI выход, 2 порта USB 3.0 и 1 порт USB 2.0 возможность подключения через USB Serial ATA3 адаптера для HDD или SDD дисков.

В аппаратной платформе Samsung Exynos5422 применена технология ARM big.LITTLE , которая предполагает совмещение на одном ядре нескольких высокопроизводительных процессоров и нескольких энергоэффективных. Данная технология призвана снизить энергозатраты при выполнении операций не требующих всей мощности, путём использования в таких задачах только энергоэффективных ядер, и наоборот, когда системе нужны все ресурсы в работу включаются высокопроизводительные ядра.

Различие у этих двух моделей в системе охлаждения - у XU4 она активная (радиатор + кулер), а у XU4Q пассивная (только радиатор), что, по тестам производителя, ведет к 10% потере мощности при максимальной нагрузке (а следовательно максимальном тепловыделении), зато такая система полностью бесшумна. Впрочем, кулер у модели XU4 работает не всё время, а только при достижении процессором определённого температурного предела.

Дополнительные модули и аксессуары

Купив одноплатный компьютер Вам понадобится также приобрести минимально необходимый набор аксессуаров для его работы: блок питания, microSD карту памяти или модуль памяти eMMC (если у модели нет встроенной памяти) для установки операционной системы, радиатор охлаждения (если он необходим). Данный набор может поставляться как в комплекте с платой, так и отдельно. Об этих и других аксессуарах поговорим далее:

Блоки питания

При покупке отдельно блока питания для одноплатного компьютера следует поинтересоваться у продавца (или производителя) какой мощности он должен быть для стабильной работы платы и всей периферии, подключенной к ней. Для большинства одноплатников подходят блоки питания 5В при 2-2,5А (10-12,5 Вт), но есть модели требующие большей мощности от блока питания (например ODROID XU4 необходимо 5В и 4А - 20 Вт). Так же следует обратить внимание на тип вилки, и просить у продавца евро-вилку, чтобы потом не пришлось покупать переходники с китайского или американского стандарта.

Система охлаждения и корпуса

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

Дополнительные модули, дисплеи

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

  • Платы расширения GPIO - служат для значительного расширения стандартного GPIO порта, подключения большего количества устройств.
  • Различные датчики: инфракрасные датчики, датчики приближения, датчики температуры и влажности, датчики звука, сейсмодатчики, фото датчики, датчики огня, газовые датчики, датчики шума, ультразвука и т.д., что позволяет использовать одноплатный компьютер в самых разнообразных проектах. Такие датчики, как правило, продаются комплектами и стоят в пределах $5 - $12.
  • Дополнительные контроллеры: SATA-контроллеры, контроллеры USB, аудиоконтроллеры и т.д.
  • Видеокамеры
  • Дополнительные радиомодули: Wi-Fi и Bluetooth (для плат, у которых их нет в базе), GSM и т.д.
  • LCD-мониторы (для плат, на которых есть выход для подключения LCD) с сенсорными экранами от 3 до 10 дюймов

Другие производители одноплатных компьютеров

Рынок одноплатных компьютеров достаточно велик и в данной статье рассмотрена лишь небольшая его часть, с целью познакомить читателя с основными характеристиками и возможностями одноплатников. Кроме описанных в статье производителей, существует и множество других, чьи модели представляют не меньший интерес. Если Вас заинтересовали данные устройства и Вы уже придумали как бы могли их использовать для воплощения своих идей в жизнь, возможно Вы захотите поискать в интернете, для сравнения, и другие модели от других производителей. Вот неполный их список: Arduino, Arndale Board, BeagleBone, Cotton Candy, Cubox, Gumstix, Hawkboard, Hummingboard, IGEPv2, PandaBoard, Parallella, Rascal, Rockchip, Roseapple Pi, Snowball, Stick PC, UDOO, Virt2Real.

Разработка одноплатного компьютера с нуля. Пособие для начинающих / Хабр

Я занимаюсь разработкой электроники. Начал сравнительно недавно - когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало - на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ - это было увлекательно…

Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью - все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта. Проекты на микроконтроллерах мне порядком поднадоели - подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» - ни гибкости, ни сложности. С системами на кристалле - SoC (System on Chip) до этого я дела особо не имел - разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.

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

Проектирование

В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт - отличный набор новичка. В придачу - композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.

После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.

Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.

Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум - в невозможности инициализации памяти вообще. Цепи питания процессора - ошибка сожжет процессор при первом включении, интерфейсы - потеря периферии на этих интерфейсах, и так далее.

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

Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию - микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая - 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.

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

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

Становится не по себе - проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя - там каша из сотен скриптов и пакетов. Веселье начинается.

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

Отступление

Эта система на кристалле приглянулась мне еще и тем, что несет на борту все необходимые для ее жизни регуляторы питания - как DC/DC (импульсные) так и LDO (линейные). В том числе и зарядное устройство для Li-Pol аккумулятора. Заводишь на SoC 5 вольт от USB - получаешь 1V8, 2V5, 3V3 и 4V2 на выходе. Что-то достается самому процессору, что-то уходит на память, можно аккумулятор подзарядить. Удобно. Можно сжечь все и сразу:)

SoC bringup

Прочь сомнения, подать питание! И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю - есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»

Начинается самое интересное - bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.

В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта - откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо - с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.

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

Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом - на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть - в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! - Хммм, скверная примета…)

Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания - 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.

Дальше надо разобраться с первоначальным запуском процессора и проверить работу DDR. Начинаю копать, и в процессе поисков собираю набор утилит и «бутлетов» - исходных кодов, позволяющих проинициализировать подсистемы питания, связку DDR контроллер-память и подготовить систему к дальнейшей работе. То, что надо - максимально простые исходники, с обилием индусского кода, но главное, они работают.

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

Отступление Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.

Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.

Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря:)

Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!

PowerPrep start initialize power… Battery Voltage = 0.65V No battery or bad battery detected!!!.Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:PowerPrep start initialize power… Battery Voltage = 1.74V No battery or bad battery detected!!!.Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 start memory test, at 0x40000000 end memory test, at 0x41FFFFFC Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.

U-Boot

Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией - актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное - моргать светодиодиком - все то, что нужно для счастья и более гибкой отладки на первоначальном этапе. Поэтому не долго думая выкачиваю актуальную версию из официального репозитория, беру самую близкую конфигурацию, компилирую, собираю с индусскими бутлетами в один файл, и загружаю в процессор:PowerPrep start initialize power… Battery Voltage = 1.74V No battery or bad battery detected!!! Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 start memory test, at 0x40000000 end memory test, at 0x41FFFFFC

CPU: Freescale i.MX23 rev1.4 at 227 MHz BOOT: USB DRAM: 32 MiB MMC: MXS MMC: 0 MMC0: Bus busy timeout! MMC0: Bus busy timeout! MMC0: Bus busy timeout! MMC0: Bus busy timeout! Card did not respond to voltage select! MMC init failed Using default environment

In: serial Out: serial Err: serial Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 =>

И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту - в терминале от процессора приходит ошибка. Вытаскиваю карту - другая. Вот это поворот! ©

SD/MMC

Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.

Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot - прошить в единицу, и SD_POWER_GATE_GPIO - выбрать NO_GATE - в моем дизайне управление питанием карточки не предусмотрено.

«Неудобненько как-то получается». Это означает, что нельзя сделать загрузочную карту памяти, которой можно будет прошивать готовые приборы в партии, вместо этого придется подключать каждый прибор, и вручную прошивать эти злосчастные OTP биты. Разумеется, этот процессор я не буду использовать в сколько-нибудь серьезном проекте, но про такой момент забывать не стоит. Скачиваю виндовую утилитку, прошиваю эти биты, вставляю карту памяти, аккумулятор… Система стартует, и циклически перезагружается. Блин!

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected ...

Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected Try poweron_pll Try turnon_mem_rail Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.

Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2x10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!

На самом первом фото виден этот конденсатор - вокруг него грязь, и он припаян только одним контактом.

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected Try poweron_pll Try turnon_mem_rail Try init_clock EMI_CTRL 0x1C084040 FRAC 0x92926192 Try init_ddr_mt46v32m16_133Mhz power 0x00820710 Frac 0x92926192 start change cpu freq hbus 0x00000003 cpu 0x00010001

initcall: 3e09f908 (relocated to 40002908) initcall: 3e0a013c (relocated to 4000313c) initcall: 3e0a2ec0 (relocated to 40005ec0) initcall: 3e0a2ea8 (relocated to 40005ea8) initcall: 3e0a2e88 (relocated to 40005e88) initcall: 3e0a2e68 (relocated to 40005e68) Net: Net Initialization Skipped No ethernet found. initcall: 3e0a2e5c (relocated to 40005e5c) Initial value for argc=3 Final value for argc=3 ### main_loop entered: bootdelay=3

### main_loop: bootcmd=«mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else» Hit any key to stop autoboot: 0 => =>

Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.PowerPrep start initialize power… Battery Voltage = 3.74V 5v source detected.Valid battery voltage detected.Booting from battery voltage source. Mar 18 2015 07:59:13 Try poweron_pll Try turnon_mem_rail Try init_clock EMI_CTRL 0x1C084040 FRAC 0x92926192 Try init_ddr_mt46v32m16_133Mhz power 0x00820710 Frac 0x92926192 start change cpu freq Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя - конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.

Linux kernel

Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.

Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.

make ARCH=arm CROSS_COMPILE=${CC} mxs_defconfig make ARCH=arm CROSS_COMPILE=${CC} menuconfig make ARCH=arm CROSS_COMPILE=${CC} -j4 zImage modulesВот эти три кликаПри настройке ядра надо строго указать слияние ядра+dtbBoot options ---> Use appended device tree blob to zImage ----> Supplement the appended DTB with traditional ATAG information Надо включить Kernel low-level debugging functions вместе с early printk И еще enable dynamic printk() support И еще видеоподсистему отключить И еще половину лишних и не очень драйверов

И еще собрать dtb - device tree blob, структуру, описывающую ядру базовые вещи - количество памяти, периферию SoC, и т.д.

make ARCH=arm CROSS_COMPILE=${CC} imx23-olinuxino.dtb И собрать все это в один файл cat arch/arm/boot/zImage arch/arm/boot/dts/imx23-olinuxino.dtb > arch/arm/boot/zImage_dtb После чего можно копировать ядро на флешь.

Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.

Debian

В качестве собственно операционной системы я выбираю Debian. По-моему, отличный дистрибутив - простой и надежный, как деревянная палка. Беру готовую сборку, распаковываю на раздел карточки, и указываю при загрузке ядра, где искать его законную корневую.Лог загрузкиPowerPrep start initialize power… Battery Voltage = 3.68V Boot from battery. 5v input not detected poweron_pll turnon_mem_rail init_clock EMI_CTRL 0x1C084040 FRAC 0x92925E92 init_ddr_mt46v16m16_96Mhz power 0x00820710 Frac 0x92925E92 start change cpu freq Try now hbus 0x00000003 cpu 0x00010001

U-Boot 2015.04-rc3-00209-ga74ef40-dirty (Mar 18 2015 - 14:26:18)

CPU: Freescale i.MX23 rev1.4 at 320 MHz BOOT: USB DRAM: 32 MiB MMC: MXS MMC: 0 In: serial Out: serial Err: serial Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 2650994 bytes read in 906 ms (2.8 MiB/s) Kernel image @ 0x41000000 [ 0x000000 - 0x284e60 ]

Starting kernel…

Uncompressing Linux… done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.19.2 () (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.5 [ 0.000000] CPU: ARM926EJ-S revision 5 (ARMv5TEJ), cr=0005317f [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine model: i.MX23 Olinuxino Low Cost Board [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Memory: 18972K/32768K available (3475K kernel code, 244K rwdata, 1372K rodata, 188K init, 8096K bss, 13796K reserved, 0K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector: 0xffff0000 - 0xffff1000 (4 kB) [ 0.000000] fixmap: 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc: 0xc2800000 - 0xff000000 (968 MB) [ 0.000000] lowmem: 0xc0000000 - 0xc2000000 (32 MB) [ 0.000000] modules: 0xbf000000 - 0xc0000000 (16 MB) [ 0.000000] .text: 0xc0008000 - 0xc04c42ac (4849 kB) [ 0.000000] .init: 0xc04c5000 - 0xc04f4000 (188 kB) [ 0.000000] .data: 0xc04f4000 - 0xc0531018 (245 kB) [ 0.000000] .bss: 0xc0531018 - 0xc0d19264 (8097 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] Lock dependency validator: Copyright © 2006 Red Hat, Inc., Ingo Molnar [ 0.000000]… MAX_LOCKDEP_SUBCLASSES: 8 [ 0.000000]… MAX_LOCK_DEPTH: 48 [ 0.000000]… MAX_LOCKDEP_KEYS: 8191 [ 0.000000]… CLASSHASH_SIZE: 4096 [ 0.000000]… MAX_LOCKDEP_ENTRIES: 32768 [ 0.000000]… MAX_LOCKDEP_CHAINS: 65536 [ 0.000000]… CHAINHASH_SIZE: 32768 [ 0.000000] memory used by lock dependency info: 5167 kB [ 0.000000] per task-struct memory footprint: 1152 bytes [ 0.060000] Calibrating delay loop… 159.12 BogoMIPS (lpj=795648) [ 0.070000] pid_max: default: 32768 minimum: 301 [ 0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.080000] CPU: Testing write buffer coherency: ok [ 0.080000] Setting up static identity map for 0x40353070 - 0x403530c8 [ 0.110000] devtmpfs: initialized [ 0.130000] pinctrl core: initialized pinctrl subsystem [ 0.180000] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.290000] Serial: AMBA PL011 UART driver [ 0.290000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 17, base_baud = 0) is a PL011 rev2 [ 0.480000] console enabled [ 0.560000] mxs-dma 80004000.dma-apbh: initialized [ 0.590000] mxs-dma 80024000.dma-apbx: initialized [ 0.600000] SCSI subsystem initialized [ 0.610000] pps_core: LinuxPPS API ver. 1 registered [ 0.610000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti < > [ 0.620000] Switched to clocksource mxs_timer [ 1.130000] futex hash table entries: 256 (order: 1, 11264 bytes) [ 1.290000] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. [ 1.320000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) [ 1.330000] io scheduler noop registered (default) [ 1.340000] of_dma_request_slave_channel: dma-names property of node "/ / / " missing or empty [ 1.360000] uart-pl011 80070000.serial: no DMA platform data [ 1.360000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 146, base_baud = 1500000) is a 8006c000.serial [ 1.380000] mxs-auart 8006c000.serial: Found APPUART 3.0.0 [ 1.410000] mousedev: PS/2 mouse device common for all mice [ 1.430000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0 [ 1.440000] i2c /dev entries driver [ 1.450000] stmp3xxx_rtc_wdt stmp3xxx_rtc_wdt: initialized watchdog with heartbeat 19s [ 1.460000] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0) [ 1.470000] Driver "mmcblk" needs updating - please use bus_type methods [ 1.480000] 80010000.ssp supply vmmc not found, using dummy regulator [ 1.540000] mxs-mmc 80010000.ssp: initialized [ 1.630000] mmc0: host does not support reading read-only switch, assuming write-enable [ 1.640000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:27:21 UTC (1641) [ 1.660000] mmc0: new high speed SD card at address e624 [ 1.680000] mmcblk0: mmc0:e624 SU02G 1.84 GiB [ 1.730000] mmcblk0: p1 p2 p3 [ 1.740000] usb0_vbus: disabling [ 1.780000] EXT3-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240) [ 1.800000] EXT2-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240) [ 1.870000] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null) [ 1.880000] VFS: Mounted root (ext4 filesystem) on device 179:3. [ 1.910000] devtmpfs: mounted [ 1.920000] Freeing unused kernel memory: 188K (c04c5000 - c04f4000) INIT: version 2.88 booting Using makefile-style concurrent boot in runlevel S. Starting the hotplug events dispatcher: udevdudevd: error getting socket: Function not implemented

error initializing control socketudevd: error initializing udevd socket failed! Setting the system clock. Activating swap...done. [ 6.410000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null) Checking root file system...fsck from util-linux-ng 2.17.2 rootfs: clean, 10152/115920 files, 89453/462839 blocks done. [ 6.870000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null) Setting the system clock. Cleaning up ifupdown… Setting up networking… Loading kernel modules...done. Activating lvm and md swap...done. Mounting local filesystems...done. Activating swapfile swap...done. Cleaning up temporary files… Setting kernel variables ...done. INIT: Entering runlevel: 2 Using makefile-style concurrent boot in runlevel 2. Starting NTP server: ntpd. Starting OpenBSD Secure Shell server: sshd.

Debian GNU/Linux 6.0 debian ttyAMA0

debian login: root Password: Last login: Thu Jan 1 02:00:41 EET 1970 on ttyAM0 Linux debian 3.19.2 #5 Thu Mar 19 10:58:08 EDT 2015 armv5tejl

The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. :~# :~# free total used free shared buffers cached Mem: 19160 18292 868 0 1496 9756 -/+ buffers/cache: 7040 12120 Swap: 0 0 0 :~# :~# cat /proc/cpuinfo processor: 0 model name: ARM926EJ-S rev 5 (v5l) BogoMIPS: 159.12 Features: swp half fastmult edsp java CPU implementer: 0x41 CPU architecture: 5TEJ CPU variant: 0x0 CPU part: 0x926 CPU revision: 5

Hardware: Freescale MXS (Device Tree) Revision: 0000 Serial: 0000000000000000 :~# :~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1789440 295900 1384592 18% / tmpfs 9580 0 9580 0% /lib/init/rw udev 10240 0 10240 0% /dev tmpfs 9580 0 9580 0% /dev/shm tmpfs 9580 0 9580 0% /var/volatile tmpfs 9580 0 9580 0% /media/ram :~# :~# mount rootfs on / type auto (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) tmpfs on /var/volatile type tmpfs (rw) tmpfs on /media/ram type tmpfs (rw)

Дааа, есть над чем поработать.

Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе. Итого, ошибок дизайна пока что не обнаружено, хотя нарекания уже есть. Что-ж, для начала, я считаю, достаточно.

Заключение

На самом деле это только начало. Еще есть над чем поработать - разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение:)

Есть три платы, которые я могу отдать. Все что нужно для получения - озвучить в комментариях идею, как можно применить получившуюся систему. Лучшие предложения получат по экземпляру даром, с надеждой, что вы реализуете свою идею, и расскажете, что у вас получилось. Раздачу слонов осуществлю 30 марта 2015 года, т.е. через неделю.

Для меня это будет обратной связью: мне нужно знать как поведет себя система в реальных условиях, насколько надежно себя покажет, какие проблемы возникнут, и т.д.

На этом пожалуй все, жду ваших комментариев.

UPD: по заявкам: первый экземпляр достается neochapay за идею с положительным рейтингом второй экземпляр уйдет r00tGER, третий REPISOT «Кто раньше встал, того и тапки».

habr.com

Гид по выбору платформы разработки / Амперка

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

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

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

Arduino или Raspberry Pi? Микроконтроллер или микрокомпьютер?

Все платы для разработки можно разбить на 2 большие категории:

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

Существуют также гибридные платформы, где на одной плате расположен и микроконтроллер и процессор. Идея в том, чтобы оставить мощному процессору сложные задачи: выход в сеть, обработку медиа, а на микроконтроллер возложить функцию точного управления приводами, реле, сенсорами и другой периферией. Вы можете создать гибрид и сами, если возьмёте по одной плате из каждого семейства. У всех них найдутся общие интерфейсы, через которые можно организовать их взаимодействие.

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

МикроконтроллерОдноплатный компьютер Производительность Многозадачность Удобство работы с интернетом Длительность работы от батареек Скорость реакции в проектах критичных к времени Выбор языков программирования Возможности для работы с видео, компьютерным зрением Возможности для работы со звуком
1 ядро,десятки-сотни МГц,десятки КБ оперативки,десятки-сотни КБ постоянной памяти. 1 или более ядер,сотни-тысячи МГц,сотни МБ оперативки,гигабайты постоянной памяти.
Нет.Но можно эмулировать. Да.Управляется ОС.

Обычно нужны дополнительные модули и глубокое знание протоколов.

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

Потребляет единицы-десятки мА. Возможны недели работы от батареек.

Потребляет сотни-тысячи мА. Заряда большого аккумулятора хватит от силы на десяток часов.

100% контроль над временем и длительностью подачи сигналов.

Из-за многозадачности критический процесс может проспать своё время.

Ограниченный. Чаще C/C++.

Python, JavaScript, Bash и десяткии других: любые доступные в ОС.

Не хватит мощности.

OpenCV, аппаратные видеокодеки, HDMI-выход.

На мощных микроконтроллерах возможен синтез звука. Для работы с MP3/OGG/WAV нужны дополнительные модули.

Поддержка MP3/OGG/WAV на уровне ОС. Аудиовыход HDMI и/или разъём 3,5 мм.

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

Так как нет большого смысла сравнивать лицом к лицу микроконтроллеры и микрокомпьютеры, далее мы отдельно приведём преимущества и недостатки конкретных плат в рамках своего семейства.

Сравнение микроконтроллеров

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

Мы попытались сравнить платы, отталкиваясь от возможностей флагманской DIY-платформы Arduino Uno, так как платы именно этого семейства дали невероятный пинок развитию хобби-электроники во всём мире. Разные компании выпускают модули, сенсоры, платформы, дополнения с шильдами «Arduino compatible», «Designed for Arduino» и т.д. За этими словами стоит электронная и программная совместимость в первую очередь с Arduino Uno, а уж затем со всем остальным.

Как правило, с помощью ухищрений или дополнительных компонентов можно подключить что угодно, к чему угодно. Но ведь вам хочется сосредоточиться на своём проекте, а не на борьбе с электроникой? Поэтому волей не волей хочется сравнить любую плату на микроконтроллере именно с Arduino Uno. Так и сделаем.

Arduino Uno Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов, они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств. Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил». Родное напряжение в 5 вольт, которое является де-факто стандартом и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства. Arduino Leonardo Та же Arduino Uno, но с другим микроконтроллером, который находится в том же классе, но имеет некоторые отличия положительного характера. Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые serial-интерфейсы для USB и UART. Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода. Из-за распиновки чуть отличной от Arduino Uno возможна несовместимость с некоторыми платами расширения. Такие случаи, однако, редки, и в нашем магазине мы явно их прописываем. Iskra Neo Та же Arduino Leonardo, но произведённая нами, в России. Заметно дешевле оригинала. Arduino Mini Та же Arduino Uno, но в другом форм-факторе. Компактная. Всего 30×18 мм. Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату. На плате нет USB-порта, поэтому прошивать нужно через отдельный USB-Serial адаптер. Iskra Mini Та же Arduino Mini, но произведённая нами, в России. Заметно дешевле оригинала. Есть в варианте с распаянными колодками и с незапаянными отверстиями. Arduino Micro Та же Arduino Leonardo, но в другом форм-факторе. Компактная. Всего 48×18 мм. Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату. Arduino Mega Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или если Arduino Uno перестала справляться. В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ. Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм. Arduino Due Одна из самых производительных плат от Arduino на микроконтроллере Cortex-M3 по форм-фактору аналогичная Arduino Mega. Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания. Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц. Родным напряжением для платы является 3,3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения. Iskra JS Плата на ядре Espruino: её программируют на JavaScript. JavaScript - язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе. Мощный микроконтроллер Cortex M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART - всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями. Несмотря на то, что родной уровень для платы - 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Strela Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo. Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи. Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов. 11 входов-выходов выведены в виде 3-контактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения. На плате не предусмотрены колодки для установки плат расширения Arduino. Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo), необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке. Arduino Yún Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей». Плата оснащена Ethernet и WiFi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо. Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности легко интегрироваться с социальными сетями и другими веб-сервисами. OpenWRT - это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python. STM32 Nucleo F401RE Плата с мощным микроконтроллером Cortex-M4. Платформа программируется не через Arduino IDE, а через онлайн-среду mbed.org. Субъективно, она мощнее и стройнее Arduino IDE, хотя и не так распространена. Для пытливого ума - отличный выбор. Процессор на 84 МГц, 512 КБ постоянной и 96 КБ оперативной памяти. 50 портов ввода-вывода, из которых 16 аналоговых и 29 с ШИМ. Родной уровень напряжения - 3,3 В, но все пины толерантны к 5 В, поэтому проблем электронной совместимости с Arduino-периферией возникнуть не должно. Колодки для плат расширения по конфигурации совпадают с Arduino Uno, поэтому на Nucleo можно поставить множество плат расширения от Arduino. На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Teensy 3.2 Компактная плата с мощным микроконтроллером Cortex-M4. Программируется из привычной Arduino IDE. Меньше Arduino Micro (35×17 мм), но почти столь же мощная, как Nucleo: процессор 72 МГц, 256 КБ постоянной и 64 КБ оперативной памяти, 34 порта ввода-вывода, из которых 21 могут быть аналоговыми, а 12 поддерживают ШИМ. Teensy 3.1 очень энергоэффективна. У неё нет регулятора напряжения, но входным может являться любое от 3,3 до 5,5 В. Это же напряжение и будет логическим уровнем. В режиме сна плата потребляет всего 0,25 мА, что даёт возможность работать от аккумулятора несколько месяцев. Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц. Плата поставляется с нераспаянными контактами. Вам предстоит самостоятельно впаять штырьковые соединители или проводки. Из-за большой разницы в архитектуре с классическим Arduino не все библиотеки для сторонней периферии могут работать из коробки. Рабочее напряжение равно входному, а поэтому плывёт по мере разряда батарейки. Это может оказаться важным при выборе периферии, если она рассчитана на какой-то конкретный вольтаж. Netduino 2 Плата повторяет форм-фактором Arduino Uno, но имеет мощную начинку, достаточную для исполнения программ, написанных на платформе.NET. Netduino программируется на C# или любом другом.NET-языке в привычной любому.NET-разработчику среде Visual Studio. В качестве стандартной библиотеки предоставляется.NET Micro Framework. В Visual Studio работает автодополнение, подсказки, контекстная помощь в MSDN и полноценный отладчик. Вам доступны breakpoint’ы, пошаговое исполнение кода, наблюдение за переменными. Отладка происходит без ухищрений, просто с подключённым USB-кабелем. Благодаря всему этому, скорость разработки под Netduino в разы превосходит скорость разработки под любую другую платформу. На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Netduino Plus 2 Как Netduino, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей. Те же, что и у Netduino 2.

Сравнение одноплатных компьютеров

Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.

Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.

Raspberry Pi 3 Model B Один из самых популярных одноплатников. Четыре ядра по 1200 МГц, 1 ГБ оперативной памяти и полноценный Linux, основанный на Debian помогут решить множество задач, требовательных к вычислительным ресурсам. Среди них можно выделить компьютерное зрение, обработку звука в реальном времени, создание веб-сервисов. Тонны документации, уроков и готовых библиотек, огромное сообщество. Всё это просто не даст вам возможности сказать «не осилил». Привычные порты HDMI, 3,5 мм аудио, 4 USB помогут с лёгкостью подключить монитор, колонки, клавиатуру, мышь и другие USB-устройства. Модули BLE и WiFi на борту помогут соединить компьютер с другими устройствами без проводов. На плате нет АЦП, поэтому подключение аналоговых сенсоров возможно только с помощью внешних, дополнительных компонентов. Предоставляется лишь 1 аппаратный ШИМ-канал, что усложняет работу с периферией, которая управляется ШИМ’ом. BeagleBone Black Микрокомпьютер схожий с Raspberry Pi, который даёт больше благ, привычных для микроконтроллерных плат. Отличный выбор для проектов интернета вещей, когда необходимо управляться с множеством сенсоров и исполнительных устройств. Мощная среда для разработки Cloud9 IDE. Вы просто заходите на BeagleBone через браузер и программируете на любимом языке будь то Python, JavaScript (Node.js), Bash или любой другой язык Linux. Результат можно проверить мгновенно, а если что-то не заработало, использовать встроенный в среду полноценный отладчик. На борту уже установлена флеш-память eMMC на 4 ГБ с операционной системой Linux. Память может быть увеличена внешней microSD-картой. Широкие возможности по подключению периферии. 8 ШИМ-выходов и 7 аналоговых входов. Возможны аппаратные прерывания. Диковинный разъём microHDMI для подключения монитора. Для передачи звука используется он же. Вычислительная мощность скромнее, чем у Raspberry Pi: 1 ядро на 400 МГц и 512 МБ оперативной памяти.

amperka.ru

Одноплатный компьютер: варианты использования

Raspberry Pi 3 Model B - это самый популярный одноплатный компьютер, построенный на базе 64-битного процессора ARM Cortex A53 с частотой 1,2 ГГц со встроенным модулем беспроводной связи Wi-Fi и Bluetooth.

Для чего нужен Raspberry Pi?

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

Робот
Умный дом

Почему выбирают Raspberry Pi?

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

С чем обязательно нужно покупать Raspberry Pi?

Для работы одноплатного компьютера Raspberry Pi 3 необходимо приобрести сетевой адаптер с разъемом Micro USB. Рекомендуется выбрать модель с силой тока не менее 2,1А при напряжении 5В. Кроме того, вам понадобится карта памяти microSD, на которой будет храниться операционная система, радиаторы охлаждения, а также корпус для защиты от ударов и статики. Для расширения возможностей компьютера можно воспользоваться датчиками, камерами, модулями расширения. В нашем ассортименте вы также сможете найти готовый стартовый набор на базе Raspberry Pi.

Если возникнут технические вопросы?

http://raspberrypi.ru http://raspberrypi.ru/forum/ https://vk.com/raspberrypi_ru

В таблице представлены наиболее интересные товары, которые выбирают наши покупатели:

www.electronshik.ru

делаем сами » 24Gadget.Ru:: Гаджеты и технологии


Наверняка вы помните блокбастер «Железный человек» с Робертом Дауни младшим в главной роли. Согласно сюжету миллиардер и ученый Тони Старк изобрел металлический костюм, который был способен сделать его сверхчеловеком. Главной деталью костюма было сердце, которое представляло собой небольшой атомный реактор. Один народный умелец решил воссоздать главную деталь костюма своими руками из подручных средств. Что в итоге вышло смотрите сами.... Из-за своей необычной формы новый ПК яблочной компании - Mac Pro сравнивали с мусорным ведром. Некто под ником sascha288 решил весьма остроумно собрать самодельный Mac Pro из мусорного ведра. Металлическая основа была выкрашена в красный цвет и сходство в итоге получилось потрясающим. Габариты устройств, кстати, тоже сравнимы: 28 x 19 см против 25,1 x 16,8 см. В роли комплектующих выступили материнская плата Gigabyte z87n WiFi, процессор Core i3 (Haswell), видеокарта Radeon 7750, SSD и жесткий диск, ATX PSU. Система работает под управлением модифицированной версии Mac OS X...
Некто под именем Michael Castor собрал собственными руками планшет и назвал его PiPad. В основе устройства лежит одноплатный компьютер Raspberry Pi Model B, в комплектацию которого входит процессор ARM с тактовой частотой 700 МГц, 512 МБ оперативной памяти, два порта USB и разъем Ethernet, слот для карт SD. В финальном варианте PiPad один USB-порта и Ethernet отсутствуют, так как для них просто не хватило места. Размеры мини-ПК составляют 85,6x56x21 мм, вес - 45 г. В качестве дисплея используется 10-дюймовая ЖК-панель с разрешением 1280 x 800 пикселей и напряжением питания 5 В. Аккумулятор емкостью 10 000 мАч обеспечивает 6 часов работы гаджета. Каркас PiPad изготовлен из фанеры, задняя панель сделана из углеродного волокна.
Банни Хуан отказался от использования планшета и смартфона, и задался целью собрать собственными руками ноутбук с открытым исходным кодом для повседневной работы. Устройство получило название Project Novena, а в его технические характеристики вошли: 13-дюймовый дисплей с разрешением 2560 × 1700 пикселей и каркас с корпусом, которые выполнены из 5052 и 7075 сплавов алюминия. На портале Makezine Банни даже выложил подробную инструкцию для всех желающих повторить этот опыт...
В 1980 году Американское Вертолетное Общество объявило, что вручит премию в $10000 тому, кто сумеет создать вертолет, который пробудет в воздухе 60 секунд, достигнет в процессе этого полета высоты в 3 метра и не вылетит при этом за границы площадки 10 на 10 метров. При этом приводиться в движение вертолет должен исключительно силой человеческих мышц. Назвали эту премию в честь Игоря Ивановича Сикорского. С тех пор прошло 33 года и размер премии вырос до $250000. Вчера она была вручена команде AeroVelo из университета Торонто за созданный ими вертолет Atlas.
Один из владельцев смартфона Galaxy Note II в китайской модификации, рассчитанной на 2 сим-карты, устав от слабой батарейки (3100 мАч) и недостаточного объёма (32ГБ) встроенной памяти решил провести апргейд гаджета. Для этого он приобрёл адаптер MicroSD -> SD, карту памяти Lexar SDXC объёмом 256ГБ и аккумулятор впечатляющей ёмкости - 8500 мАч. Как описывает автор - самое долгое время ушло на доставку комплектующих из интернет-магазинов, а на сборку потратил всего несколько минут. В итоге смартфон получил огромный аккумулятор и суммарный объём памяти равный 288ГБ. Единственное с чем ещё нужно будет поработать - это задняя крышка смартфона...
Фанаты «Звездных Войн», внимание, эта новость для вас! Если вы мечтаете о световом мече, но не хотите, как Костя Хабенский в «Ночном Дозоре», ходить с лампой дневного света в руках, то можете попытаться сделать его из самой обычной лазерной указки. Для создания светового меча фанату Дарта Вейдера потребовалась всего лишь-навсего лазерный диод 9мм 450нм мощностью 3 ватта, генерирующая луч зеленого цвета, и стильный корпус для нее. В комментариях к видео сказано, что это очень мощный лазер, и использовать его нужно с крайней осторожностью. Также рекомендуется надеть на глаза очки во избежание перенапряжения сетчатки – лазер очень яркий...
Джинсы любят все. Ну, или почти все. И старая завалявшаяся на антресолях парочка джинс - у кого-то это любимые, протертые до дыр штанишки, у кого-то совсем новенькие, неношеные (так как кто-то слегка поднабрал тысячи граммов) - наверняка имеется. Сегодня я предложу вам не революционную, но достаточно любопытную идею, как можно с пользой применить старые джинсы. И не надо их жалеть! Признайтесь уже честно, что они всё равно бы лежали мертвым грузом на дальней полке и так бы и не увидели свет в конце своей полотняной жизни...
Любите кататься на велосипеде? Хотите на нем путешествовать дальше, а уставать меньше? Это возможно, если добавить к вашему двухколесному другу электромотор и батарею. Для превращения своего обычного велосипеда в электробайк, вам понадобится только готовый набор, состоящий из специального колеса с электро-двигателем и батареи...
Австралийская компания Lulzbot разработала дешевый аналог распечатываемого на 3D-принтере пистолета Liberator. Оригинальный проект был предложен фирмой Defense Distributed из США, однако для создания оружия требовался промышленный принтер стоимостью около $8000. Схемы, необходимые для распечатки пистолета на 3D-принтере, Defense Distributed выложила в интернет, открыв к ним доступ всем желающим. Таких оказалось немало, среди них была и компания Lulzbot. Ее специалисты внесли корректировки в проект, и оказалось, что для создания Liberator можно использовать «бытовой» 3D-принтер Lulzbot AO-101 стоимостью $1700, материалы обойдутся еще в $25. Создатели модификации, получившей название Lulz Liberator, отмечают, что кажущаяся доступность не означает широкого распространения такого оружия: дешевле все же купить «классический» пистолет.
Дизайнеры-энтузиасты из Италии представили на суд любителей экологичных гаджетов настольную лампу из картона. Её трудно заподозрить в каких-либо технических изысках, конёк лампы 01LAMP - максимальная функциональность. Собрать такое устройство можно, не выходя из дома. Всё что необходимо - заказать пиццу, опустошить коробку и проникнуться творческим настроением. Создавая лампу, дизайнеры отказались от использования клея, и все детали 01LAMP скрепляются специальными клапанами. В конструкции лампы нет никаких деревянных, пластиковых или железных частей. Исключение составляет кнопка «ВКЛ», провода и лампочка. Именно поэтому авторы проекта утверждают, то одним из достоинств лампы является её экологичность. Приложив соответствующие усилия, собрать подобную лампу в домашних условиях может любой человек. Чтобы облегчить данный процесс, итальянские дизайнеры даже выложили в Интернете подробную инструкцию, к которой прилагаются схемы и рисунки, облегчающие процесс сборки. Самые ленивые борцы за экологию, впрочем, могут просто заказать уже собранный необычный гаджет у авторов проекта. Готовая лампа 01LAMP обойдется в 40 евро или $53.

24gadget.ru

Pi-Top: компьютер своими руками

Вы можете приобрести набор деталей и собрать компьютер своими руками. Благодаря развитию технологий, в частности 3D-печати, это может быть полноценный ноутбук с экраном, клавиатурой и возможностью подключения периферийных устройств. Цена же такого устройства будет значительно ниже той, которую запрашивают за аналогичный товар «именитые» производители.

Набор для сборки ноутбука Pi-Top будет официально представлен в мае 2015 года, хотя продажи уже идут. Кампания по сбору средств для его производства была проведена на indiegogo.com и принесла проекту чуть более 130 тысяч долларов.

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

Основатели проекта - Райен Данвуди (Ryan Dunwoody), 23-летний выпускник Оксфорда и 27-летний Джесси Лозано (Jesse Lozano), юрист по образованию, самостоятельно освоивший программирование.

Джесси Лозано и Райен Данвуди - создатели Pi-Top

«Вместо того чтобы использовать ноутбук как закрытое устройство, вы можете понять, как работает экран, как заряжается аккумулятор, как происходит переключение между аккумулятором и сетевым питанием, - рассказывает Данвуди. - Если что-то сломается, вы сможете это починить. Многие родители покупают наш компьютер для своих детей, так как видят в нём способ донести до ребёнка понимание технологий и устройств, которые мы используем ежедневно».

По словам Лозано, Pi-Top «предназначен для того, чтобы научить вас, как сделать другие вещи», позволяя экспериментировать с оборудованием. Он надеется, что компьютер будет использоваться в школах.

Основа компьютера Pi-Top - Raspberry Pi (Модель B+), одноплатный компьютер размером с банковскую карту. Корпус ноутбука необходимо напечатать самостоятельно, для этого в наборе имеются пластиковые «чернила» для 3D-принтера и файлы для печати. Сборка готового устройства предельно проста, человек с самыми минимальными техническими навыками, пользуясь инструкцией, соберёт Pi-Top за вечер. Кроме набора начального уровня, разработчики предлагают несколько плат расширения. Так, благодаря дополнительным модулям, Raspberry Pi может быть запрограммирован таким образом, что сможет служить центральным управляющим устройством для робота. Записав программу в Raspberry Pi, пользователь может достать его из корпуса ноутбука и поместить на шасси, которое можно также распечатать на 3D-принтере.

22century.ru

Что такое одноплатный компьютер и как его используют?

Чем SBC отличаются от обычных компьютеров?

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

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

Как используются SBC?

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

Одноплатные компьютеры используются в сфере образования для преподавания информатики. Ну конечно, большая часть пользователей – это опытные программисты, которые не стали довольствоваться заводскими конфигурациями, а предпочитают самостоятельно приобретать комплектующие для компьютеров и создавать прогрессивные системы.

Как выбрать одноплатный компьютер?

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

Мощность

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

Здесь главным критерием опять становятся ваши потребности. Первые устаревшие модели SBC поставлялись только с 512 Мб встроенной памяти, что казалось, совершенно разумным в то время. В наши дни, подобная система должна содержать, по крайней мере, 1 Гб оперативной памяти, а более продвинутые модели будут предлагать 32 ГБ.

Процессор

В настоящее время на рынке представлены три основных варианта: Intel, Power Architecture и ARM. Ваш выбор может руководствоваться требованиями памяти, предыдущим опытом работы с конкретным типом процессора и, конечно, требованиями.

Операционная Система

Типичные операционные системы, доступные на большинстве SBC, - Linux (самый популярный), INTEGRITY, Wind River VxWords, QNX, LynxOS и GreenHills. Большинство процессоров поддерживает Linux, меньшее число будут совместимы с VxWorks или другими инструментов проектирования, поэтому снизится возможность создания безопасных приложений.

Элемент I/O

SBC обеспечивает наличие необходимых элементы ввода/вывода, таких как Ethernet, USB, DIO и других. Если необходимые ввод/вывод не поддерживаются базовой SBC, вам следует узнать о дополнительной поддержки системы.

2ezone.ru

Одноплатный компьютер своими руками, ar9331 datasheet

Одноплатные компьютеры – устройства, которые собраны на одной лишь «материнке». На последней установлены все необходимые детали: микропроцессор, оперативная память, способы ввода данных и их вывода, другие модули, нужные для полноценной работы устройства. Зачастую одноплатные ПК используются (и, соответственно, разрабатываются) как демонстрационная система или же приспособление для образования. Нередко их применяют в промышленной сфере.

Если говорить о стандартных компьютерах типа «дектоп», то при сравнении с описываемым, последний не требует установки периферийных плат. В зависимости от модели, некоторые варианты выпускаются в виде небольшой «материнки», оснащенной памятью и процессором. Такую плату можно подключить к внутренней магистрали. Это позволит увеличить доступные характеристики, а также воспользоваться дополнительными разъемами.

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

Аппаратные одноплатные платформы

Сравнение одноплатных компьютеров с аппаратными платформами поможет понять, чем отличаются устройства друг от друга. Нередко пользователи и потребители путают их между собой. Платформа – обычный микроконтроллер, который нельзя называть полноценным компьютером. На ней не установлена операционная система, поэтому пользователь не может взаимодействовать с устройством, как с обычным ПК.

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

Для чего необходим одноплатный компьютер?

Некоторые пользователи почему-то считают, что одноплатный компьютер не способен выполнять многие функции. Однако его спектр решаемых задач велик. Такое устройство используют в компьютерах, роутерах и другой технике. На этом приспособлении можно с легкостью установить операционную систему Lunix. В таком случае одноплатное устройство будет выполнять практически все задачи: от поиска документов до прослушивания музыки. Если подобрать для себя модель подороже, то можно также просматривать видео качеством не более 1080р. Такие манипуляции производятся с привычным для потребителя интерфейсом. Недостатки можно выявить при работе с другими архитектурами. Зачастую приложения функционируют на ARM. Поэтому желательно подбирать плату именно с такой архитектурой.

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

Мал золотник: что умеет компьютер за 35 долларов

Чаще всего этот процесс запрашивает минимальное вмешательство человека, являясь завершенными решениями. От владельца требуется лишь записать образ на карту памяти и правильно указать все необходимые настройки. Превратить одноплатный компьютер в роутер не единственное, что можно сделать. Для того чтобы дом стал «умным», понадобится лишь три-четыре системы. Конечно, придется немного дольше заниматься настройками, но уже сейчас существуют более менее готовые решения, которые практически не нужно редактировать.

Для тех, кто интересуется технической сферой, не секрет, что «Майкрософт» собралась выпускать специальное устройство. Сейчас большую популярность приобретает «интернет вещей». Разрабатываемые устройства работают на особых протоколах. Благодаря этому они смогут функционировать даже с обычными сотовыми телефонами. Если рассматривать эту возможность как развитие однопроцессорных компьютеров, то такое решение – прорыв. Ведь ранее управление осуществлялось через маршрутизатор. Сейчас последнее решение уже практически не используется. Проще работать, когда устройства обращаются друг к другу напрямую.

То, без чего не сможет существовать ни одна плата, порты входа и выхода – GPIO. Они позволяют моментально выключать лампочку после получения электронного сигнала. Стандартная модель оснащается 5-10 разъемами. При желании их количество можно расширить.

Raspberry Pi

Обзор одноплатных компьютеров следует начать с одной из самых популярных моделей – Raspberry Pi. Это устройство известно как «Малинка». Именно оно стало началом развития одноплатных компьютеров. Появилась модель в 2012 году и не все потребители адекватно оценивали ее способности и функционал. Для покупателей казалось это невозможным: целый компьютер, размер которого не превышает габариты кредитной карты, стоимость на него составляла $25. Работал на операционной системе Linux. Так или иначе, после релиза потребители стали потихоньку приобретать модель, тем самым сделав ее довольно популярной.

Из чего состоит Raspberry Pi?

По стандарту «Малинка» получила слот для карты памяти, разъем для питания, выходы для наушников, видео, USB, Ethernet, HDMI.

Помимо этого, встроены универсальные порты, позволяющие взаимодействовать с любыми другими устройствами.

Система продается в пяти различных конфигурациях. Наиболее простые модели – A. Они работают с 256 Мб ОЗУ. Используется ARMv6. Установлен один USB-порт. Модели с индексом B предлагают владельцу 512 Мб оперативной памяти. Имеются 2-4 порта USB и Ethernet. Модификация 2B работает с 4-ядерным процессором. Оперативная память составила 1 Гб. В продаже также имеются варианты с индексами A+, B+.

Цены на модели изменяются от $20 до $35.

Возможности Raspberry Pi

«Малинка» сильно распространена, именно поэтому к ней продается много различных дистрибутивов. Речь идет о софте, который, как правило, создается для работы с Linux.

Возможности устройства практически бесконечны. Одноплатный компьютер (x86 или x64) способен выполнять любую задачу. Основным нюансом является мощность процессора, от которой следует отталкиваться. К сожалению, он слабый во всех модификациях, кроме 2B. «Малинку» купить можно как в интернет-магазинах, так и в любых розничных точках продаж. В первую очередь, лучше приобрести именно 2B, если есть на то средства. Эта плата намного мощнее, имеет много портов. Разница в цене между моделями небольшая, а вот в совместимом софте – существенная.

Cubieboard

Модель Cubieboard получила GPIO, SATA, HDMI, USB, VGA, Ethernet, а также следующие разъемы: питания, оптического и стандартного аудиовыхода («мини-джек»).

Одноплатные компьютеры модели Cubieboard родом из Китая. Были созданы в 2012 году, однако первая модификация, мягко говоря, не удалась. Третья версия лучше всего себя проявила. В отличие от предыдущей «Малинки», плата имеет больше портов, встроены инфракрасный порт, «блютуз» и модуль беспроводной сети. Гаджет работает с 1/2 Гб оперативной памяти (в зависимости от модификации) на процессоре ARM Cortex-A7.

Дополнительная информация о модели

Одноплатные компьютеры этой модели работают тоже на базе Lunix. Производитель установил особенную версию, созданную собственноручно. В целом девайс отдаленно напоминает описанную ранее «Малинку». В некоторых нюансах она повторяет характеристики и иногда их расширяет. Цена немного выше: средняя стоимость $85.

BeagleBone

Модель появилась в 2013 году. Она получила разъем питания и другие стандартные порты. В своей линейке BeagleBone считается одной из самых мощных, если не лучшей. Разработчики решили уделить внимание большому количеству всех имеющихся портов. В продаже есть много интересных приспособлений. Работает плата на процессоре Cortex-A8, ядра которого функционируют с частотой 1 ГГц. Оперативная память составляет 512 Мб.

Дополнительные особенности

Как и другие вышеописанные одноплатные компьютеры, система работает на базе Linux. В заводской начинке производитель уже установил 2-4 Гб памяти. В некоторых модификациях встроен и дистрибутив Debian. За счет того, что имеется много портов, можно с легкостью подключать плату к любому устройству. Если использовать периферийные девайсы, то запросто возможности системы увеличатся в разы. Производитель сделал упор на дополнительные приспособления. Цена на само устройство $45.

Выводы

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

rpilot62.ru


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

Компания Micro Mote представила рабочую модель компьютера объемом в 1 кубический миллиметр, причем вычислительной мощности этого «малыша» вполне достаточно для того, чтобы стать вычислительным центром самых разнообразных устройств: от небольших камер до медицинских приспособлений и другой миниатюрной техники все более популярного Интернета вещей.


Raspberry Pi 2, дебютировавшем в начале этого месяца, обнаружены аппаратные сбои, которые заключаются в самостоятельной перезагрузке устройства при воздействии света от вспышки фотоаппарата. Производитель признает этот глюк, но называет его «бонусом». Впервые фотоэлектрический эффект был обнаружен Альбертом Эйнштейном, который за свои старания получил Нобелевскую премию. Суть в том, что чувствительный компонент, реагируя на свет, генерирует электрический заряд и перезапускается.

И мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ - это было увлекательно…

Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью - все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.

Проекты на микроконтроллерах мне порядком поднадоели - подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» - ни гибкости, ни сложности. С системами на кристалле - SoC (System on Chip) до этого я дела особо не имел - разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.

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

Проектирование

В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт - отличный набор новичка. В придачу - композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.

После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.

Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.

Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум - в невозможности инициализации памяти вообще. Цепи питания процессора - ошибка сожжет процессор при первом включении, интерфейсы - потеря периферии на этих интерфейсах, и так далее.

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

Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию - микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая - 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.

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

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

Становится не по себе - проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя - там каша из сотен скриптов и пакетов. Веселье начинается.

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

Отступление

Эта система на кристалле приглянулась мне еще и тем, что несет на борту все необходимые для ее жизни регуляторы питания - как DC/DC (импульсные) так и LDO (линейные). В том числе и зарядное устройство для Li-Pol аккумулятора. Заводишь на SoC 5 вольт от USB - получаешь 1V8, 2V5, 3V3 и 4V2 на выходе. Что-то достается самому процессору, что-то уходит на память, можно аккумулятор подзарядить. Удобно. Можно сжечь все и сразу:)

SoC bringup

Прочь сомнения, подать питание!
И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю - есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»

Начинается самое интересное - bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.

В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта - откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо - с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.

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

Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом - на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть - в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! - Хммм, скверная примета…)

Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания - 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.

Дальше надо разобраться с первоначальным запуском процессора и проверить работу DDR. Начинаю копать, и в процессе поисков собираю набор утилит и «бутлетов» - исходных кодов, позволяющих проинициализировать подсистемы питания, связку DDR контроллер-память и подготовить систему к дальнейшей работе. То, что надо - максимально простые исходники, с обилием индусского кода, но главное, они работают.

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

Отступление


Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.

Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.

Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря:)



Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!


Battery Voltage = 0.65V

EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002

Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:
PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!!.Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002

end memory test, at 0x41FFFFFC

Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.

U-Boot

Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией - актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное - моргать светодиодиком - все то, что нужно для счастья и более гибкой отладки на первоначальном этапе.
Поэтому не долго думая выкачиваю актуальную версию из официального репозитория, беру самую близкую конфигурацию, компилирую, собираю с индусскими бутлетами в один файл, и загружаю в процессор:
PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!! Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start memory test, at 0x40000000
end memory test, at 0x41FFFFFC

CPU: Freescale i.MX23 rev1.4 at 227 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
Card did not respond to voltage select!
MMC init failed
Using default environment

In: serial
Out: serial
Err: serial

No ethernet found.

=>


И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту - в терминале от процессора приходит ошибка. Вытаскиваю карту - другая. Вот это поворот!

SD/MMC

Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.

Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot - прошить в единицу, и SD_POWER_GATE_GPIO - выбрать NO_GATE - в моем дизайне управление питанием карточки не предусмотрено.

«Неудобненько как-то получается». Это означает, что нельзя сделать загрузочную карту памяти, которой можно будет прошивать готовые приборы в партии, вместо этого придется подключать каждый прибор, и вручную прошивать эти злосчастные OTP биты. Разумеется, этот процессор я не буду использовать в сколько-нибудь серьезном проекте, но про такой момент забывать не стоит. Скачиваю виндовую утилитку, прошиваю эти биты, вставляю карту памяти, аккумулятор… Система стартует, и циклически перезагружается. Блин!

PowerPrep start initialize power…
Battery Voltage = 3.75V


Battery Voltage = 3.75V
Boot from battery. 5v input not detected

PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
...


Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail

Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.

Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2x10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!

На самом первом фото виден этот конденсатор - вокруг него грязь, и он припаян только одним контактом.

PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192

power 0x00820710
Frac 0x92926192
start change cpu freq
hbus 0x00000003
cpu 0x00010001

Initcall: 3e09f908 (relocated to 40002908)
initcall: 3e0a013c (relocated to 4000313c)
initcall: 3e0a2ec0 (relocated to 40005ec0)
initcall: 3e0a2ea8 (relocated to 40005ea8)
initcall: 3e0a2e88 (relocated to 40005e88)
initcall: 3e0a2e68 (relocated to 40005e68)
Net: Net Initialization Skipped
No ethernet found.
initcall: 3e0a2e5c (relocated to 40005e5c)
Initial value for argc=3
Final value for argc=3
### main_loop entered: bootdelay=3

### main_loop: bootcmd=«mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else»
Hit any key to stop autoboot: 0
=>
=>


Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.
PowerPrep start initialize power…
Battery Voltage = 3.74V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
Mar 18 2015
07:59:13
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192
Try init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926192
start change cpu freq

Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя - конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.

Linux kernel

Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.

Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.

make ARCH=arm CROSS_COMPILE=${CC} mxs_defconfig
make ARCH=arm CROSS_COMPILE=${CC} menuconfig
make ARCH=arm CROSS_COMPILE=${CC} -j4 zImage modules

Вот эти три клика

При настройке ядра надо строго указать слияние ядра+dtb

Boot options ---> Use appended device tree blob to zImage ----> Supplement the appended DTB with traditional ATAG information

Надо включить Kernel low-level debugging functions вместе с early printk
И еще enable dynamic printk() support
И еще видеоподсистему отключить
И еще половину лишних и не очень драйверов

И еще собрать dtb - device tree blob, структуру, описывающую ядру базовые вещи - количество памяти, периферию SoC, и т.д.

make ARCH=arm CROSS_COMPILE=${CC} imx23-olinuxino.dtb

И собрать все это в один файл
cat arch/arm/boot/zImage arch/arm/boot/dts/imx23-olinuxino.dtb > arch/arm/boot/zImage_dtb


После чего можно копировать ядро на флешь.

Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.

Debian

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

Лог загрузки

PowerPrep start initialize power…
Battery Voltage = 3.68V
Boot from battery. 5v input not detected
poweron_pll
turnon_mem_rail
init_clock
EMI_CTRL 0x1C084040
FRAC 0x92925E92
init_ddr_mt46v16m16_96Mhz
power 0x00820710
Frac 0x92925E92
start change cpu freq
Try now
hbus 0x00000003
cpu 0x00010001

U-Boot 2015.04-rc3-00209-ga74ef40-dirty (Mar 18 2015 - 14:26:18)

CPU: Freescale i.MX23 rev1.4 at 320 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
In: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
2650994 bytes read in 906 ms (2.8 MiB/s)
Kernel image @ 0x41000000 [ 0x000000 - 0x284e60 ]

Starting kernel…

Uncompressing Linux… done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.19.2 (freeman@freeman-PC) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.5
[ 0.000000] CPU: ARM926EJ-S revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine model: i.MX23 Olinuxino Low Cost Board
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 18972K/32768K available (3475K kernel code, 244K rwdata, 1372K rodata, 188K init, 8096K bss, 13796K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector: 0xffff0000 - 0xffff1000 (4 kB)
[ 0.000000] fixmap: 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc: 0xc2800000 - 0xff000000 (968 MB)
[ 0.000000] lowmem: 0xc0000000 - 0xc2000000 (32 MB)
[ 0.000000] modules: 0xbf000000 - 0xc0000000 (16 MB)
[ 0.000000] .text: 0xc0008000 - 0xc04c42ac (4849 kB)
[ 0.000000] .init: 0xc04c5000 - 0xc04f4000 (188 kB)
[ 0.000000] .data: 0xc04f4000 - 0xc0531018 (245 kB)
[ 0.000000] .bss: 0xc0531018 - 0xc0d19264 (8097 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Lock dependency validator: Copyright 2006 Red Hat, Inc., Ingo Molnar
[ 0.000000]… MAX_LOCKDEP_SUBCLASSES: 8
[ 0.000000]… MAX_LOCK_DEPTH: 48
[ 0.000000]… MAX_LOCKDEP_KEYS: 8191
[ 0.000000]… CLASSHASH_SIZE: 4096
[ 0.000000]… MAX_LOCKDEP_ENTRIES: 32768
[ 0.000000]… MAX_LOCKDEP_CHAINS: 65536
[ 0.000000]… CHAINHASH_SIZE: 32768
[ 0.000000] memory used by lock dependency info: 5167 kB
[ 0.000000] per task-struct memory footprint: 1152 bytes
[ 0.060000] Calibrating delay loop… 159.12 BogoMIPS (lpj=795648)
[ 0.070000] pid_max: default: 32768 minimum: 301
[ 0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.080000] CPU: Testing write buffer coherency: ok
[ 0.080000] Setting up static identity map for 0x40353070 - 0x403530c8
[ 0.110000] devtmpfs: initialized
[ 0.130000] pinctrl core: initialized pinctrl subsystem
[ 0.180000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.290000] Serial: AMBA PL011 UART driver
[ 0.290000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 17, base_baud = 0) is a PL011 rev2
[ 0.480000] console enabled
[ 0.560000] mxs-dma 80004000.dma-apbh: initialized
[ 0.590000] mxs-dma 80024000.dma-apbx: initialized
[ 0.600000] SCSI subsystem initialized
[ 0.610000] pps_core: LinuxPPS API ver. 1 registered
[ 0.610000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti
[ 0.620000] Switched to clocksource mxs_timer
[ 1.130000] futex hash table entries: 256 (order: 1, 11264 bytes)
[ 1.290000] jffs2: version 2.2. (NAND) 2001-2006 Red Hat, Inc.
[ 1.320000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 1.330000] io scheduler noop registered (default)
[ 1.340000] of_dma_request_slave_channel: dma-names property of node "/apb@80000000/apbx@80040000/serial@80070000" missing or empty
[ 1.360000] uart-pl011 80070000.serial: no DMA platform data
[ 1.360000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 146, base_baud = 1500000) is a 8006c000.serial
[ 1.380000] mxs-auart 8006c000.serial: Found APPUART 3.0.0
[ 1.410000] mousedev: PS/2 mouse device common for all mice
[ 1.430000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0
[ 1.440000] i2c /dev entries driver
[ 1.450000] stmp3xxx_rtc_wdt stmp3xxx_rtc_wdt: initialized watchdog with heartbeat 19s
[ 1.460000] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[ 1.470000] Driver "mmcblk" needs updating - please use bus_type methods
[ 1.480000] 80010000.ssp supply vmmc not found, using dummy regulator
[ 1.540000] mxs-mmc 80010000.ssp: initialized
[ 1.630000] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.640000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:27:21 UTC (1641)
[ 1.660000] mmc0: new high speed SD card at address e624
[ 1.680000] mmcblk0: mmc0:e624 SU02G 1.84 GiB
[ 1.730000] mmcblk0: p1 p2 p3
[ 1.740000] usb0_vbus: disabling
[ 1.780000] EXT3-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240)
[ 1.800000] EXT2-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240)
[ 1.870000] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[ 1.880000] VFS: Mounted root (ext4 filesystem) on device 179:3.
[ 1.910000] devtmpfs: mounted
[ 1.920000] Freeing unused kernel memory: 188K (c04c5000 - c04f4000)
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Starting the hotplug events dispatcher: udevdudevd: error getting socket: Function not implemented

Error initializing control socketudevd: error initializing udevd socket
failed!
Setting the system clock.
Activating swap...done.
[ 6.410000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
Checking root file system...fsck from util-linux-ng 2.17.2
rootfs: clean, 10152/115920 files, 89453/462839 blocks
done.
[ 6.870000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
Setting the system clock.
Cleaning up ifupdown…
Setting up networking…
Loading kernel modules...done.
Activating lvm and md swap...done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Cleaning up temporary files…
Setting kernel variables ...done.
INIT: Entering runlevel: 2
Using makefile-style concurrent boot in runlevel 2.
Starting NTP server: ntpd.
Starting OpenBSD Secure Shell server: sshd.

Debian GNU/Linux 6.0 debian ttyAMA0

Debian login: root
Password:
Last login: Thu Jan 1 02:00:41 EET 1970 on ttyAM0
Linux debian 3.19.2 #5 Thu Mar 19 10:58:08 EDT 2015 armv5tejl

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@debian:~#
root@debian:~# free
total used free shared buffers cached
Mem: 19160 18292 868 0 1496 9756
-/+ buffers/cache: 7040 12120
Swap: 0 0 0
root@debian:~#
root@debian:~# cat /proc/cpuinfo
processor: 0
model name: ARM926EJ-S rev 5 (v5l)
BogoMIPS: 159.12
Features: swp half fastmult edsp java
CPU implementer: 0x41
CPU architecture: 5TEJ
CPU variant: 0x0
CPU part: 0x926
CPU revision: 5

Hardware: Freescale MXS (Device Tree)
Revision: 0000
Serial: 0000000000000000
root@debian:~#
root@debian:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 1789440 295900 1384592 18% /
tmpfs 9580 0 9580 0% /lib/init/rw
udev 10240 0 10240 0% /dev
tmpfs 9580 0 9580 0% /dev/shm
tmpfs 9580 0 9580 0% /var/volatile
tmpfs 9580 0 9580 0% /media/ram
root@debian:~#
root@debian:~# mount
rootfs on / type auto (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
tmpfs on /var/volatile type tmpfs (rw)
tmpfs on /media/ram type tmpfs (rw)


Дааа, есть над чем поработать.

Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе.
Итого, ошибок дизайна пока что не обнаружено, хотя нарекания уже есть. Что-ж, для начала, я считаю, достаточно.

Заключение

На самом деле это только начало. Еще есть над чем поработать - разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение:)

Есть три платы, которые я могу отдать. Все что нужно для получения - озвучить в комментариях идею, как можно применить получившуюся систему. Лучшие предложения получат по экземпляру даром, с надеждой, что вы реализуете свою идею, и расскажете, что у вас получилось. Раздачу слонов осуществлю 30 марта 2015 года, т.е. через неделю.

Для меня это будет обратной связью: мне нужно знать как поведет себя система в реальных условиях, насколько надежно себя покажет, какие проблемы возникнут, и т.д.

На этом пожалуй все, жду ваших комментариев.

UPD: по заявкам: первый экземпляр достается

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

Есть конечно и ноутбуки, которые компактны и универсальны, да они могут заменить системный блок. Но для меня в недорогих ноутбуках есть 2 серьезных минуса:

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

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

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

Мини компьютер поставляется в небольшой коробке,


в комплект поставки входят:


1 — сам компьютер
2 — блок питания
3 — кабель 220В
4 — две антенны Wi-FI, крепежные винты. Отдельно у того же продавца я купил VESA крепление к монитору.
5 — крепежные винты
6 — VESA крепление (в комплект не входит, надо заказывать отдельно)

Габариты

Как вы уже успели заметить размеры компьютера очень компактные 14 x 11 x 3,5 см, размеры сравнимы с размерами 3,5″ жесткого диска для настольного компьютера:

Технические характеристики

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

Внешние разъемы

Все разъемы располагаются на двух противоположных торцах.
С одной стороны


  • кнопка включения питания
  • разъем блока питания
  • 1 порт USB 3.0
  • 4 порта USB 2.0

Со второй стороны


  • 2 разъема под антенны
  • 3,5″ аудиовыход
  • 3,5″ разъем для микрофона
  • RJ-45 сетевой адаптер
  • HDMI выход
  • VGA выход

Что внутри

Если мы заглянем во внутрь мини компьютера, то увидим что внутри все расположено компактно. Здесь можно увидеть 1 слот SO-DIMM с модулем памяти, mSATA разъем со вставленным диском SSD, Mini PCIE разъем в который вставлен модуль Wi-Fi.


А также тут есть разъем для SATA для подключения жесткого диска, и нестандартный разъем питания для жесткого диска. Подключать дополнительный диск я не пробовал, потому что не было кабеля питания. И если честно сомневаюсь что его можно будет уместить в этом корпусе, по крайней мере креплений под него нет.

Охлаждение

Система охлаждения здесь пассивная, то есть в этом компьютере нет никаких вентиляторов , а за отвод тепла отвечает ребристый корпус маленького компьютера. При заявленных требованиях теплоотвода процессора — TDP 7,5W корпус вполне справляется с отводом тепла. Что касается перегрева, то пока с ним я не сталкивался компьютер за 2 месяца ни разу не завис и не отключился.

Замер температуры производился по встроенному в процессор датчику, в течении всех тестов, это примерно 80 минут. Как видно из замеров:

  • минимальная температура составила 40°C
  • максимальная температура составила 50°C

При этом запас до критической температуры составлял 50°C от максимума.

Отсутствие вентилятора и классического жесткого диска — это полное отсутствие шума, для меня это большой плюс.

Операционная система

Компьютер поставлялся с предустановленной английской Windows 7, копия была не лицензионная. Я сразу установил Windows 8.1 x64 драйвера установились все, единственное что я сделал, так это обновил их.


Linux системы на этом малыше работают, Live CD Ubuntu запустился без проблем. думаю все остальные дистрибутивы так же будут прекрасно работать.

В характеристиках компьютера заявлено что он поддерживает старую добрую Windows XP, но эту систему я не устанавливал, поэтому точно сказать насколько корректно она работает, и как обстоят дела с драйверами не могу.

Производительность

Сразу скажу геймерам — этот компьютер не для вас ! Как я уже писал графика здесь Intel HD Graphics, встроенная в процессор, к сожалению современные игры она не потянет. Но для некоторых игр его вполне хватит.

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

Тест производительности

Для измерения производительности использовался тест PerfomanceTest 8, скачать его можно на этой странице сайта www.passmark.com , в этом тесте:

  • Общий бал компьютера 680.4-709.0
  • Процессор показал результат на 30% ниже чем Core2Duo E8400
  • Графика , как и ожидалось слабая, примерно в 2 раза медленнее Radeon 6450
  • По тесту памяти отставание от DDR2 — 16%, от DDR3 — более 37%
  • Диск показал результат в 2,5 раза быстрее обычных дисков и на 38% медленнее других SSD дисков

Детальные результаты тестов:
2D графика :

3D графика :

Процессор :

Память :

Диск :

Итоговый результат :