четверг, 29 августа 2013 г.

BeagleBone Black - Review

Это первый пост, после столь долгого перерыва. Посвящён он будет обзору моей новой платы Beagle Bone Black (BBB).
Это наверное, самая компактная и в тоже время, наиболее насыщенная функционалом плата из всех, что у меня были.

Данная плата является полноценной отладочной платой (за исключением отладчика) для микропроцессора (МП) семейства TI Sitara AM3359. Этот МП использует в качестве ядра, процессорное ядро ARM Cortex A-8 работающее в диапазоне частот 600 МГц - 1 ГГц. Набор поддерживаемых инструкций ARMv7a.





Предистория

Вообще, у меня очень давно было желание иметь плату с ARM процессором и Linux на борту. Все приключения начались порядка 7 лет назад, с этой платы. Помучившись с ядром и установкой Gentoo на эту плату, я на какое-то время забросил её.

Значительно позднее, (в 2012 году) у меня в ходе разработки очередного проекта оказалась плата на базе iMX536. Однако, запустить нормальный образ Gentoo Linux на ней также не удалось, по причине древнего ядра (в новом просто не работал последовательный порт на приём). Чуть позднее проект закончился и плата ушла заказчику.

Однако желание иметь плату на нормальном, современном процессоре так и осталось. Видимо впечатление от просмотра фильма в 8-ми битном цвете  на плате от стартер-кита было настолько ярким, что любое стремление добить запуск Gentoo Linux на Радуге (Rainbow v1.1) не доставляло желаемого удовольствия.

И вот, имея некоторые представления о разных МП на базе последних ядер (Cortext A-8 - A-15), мне пришла в голову идея о покупке подобной платы лично для себя. Долго выбирая из различных решений, я понял, что главное даже не мощность, а поддержка со стороны сообщества. Именно поэтому выбор в последствии пал на BBB. Достаточно невысокая цена (45 долларов за саму плату + ~12 за доставку) стала решающим аргументом.

Покупка

После того, как я определился с платой, настала очередь выбрать поставщика. Все кого я находил, давали цену доставки не менее 40 долларов, а то и все 60. Что в итоге делало покупку изделия нецелесообразной. Однако однажды, я наткнулся на одного из средних поставщиков - GarageLab, который позволял отправить плату почтой США (первый класс). 
Вот итоговый чек:
DescriptionUnit priceQtyAmount
BeagleBone Black
Item# CIRCO-01457
$45,00 USD1$45,00 USD
Shipping
Item# United States Postal Service (USPS) - First-Class Package International Service
$13,75 USD1$13,75 USD


Subtotal$58,75 USD
Total$58,75 USD
Payment$58,75 USD
....

From amount2 002,53 RUB
To amount$58,75 USD
Exchange rate: 1 Russian Ruble = 0,0293378 U.S. Dollars

Как видно из чека, итоговая сумма вышла 2000 рублей, что намного ниже той же Raspberry-PI которая продавалась у нас в магазине радиоэлектроники. Посылку отправил 25 июля, а пришла она ко мне в город 15 августа. Что укладывается в срок - 3.5 недели.

Плата

Плата пришла в стандартной упаковке, раскрыв которую, я увидел небольшую коробочку, по размеру помещающуюся в ладонь:
Коробка оказалась лёгкой. Как видно на фото, упаковка при доставке не пострадала. Нет даже малейших намёков на вмятины. Это произошло потому, что она была завёрнута в пузырчатый полиэтилен (таких крупных пузырей я ещё ни разу не видел - 3 см в диаметре). И стандартную упаковку для бандеролей в США.





На лицевой панели коробки красуется мэскот (животное - символ) платы собака в чёрном фраке:
Открыв коробку, я увидел плату завёрнутую в антистатический полиэтиленовый пакет, небольшую складную визитку с кратким описанием подключения и кабель USB-A <--> mini USB-B, также в полиэтиленовом пакете:
Достав плату из пакета, я увидел, как высока плотность размещения компонентов как на лицевой, так и на обратной стороне платы.
Здесь размещены:


  • собственно сам МП AM3359;
  • ОЗУ на 512 МБ DDR3;
  • Flash Disk он же NAND объёмом в 2 ГБ;
  • HDMI медиаконвертор;
  • драйвер Ethernet;
  • микросхема контроллера питания и её обвязка;
  • разъёмы - питания, Ethernet, USB-A Host, для подключения аккумулятора и 2 гребёнки для подключения пользовательской периферии различного типа сигнала;
  • кнопки - питания, сброса, выбора режима загрузки;
  • светодиоды - 1 для индикации питания и 4 пользовательских;
  • а также большое количество пассивных элементов.
Обратная сторона платы:

  • разъёмы для mini USB-B, micro SD, micro HDMI;
  • распаянный разъём для JTAG;
  • ещё больше пассивных элементов.
Также на плате присутствуют отверстия, под монтажные стойки, для крепления платы на стенде или в корпусе. 
Все основные разъёмы и индикаторы выведены с торцов для полного удобства:


Как видно из фотографий, доступ к кнопкам открыт, однако вместе с тем  достаточно значительное усилие нажатия кнопок, а также удаленность от краев платы позволяют исключить случайное нажатие.
Подключаем плату к ПК с помощью mini USB-B кабеля, а также к адаптеру USB <--> UART ( для этого на плате присутствует специальная гребёнка, её видно на нижнем фото справа от левой гребёнки пользовательских выводов).


Можно увидеть, как загорится светодиод питания, а позднее начнут загораться и пользовательские светодиоды, на которые назначены различные функции.
На плате во флеш память по умолчанию помимо первичного загрузчика и uBoot, установлен Ångström Linux, с базовым набором программ, поэтому плата готова к действию сразу из упаковки:


В консоли, которая подключена к последовательному порту, можно видеть загрузку устройства которая в общей сложности занимает не более 15 секунд:
После загрузки устройства появится комбинированное устройство. Если же, отмонтировать диск которым у нас представляется плата, то появится сетевой интерфейс. После его настройки, по адресу http://192.168.7.2/ будет доступна веб-оболочка:
Также, помимо этого на 3000 порту этого же адреса - http://192.168.7.2:3000/ находится веб-IDE - Cloud-9. Эта среда разработки позволяет разрабатывать код под плату, используя node-js прямо в браузере, без дополнительных плагинов. Отладка тоже доступна:

На этом мой короткий фотообзор закончен. Также прилагаю два видеообзора.
Распаковка:

Подключение:
На этом всё.