В этой статье приведен перевод наиболее интересных с моей точки зрения моментов руководства [1], посвященного плате разработчика BeagleBone Black (BBB).
Базовая информация, необходимая для быстрого старта, приведена в руководстве Quick Start Guide, доступном на сайте beagleboard.org. BBB может быть сконфигурирована несколькими способами, однако для простоты будут рассмотрены только два базовых сценария использования.
1. BBB подключена к хосту PC кабелем USB.
- BBB доступна как USB-флешка (MSD). - К BBB можно подключиться через виртуальный сетевой адаптер (USB ECM) RNDIS Ethernet.
2. BBB используется как самостоятельная рабочая станция.
- Подключен монитор. - Подключены клавиатура и мышь. - Питание осуществляется от внешнего источника DC 5V.
В этой конфигурации BBB плата получает питание через кабель USB, которым осуществлено соединение с хостом PC, друге кабели не требуются. Плата видна на хосте PC как флешка (USB storage drive) или как веб-сервер, к которому можно подключиться через браузер (используйте Firefox или Chrome, бразуер IEx не будет работать должным образом). Для подключения и подачи питания предназначен разъем P4, расположенный на обратной стороне платы BBB.
Рис. 3. Коннектор miniUSB P4.
Примечание: питания, поступающего от кабеля USB, в таком сценарии иногда недостаточно, необходимо также подключать внешний источник питания DC 5V.
Рис. 4. Светодиод Power LED, сигнализирующий о включении питания.
Когда плата начинает свой процесс загрузки (по умолчанию прошита OS Debian) после подачи питания, светодиоды (LED) USER0, USER1, USER2, USER3 начнут зажигаться, как показано на рис. 5 ниже. Через несколько секунд все светодиоды на некоторое зажгутся, после чего начнется процесс загрузки ядра Linux Debian, и светодиоды начнут перемигиваться в случайном порядке.
Рис. 5. Board Boot Status.
Примерно через 10 секунд на компьютере появится USB флешка BBB, на котором находится файл START.htm, доступный для просмотра в браузере (одна из версий документа Getting Started).
В этой конфигурации плата работает как обычный компьютер.
Примечание: в графическом режиме, как обычный десктоп, платку BBB использовать практически невозможно. Да, все как бы работает, но слишком медленно. Браузер Chromium загружает процессор на 100%, ролики на YouTube просмотреть невозможно, все программы запускаются очень долго.
Рис. 6. Десктоп на основе BBB.
Для работы в качестве самостоятельной рабочей станции могут понадобиться дополнительные подключения и комплектующие:
- Кабель Ethernet - необходим для подключения к локальной сети и Интернет. - Стабилизированный блок питания 5VDC 1A (подойдет зарядное устройство от смартфона соответствующей мощности). - HDMI монитор или DVI-D монитор (замечание: только HDMI предоставляет функции audio). - Кабель Micro HDMI - HDMI для монитора HDMI или адаптер Micro HDMI - DVI-D для монитора DVI-D. - Беспроводные клавиатура и мышь. - Опционально может понадобиться хаб USB, если необходимо подключить клавиатуру USB и мышь (или дополнительно другое устройство USB), потому что у платы BBB в наличии есть только один порт хоста USB (см. рис. 10).
Рис. 10. Коннектор хоста USB.
Примечание: имейте в виду, что порт хоста USB платы BBB может выдавать ток не более 500 мА, поэтому лучше всего использовать хаб с внешним источником питания.
Для подключения монитора используется коннектор и кабель microHDMI.
Рис. 14. Подключение монитора через разъем microHDMI.
Коннектор microHDMI не выглядит очень надежным. Используйте его с осторожностью, не прилагая излишних механических нагрузок.
Загрузка системы. В процессе загрузки светодиоды USERx будут мигать (см. рис. 5 выше). Хотя пользователь может запрограммировать мигание светодиодов USERx по своему усмотрению, по умолчанию они показывают следующие состояния ядра Linux:
USER0 - heartbeat индикатор Linux kernel. USER1 - зажигается, когда осуществляется доступ к карте microSD. USER2 - индикатор активности. Зажигается, когда kernel не находится в цикле ожидания (idle loop). Яркость этого светодиода пропорциональна загрузке процессора. USER3 - зажигается, когда осуществляется доступ к eMMC (память FLASH NAND 4GB), находящейся на плате.
Когда начнет загружаться Linux, на экране монитора может появиться курсор мыши. Чтобы он появился, попробуйте перемещать свою мышь. Система может перейти в режим приостановки (suspend mode) с портом HDMI в режиме сна (sleep mode).
Через минуту-две появится экран запроса логина и пароля, но ничего с этим делать не нужно. Затем через некоторое время появится рабочий стол, примерно так, как это показано на рис. 16.
Рис. 16. Рабочий экран Debian Linux.
Выключение питания. Чтобы выключить питание, коротко нажмите на кнопку S3 POWER. После этого система автоматически выключит питание. Когда светодиод D1 PWR (рис. 4) погаснет, отключите джек питания DC 5V из коннектора P1.
[Обзор BeagleBone Black]
Плата BeagleBone Black (BBB) разработана на основе процессора Sitara AM3358BZCZ100, 1GHZ. Разработка отвечает принципам открытого ПО и hardware (Open Source Community), и поэтому особенно интересна для создания проектов на недорогих процессорах ARM Cortex-A8.
BBB оборудована минимальным набором функций, позволяющим получить опыт разработки. Нельзя рассматривать BBB как платформу разработки с полным набором возможностей, потому что доступ ко многим функциям и интерфейсам процессора не предоставлен. Таким образом для реализации любой задачи BBB не подойдет, её следует рассматривать как средство обучения программированию процессора и созданию своего ПО.
Ко многим интерфейсам можно получить доступ путем подключения дополнительных плат (capes). Пользователь может также самостоятельно разработать cape-плату и добавить в её схему необходимые компоненты (см. далее врезку "Поддержка cape-плат расширения").
[Совместимость и возможности BBB]
Плата в процессе эволюции проекта потерпела некоторые изменения, однако по мере возможности была сохранена совместимость с предыдущими версиями BeagleBone. Ниже перечислены функции и отличия.
• Процессор Sitara AM3358BZCZ100, 1GHZ. Переход на этот процессор был сделано с целью повышения производительности. • 512MB DDR3L. Применение этого типа памяти позволило снизить стоимость, повысить быстродействие, увеличить объем памяти и при этом снизить энергопотребление. • Отсутствует последовательный порт по умолчанию. Это снизило стоимость и упростило плату. Вы можете использовать для подключения к последовательному порту недорогие переходнички USB - TTL UART. • Отсутствует эмулятор JTAG через USB. Это снизило цену платы. При необходимости коннектор JTAG может быть легко смонтирован. • Размер EEPROM уменьшен с 32KB до 4KB по соображениям уменьшения стоимости. • Onboard Managed NAND (eMMC) 4GB. Снизилась цена, улучшилась производительность (разрядность x8 против x4). Повысилась производительность благодаря детерминированным свойствам памяти по сравнению с картой памяти microSD. • В некоторых случаях шина GPMC может быть недоступна на разъемах расширения. Это результат установки eMMC на основной плате. Сигналы все еще разведены на коннектор расширения. Если eMMC не задействована и удерживается в состоянии сброса, то эти сигналы могут использоваться через разъем расширения. • Доступно на 10 ножек GPIO меньше, чем раньше, из-за применения памяти eMMC. Если она не используется, то эти ножки GPIO могут задействованы. • Удален дополнительный разъем расширения питания для батареи и подсветки. Это сделано для снижения цены и экономии пространства на плате. Добавлено 4 вывода для доступа к функции заряда батареи. • На плате разведен интерфейс HDMI, доступный для подключения через коннектор Micro HDMI P6. Это добавило стандартную возможность вывода звука и видео. • Отсутствует трехфункциональный кабель USB. • На выводе GPIO3_21 должны присутствовать такты 24.576 МГц. Это необходимо для микросхемы HDMI Framer U11 и вывода звука. Понадобилось вводить такты в процессор, чтобы генерировать корректную частоту. Этот вывод был разведен на разъем расширения. Для сохранения совместимости сигнал был оставлен разведенным на этом разъеме. Чтобы использовать эту ножку как GPIO, необходимо запретить такты на GPIO3_21. Имейте в виду, что это отключит звук HDMI.
Таблица 2. Функции и возможности BeagleBone Black.
Функция
Описание
Процессор
Sitara AM3358BZCZ100 1GHz, 2000 MIPS
Графика
SGX530 3D, 20M полигонов/сек
SDRAM
512MB DDR3L 800MHZ
Flash
4GB, 8bit Embedded MMC
Управление питанием
Регулятор/менеджер питания TPS65217C PMIC и один дополнительный LDO.
Поддержка отладки
Посадочное место для 20-выводного коннектора CTI JTAG, а также коннектор для вывода отладочных сообщений и консоли управления.
Источник питания
От разъема miniUSB или от джека 5VDC.
Размеры печатной платы
3.4” x 2.1” (86.4 x 53.3 мм).
Индикаторы
1 Power LED, 2 Ethernet LED, 4 LED управляемых программно.
HS USB 2.0 Client Port
Подключен к USB0 процессора, режим клиента через разъем miniUSB.
HS USB 2.0 Host Port
Подключен к USB1, Type A Socket, 500 mA, LS/FS/HS.
Serial Port
Подключен к UART0 процессора, уровни 3.3V TTL.
Ethernet
10/100 мегабит, автосогласование, RJ45
Слот карт памяти
microSD, 3.3V.
Ввод пользователя
Кнопки сброса, управления загрузкой и включения/выключения питания.
Видео
16b HDMI, режимы 1280x1024 (MAX), 1024x768, 1280x720, 1440x900, 1920x1080@24Hz с поддержкой EDID.
Звук
Стерео, через интерфейс HDMI
Коннекторы расширения
Питание 5V, 3.3V, VDD_ADC (1.8V), уровни 3.3V I/O на всех сигналах, McASP0, SPI1, I2C, GPIO (69 max), LCD, GPMC, MMC1, MMC2, 7 AIN (1.8V MAX), 4 таймера, 4 последовательных порта, CAN0, EHRPWM(0,2), XDMA Interrupt, Power button, Expansion Board ID (можно подключать до 4 cape-плат расширения).
Вес
39.68 грамм.
Энергопотребление
См. врезку "Подробное описание аппаратуры BBB", таблица 4.
[Размещение компонентов на плате BBB]
Коннекторы, LED, кнопки. На рис. 17 показаны места установки разъемов, светодиодов LED, кнопок.
Рис. 17. Коннекторы, LED, кнопки.
• DC Power - разъем джека для подачи основного питания 5V постоянного тока. • Power Button - кнопка указывает процессору инициировать последовательность выключения, она используется для выключения платы. • 10/100 Ethernet - соединение с локальной сетью (LAN). • Serial Debug - последовательный порт для подключения консоли отладки. • USB Client - разъем miniUSB для подключения к хосту PC. Через этот разъем также может подаваться питание на плату. • BOOT switch - кнопка может использоваться для принудительной загрузки с карты microSD, если снять питание с платы и при удержании этой кнопки снова подать питание.
Примечание: текущая версии загрузчика U-Boot проверяет версию операционной системы Debian на установленной карте microSD. Если она более новая, чем записана на eMMC, то произойдет загрузка с карты microSD, даже если не нажата кнопка BOOT.
• USERx - 4 голубых светодиода (LED), которыми пользователь может управлять в своих программах. • Reset Button - позволяет сбросить процессор. • microSD - в этот слот может быть установлена карта microSD. • microHDMI - сюда можно подключить монитор (с интерфейсом HDMI). • USB Host - сюда можно подключать подчиненные устройства USB, такие как адаптеры Wi-Fi, BlueTooth, клавиатура, мышь и т. д.
• Процессор Sitara AM3358BZCZ100. • Память SDRAM Micron 512MB DDR3L или Kingston 512MB DDR3 (Dual Data Rate RAM). • TPS65217C PMIC (Power Management IC, микросхема управления питанием) предоставляет несколько напряжений различным компонентам платы. • SMSC Ethernet PHY, физический интерфейс локальной сети (LAN). • Micron eMMC память FLASH, чип MMC объемом 4GB. На нем записан образ операционной системы. • HDMI Framer U11 управляет дисплеем HDMI или DVI-D (последний через соответствующий адаптер).
512MB DDR3L. В качестве памяти используется одна микросхема организацией 256Mbx16 DDR3L 4Gb (512MB). Может быть установлена микросхема MT41K256M16HA-125 от Micron или D2516EC4BXGGB от Kingston.
Память работает на тактовой частоте 400 МГц, что на шине DDR3L соответствует эффективной тактовой частоте 800 МГц с полосой пропускания 1.6GB/S.
4KB EEPROM. Микросхема 4KB EEPROM, подключенная через I2C0, хранит настройки и информацию о ней. Здесь записана имя платы, серийный номер, номер ревизии. Эта информация не та же самая, какая была в оригинальной плате BeagleBone. Размер микросхемы был уменьшен с 32KB до 4KB по соображениям снижения стоимости. Микросхема снабжена выводом, определяющим возможность запрограммировать микросхему EEPROM. Если он не заземлен, то включается защита от записи.
4GB Embedded MMC. На плате установлена одна микросхема 4GB embedded MMC (eMMC), подключенная к порту MMC1 процессора, с возможностью 8-битного доступа. Режим загрузки по умолчанию использует MMC1, с опцией поменять на MMC0, слот карты microSD. Чтобы загрузиться с microSD, нужно установить карту в слот P10 microSD Card и передернуть питание (простое нажатие на кнопку сброса режим загрузки не поменяет). MMC0 не может использоваться в режиме 8 бит, потому что ножки младших разрядов используются для порта Ethernet. Это не влияет на работу карты SD, но делает неподходящим использование MMC0 в качестве порта eMMC, если необходим режим 8 бит.
MicroSD. На плате установлен коннектор microSD, который работает как вторичный источник для загрузки платы (secondary boot source). Если это выбрано, слот может использоваться как первичный источник загрузки (primary boot source). Карта памяти microSD вместе с платой не поставляется, её нужно покупать отдельно. Загрузка с MMC0 используется для прошивки eMMC на заводе, или эта возможность может быть задействована пользователем, если ему нужно выполнить обновление программного обеспечения системы.
Управление питанием. Микросхема TPS65217C обслуживает функции питания, и она используется совместно с отдельным стабилизатором LDO для организация питания системы. TPS65217C предоставляет правильные напряжения питания, необходимые для DDR3L. Та же самая микросхема используется в оригинальной плате BeagleBone с тем лишь исключением, что установлены другие настройки питания во внутреннем EEPROM микросхемы TPS65217C, чтобы поддерживались новые напряжения.
Память DDR3L требует 1.5V вместо 1.8V памяти DDR2, которая использовалась в оригинальной BeagleBone. Таким образом, для DDR3L настройка регулятора 1.8V была изменена на 1.5V. Линия питания LDO3 3.3V была перенастроена на 1.8V, чтобы поддерживать соответствующее питание процессора. LDO4 осталась на 3.3V для линий питания 3.3V процессора. Внешняя микросхема стабилизатора LDOTLV70233 предоставляет питание 3.3V для остальной части платы.
Интерфейс PC USB. Плата оборудована коннектором miniUSB, который подключен к порту USB0 процессора. Такой же коннектор используется и на оригинальной плате BeagleBone.
Serial Debug Port. Функция последовательной отладки (точнее, вывод отладочных сообщений и текстовая консоль управления) предоставляется через UART0 процессора, для этого используется коннектор 1x6 J1. Чтобы использовать этот интерфейс, необходим адаптер USB TTL. Коннектор по цоколевке совместим с адаптером, предоставляемым компанией FTDI, и такой адаптер можно купить во многих местах. Используются только сигналы TX и RX, сигналы рукопожатия не поддерживаются.
USB Host Port. На плате установлен один коннектор USB Type A "мама" с полной поддержкой режимов LS/FS/HS хоста, подключенный к порту USB1 процессора. Порт может предоставить управление включением/выключением питания, и может выдавать ток до 500 мА с напряжением 5V. При питании от USB плата не сможет выдать полные 500 мА, однако для многих целей, когда подключены маломощные потребители USB, могут быть выданы токи от 50 до 100 мА.
С портом хоста при наличии специального адаптера можно использовать беспроводные клавиатуру и/или мышь, либо можно подключить хаб USB и через него подключить обычные клавиатуру и мышь.
eMMC Boot. Это режим загрузки по умолчанию, установленный на заводе, и реализующий самую быструю загрузку операционной системы Debian.
SD Boot. В этом режиме загрузка происходит с карты microSD, установленной в соответствующий слот P10 microSD. Этот режим может использоваться для отмены загрузки из памяти eMMC, и может использоваться для программирования eMMC на заводе или для обновления ПО у конечного пользователя.
Serial Boot. Этот режим использует последовательный порт для прямой загрузки программного обеспечения. Для этого нужен отдельный кабель USB - TTL UART 3.3V, подключенный к коннектору J1.
USB Boot. Этот режим поддерживает загрузку через порт USB.
Разработчики beagleboard.org не предоставляют ПО для поддержки загрузки в режимах USB Boot и Serial Boot. Ищите соответствующее ПО и руководство на сайте Texas Instruments.
Кнопка S2 Boot позволяет переключаться между режимами загрузки:
• Удержание кнопки S2 Boot в момент подачи питания, если не установлена карта microSD, принудительно включает режим загрузки через USB (USB Boot), и если клиентский порт USB не детектирован, то для загрузки выбирается последовательный порт (Serial Boot). • Без удержания кнопки S2 Boot плата попытается загрузиться из eMMC. Если там ничего нет, то будет произведена попытка загрузки из слота microSD, потом через последовательный порт, и затем через порт USB. • Если удерживать кнопку S2 Boot при передергивании питания, и при этом установлена карта microSD, на которую записан загрузочный образ, то загрузка произойдет с карты microSD.
Примечание: фактически, если установлена карта microSD, на которую записан загрузочный образ, то загрузка произойдет с карты microSD, независимо от того, была нажата кнопка S2 Boot при подаче питания, или нет.
Замечание: нажатие кнопки сброса S1 RESET не приведет смене режима загрузки. Чтобы поменять режим загрузки, нужно отключить питание и снова подключить его. Ножки режима загрузки процессора опрашиваются PMIC во время сброса по питанию (power on reset) процессора. Кнопка сброса платы S1 выполняет только "теплый" сброс (warm reset), и не меняет режим загрузки.
На плату BBB можно подать питание 4 разными способами:
• Порт USB хоста PC (коннектор P10 miniUSB). Как показывает мой опыт, часто такого источника питания недостаточно, плата не включается. • Внешний блок питания 5VDC 1A, подключенный к коннектору джека P1. • Подача питания через коннектор miniUSB. • Разъемы расширения (expansion connectors).
Вместе с каждой платой поставляется кабель miniUSB. Ток потребления от порта miniUSB ограничен на 500 мА микросхемой PMIC TPS65217C. Можно увеличить эту настройку TPS65217C с целью увеличения предела тока, но только после начальной загрузки (initial boot). Также для увеличения тока использовать двойной кабель USB, чтобы получить суммарный ток 1A.
В комплект поставки платы блок питания DC 5V не входит, но его легко можно докупить отдельно. Достаточен блок питания на 1A, но если используются дополнительные платы (cape boards), подключенные с коннекторам расширения, или если используется хаб USB с большим количеством потребляющих устройств, то может понадобиться блок питания на повышенный ток.
Питание, поступающие на плату через разъем расширения, должно быть получено от источника питания, подключенного к cape-плате. Этот источник питания DC должен быть хорошо стабилизирован и выдавать напряжение 5V +/-0.25V.
Кнопка сброса. Если коротко нажать на кнопку S1 RESET, то произойдет сброс платы. Кнопка сброса используется на BeagleBone Black немного чаще, чем на оригинальной плате BeagleBone. Также эта кнопка перенесена ближе к краю платы, чтобы она была доступнее.
Кнопка питания. Эта кнопка установлена недалеко от кнопки сброса, рядом с коннектором Ethernet. Кнопка питания использует вход PMIC для функции выключения питания. В то время как некоторые cape-платы снабжены кнопкой, было решено добавить эту функцию на плату, чтобы гарантировать, что в любом случае будут доступны новые функции по управлению питанием. Эти функции включают следующее:
• Процессору посылается прерывание, чтобы упростить процесс правильного выключения системы с сохранением файлов и размонтированием приводов. • Предоставляется возможность для процессора перевода платы в режим сна (sleep mode) с целью экономии потребляемой энергии. • Можно предупредить процессор о пробуждении из режима сна (wake up) и восстановлении состояния, в котором система находилась перед входом в режим сна.
Если удерживать кнопку питания нажатой дольше 8 секунд, плата выключится, если Вы отпустите эту кнопку после погасания светодиода power LED (D1 PWR). Если же продолжать удерживать кнопку, то плата снова включится. Это работает наподобие кнопки Power системного блока обычного компьютера PC или ноутбука.
Рекомендуется использовать кнопку питания для выключения платы, что поможет предотвратить появление шибок на карте SD или в памяти eMMC.
Если джек питания не отключен, то повторное нажатие на кнопку питания снова включит плату.
Индикация. На плате BBB установлено 5 индикационных голубых светодиодов (LED).
• Один светодиод power LED (D1 PWR) показывает, что микросхема управления питанием (PMIC) включена. Если этот LED мигает при подаче питания, то это значит, что обнаружен чрезмерный ток, и PMIC выключается. Также этот LED при подаче питания может загореться на короткое время и погаснуть, если адаптер DC 5V или шнур miniUSB дает недостаточный ток (подобный опыт был у меня, когда попытался подать питание на плату через порт USB хоста PC, без дополнительного питания через разъем джека P1).
• Четыре голубых светодиода показывают состояние системы, и они могут управляться из ПО пользователя путем программирования выводов GPIO.
Дополнительно два светодиода, желтый и зеленый, находящиеся на коннекторе Ethernet RJ45, показывают статус соединения. Желтый светодиод показывает, что имеется 100M линк, и зеленый миганием показывает активный трафик.
CTI JTAG. На обратной стороне имеется посадочное место для установки 20-выводного коннектора CTI JTAG P2 с шагом выводов 1.27 мм. P2 предназначен для разработки и отладки ПО с помощью различных эмуляторов JTAG. Если Вам нужна отладка через JTAG, то необходимо приобрести этот разъем и запаять его самостоятельно, другие компоненты не требуются. Это коннектор Samtec part-номер FTR-110-03-G-D-06, его можно купить на www.digikey.com или на mouser.com (Mouser part-номер 200-FTR11003GD06TR).
HDMI. Интерфейс HDMI подсоединен к 16-битному интерфейсу LCD процессора. Использовался 16b интерфейс, чтобы сохранить как можно больше выводов для расширения, которые можно было бы использовать. Микросхема NXP TDA19988BHN используется для преобразования интерфейса LCD в HDMI, а также для передачи звука. Сигналы LCD все еще выводятся на выводы коннекторов расширения, чтобы можно было использовать платы расширения для LCD или воспользоваться другими функциями платы при необходимости.
Устройство HDMI не поддерживает защиту от копирования контента (HDCP copy protection). Поддержка определения разрешающей способности предоставляется через EDID, чтобы ПО могло идентифицировать совместимые режимы экрана. В настоящий момент через ПО поддерживаются следующие разрешения экрана:
1280 x 1024 1440 x 900 1024 x 768 1280 x 720
Платы расширения. К плате BeagleBone Black через коннекторы расширения P8 и P9 можно подсоединить до 4 плат дополнительных функций (они называются Cape Board). Эти платы устанавливаются друг на друга в виде бутерброда. Термин cape (переводится как "мыс") произошел от формы платы расширения, поскольку она огибает коннектор Ethernet основной платы. Это работает как ключ, предотвращающий неправильное подключение платы расширения.
Большинство cape-плат, которые были разработаны для оригинальной платы BeagleBone, будут работать и на BeagleBone Black. Однако все же для BeagleBone Black есть некоторые исключения, касающиеся совместимости или её ограничений:
• Шина GPMC может быть недоступна, потому что её сигналы используются для eMMC. Если eMMC используется для загрузки, и файловая система находится на карте microSD, то эти сигналы могут использоваться. Как вариант для загрузки может использоваться карта microSD или режимы serial boot, это позволит исключить использование памяти eMMC. • На BeagleBone Black отсутствует разъем расширения питания (power expansion header).
Дополнительную информацию по поддержке cape-плат см. в секции 9.0 BeagleBone Black Mechanical [1].
На рис. 20 показана высокоуровневая диаграмма аппаратуры платы.
Рис. 20. Блок-схема платы BeagleBone Black.
[Система питания]
Рис. 21. Высокоуровневая блок-схема питания.
TPS65217C PMIC. Системой питания управляет специальная микросхема TPS65217C (Power Management IC, сокращенно PMIC). Она состоит из двойного линейного входа, трех понижающих импульсных преобразователей и четырех аналоговых стабилизатора с малым падением напряжения на регулирующем элементе (Low Drop Out, сокращенно LDO).
Рис. 22. Блок-схема TPS65217C.
Система питается либо от джека DC с помощью внешнего адаптера 5V, либо через коннектор расширения P9, либо (при подаче достаточной мощности) от коннектора minuUSB P4. Три экономичных понижающих импульсных преобразователя (работающих на частоте 2.25 МГц) предоставляют питание ядру процессора, MPU и микросхемам памяти.
Понижающие преобразователи входят в режим пониженного потребления мощности (low power mode), когда нагрузка на выходе небольшая, и могут работать в широком диапазоне токов потребления. Приложения, где необходим низкий уровень шума, могут принудительно перевести преобразователи PMIC в режим фиксированной частоты PWM, путем программирования PMIC через интерфейс I2C. Высокая частота преобразователей позволяет использовать маленькие индуктивности и емкости, чем достигается небольшой общий размер печатной платы.
Регуляторы LDO1 и LDO2 предназначены для поддержки режима приостановки системы (standby mode). В нормальном режиме они могут выдавать по 100 мА каждый. Регуляторы LDO3 и LDO4 могут выдавать ток до 285 мА каждый.
По умолчанию LDO1 всегда в состоянии ON, однако любая выходная шина питания может быть сконфигурирована для удержания состояния SLEEP. В частности преобразователи DCDC могут оставаться в режиме low-power PFM, чтобы поддерживать режим приостановки процессора (processor suspend mode). TPS65217C предоставляет гибкие последовательности включения питания и несколько дополнительных обслуживающих функций, таких как выходы сигнализации о качестве питания (power-good output), мониторинг кнопки включения/выключения (pushbutton monitor), аппаратный сброс (hardware reset) и датчик температуры для защиты питающей батареи.
Рис. 23. Подключение DC-входов подачи питания к TPS65217C.
Для питания платы может использоваться источник стабилизированного постоянного тока 5VDC, для чего предоставляется коннектор джека P1. Ток потребления зависит от того, сколько дополнительных плат подключено. Для обычного использования достаточно тока 1A, так что можно использовать обычный источник зарядного тока от современных смартфонов. Если ожидается повышенная нагрузка через разъемы расширения или через порт хоста USB (P3 USB Host), то необходим более мощный источник питания.
Коннектор питания P1 принимает стандартный джек с внутренним диаметром 2.1 мм (плюсом в центре) и внешним диаметром 5.5 мм. Также шина 5VDC соединена с разъемом расширения P9, поэтому можно подавать питания и через подключенные платы расширения. И наоборот, шину 5VDC также можно использовать для питания плат расширения, если достаточна подаваемая через 5VDC разъем P1 мощность питания.
Питание от USB. Заявлено, что может предоставляться питание и через порт USB внешнего хоста PC. Однако обычный порт USB ограничивает выходной ток на уровне 500 мА. При питании от порта USB шина VDD_5V (напряжение +5V, поступающее от USB) не соединена с разъемами расширения, так что те cape-платки, которые требуют питания 5V, должны получать это питание либо отдельно, либо (если достаточен небольшой ток) через TPS65217C. Напряжение питания +5V DC, поступающее от порта USB, появляется на SYS_5V, это один из выходов TPS65217C, который выведен на разъем расширения P9. На рис. 24 показано подключение входа питания USB к PMIC TPS65217C.
Рис. 24. Питание от USB.
Микросхема TPS65217C автоматически выбирает источник питания 5VDC - либо от джека P1, либо от miniUSB P4, либо от обоих, в зависимости от того, что подключено. ПО может изменять конфигурацию питания через интерфейс I2C процессора. Дополнительно ПО может прочитать информацию TPS65217C и определить, откуда поступает питание - от входа 5VDC P1 или от входа miniUSB P4. Эта возможность может быть полезной, чтобы знать возможности питания и соответствующим образом управлять частотой тактов и платами расширения.
Можно подать питание через вход USB, и затем подключить питание через джек, плата автоматически переключится на питание от коннектора P1 5VDC.
Power Button. Кнопка питания подключена к микросхеме PMIC TPS65217C. Это простая кнопка на замыкание при нажатии, точно такие кнопки используются для управления выбором загрузки (кнопка S2 Boot) и для сброса (кнопка S1 RESET).
Если нажать кнопку питания, то TPS65217C отправит прерывание процессору. Процессор в свою очередь отвечает за то, чтобы подать лог. 0 на сигнал PMIC_POWER_EN, чтобы корректно выключить питание платы. В этот момент PMIC остается активной, если питание со входов не отключено. Повторное нажатие кнопки после выключения (если процессор перевел плату в состояние "выключено", power off mode) снова включит плату BBB.
В режиме power off шина питания часов реального времени (RTC) остается активной, что поддерживает RTC под питанием и в работе, если на входе присутствует питание на основных входах. Если же Вы отключите питание, то питание RTC также пропадет. Можно подавать питание от батареи через (не установленный) коннектор TP5-TP8, что будет обсуждаться далее.
Если нажать и удерживать кнопку питания нажатой дольше 8 секунд, PMIC выключится. Но Вы должны отпустить кнопку, когда погаснет power LED (D1 PWR). Если удерживать кнопку дальше, то питание снова включится.
Контакты батареи. На плате есть 4 контакта, чтобы можно было подключиться к выводам батареи TPS65217C. На эти контакты может быть запаян коннектор 2x2, или можно припаять батарею непосредственно к этим контактам. При необходимости к этим коннекторам могут подключаться cape-платы расширения.
Таблица 3. Контакты BeagleBone Black Battery TP5-TP8.
PIN
RefDes
Описание
BAT
TP5
Контакт для подключения батареи.
SENSE
TP6
Вход для измерения напряжения батареи, его надо подключить непосредственно к контакту батареи.
TS
TP7
Вход датчика температуры, подключается непосредственно к контакту батареи.
GND
TP8
Земля системы.
В на плате BBB нет аппаратуры для контроля за напряжением батареи, для этого нужно использовать отдельную микросхему АЦП с последовательным интерфейсом (1Wire, SPI или I2C), установленную на плате расширения.
Предупреждение: перед использованием коннектора батареи TP5-TP8 внимательно ознакомьтесь с документацией на микросхему TPS65217C.
Потребление тока. Потребляемая системой мощность меняется, в зависимости от процесса загрузки и используемых сценариев питания. Измерения тока потребления, показанные в таблице 4, были сделаны в следующей конфигурации:
• Питание подано через джек DC и через miniUSB. • Подключен HDMI-монитор. • Подключен USB HUB. • Подключена флешка 4GB. • Подключен кабель Ethernet 100 мегабит. • Подключен кабель Serial Debug к коннектору J1.
Таблица 4. Потребление тока платой BeagleBone Black от +5V (ток указан в миллиамперах).
Режим
USB
DC
DC+USB
Reset
Будет определено
Idling @ UBoot
210
210
210
Загрузка ядра (пик)
460
460
460
Ядро в ожидании
350
350
350
Ядро в ожидании, дисплей погашен
280
280
280
Загрузка веб-страницы
430
430
430
Ток потребления может меняться в зависимости от активности, такой как зажигание светодиодов, загрузка ядра процессами, доступ к памяти microSD/eMMC и т. п.
[Интерфейсы и сигналы процессора, относящиеся к питанию]
I2C0. Через I2C0 происходит управление микросхемой PMIC TPS65217C. Это дает возможность программно управлять её регистрами (коэффициенты установки напряжения, переключение входных шин питания).
PMIC_POWR_EN. При подаче питания сначала активируется шина VDD_RTC. После того, как схема RTC процессора активирована, TPS65217C инициирует процесс полного включения подачей лог. 1 на сигнал PMIC_POWR_EN. Когда происходит выключение питания, процессор может перевести этот сигнал в лог. 0, чтобы начать процесс выключения.
LDO_GOOD. Этот сигнал подключен к сигналу RTC_PORZn (RTC power on reset). В этой аббревиатуре маленькая "n" показывает, что сигнал активен при лог. 0. Поскольку схема RTC получает питание первой, этот сигнал показывает, что LDO-регуляторы дающие 1.8V VRTC, запустились и их напряжение стабильно. Этот факт запустит процесс включения.
PMIC_PGOOD. Как только на всех шинах питания появилось стабильное напряжение, этот сигнал переходит в лог. 1. Это освободит сигнал PORZn на процессоре, который удерживал сброс.
WAKEUP. Это сигнал пробуждения, который TPS65217C подает на вход EXT_WAKEUP процессора. Сигнал пробуждает процессор, когда он находится в sleep mode. Когда событие нажатия кнопки детектировано микросхемой TPS65217C, она генерирует сигнал WAKEUP.
PMIC_INT. Это сигнал прерывания для процессора. Как уже упоминалось, нажатие на кнопку питания S3 POWER приводит к прерыванию процессора, что позволяет реализовать корректное выключение системы с закрытием всех файлов и сохранением всех настроек, или реализовать переход в режим сна либо выход из него. Все эти функции требуют соответствующей поддержки со стороны ПО.
[Шины питания]
На рис. 25 показаны соединения каждой шины питания, выходящей из TPS65217C.
Рис. 25. Power Rails.
VRTC. Шина питания VRTC выдает напряжение 1.8V, оно появляется первым в процессе включения системы. VRTC предоставляет питание домену RTC процессора и сигналам ввода/вывода TPS65217C. VRTC может предоставить максимальный ток до 250 мА.
VDD_3V3A. Шина питания VDD_3V3A предоставляется TPS65217C, и на ней присутствует напряжение 3.3V для процессора. VDD_3V3A может предоставить ток до 400 мА.
VDD_3V3B. Ток, который может выдать шина VDD_3V3A, недостаточен для питания всех потребителей 3.3V платы. Поэтому используется дополнительная микросхема LDO U4 (TL5209A), которая стабилизирует напряжение на шине VDD_3V3B. Питание на этой шине появляется сразу после напряжения на шине VDD_3V3A.
VDD_1V8. Шина VDD_1V8 может выдать ток до 400 мА. Она предоставляет питание 1.8V для процессора и микросхемы HDMI Framer U11. Ни для каких других функций эта шина не используется.
VDD_CORE. Шина VDD_CORE может выдать ток до 1.2A при напряжении 1.1V. Она доступна исключительно только для питания ядра процессора. Напряжение на VDD_CORE зафиксировано на уровне 1.1V, и оно не должно подстраиваться программно путем программирования микросхемы PMIC. Если все-таки попытаться это сделать, то процессор может перестать работать.
VDD_MPU. Шина VDD_MPU может выдать ток до 1.2A. Она доступна исключительно только для питания процессора. По умолчанию напряжение VDD_MPU установлено на 1.1V, но его можно увеличить для работы на повышенных частотах. Изменение напряжения осуществляется программно через интерфейс I2C0 процессора.
VDDS_DDR. Шина VDDS_DDR по умолчанию выдает напряжение 1.5V для питания памяти DDR3L, и может выдавать ток до 1.2A. Можно подстроить это напряжение, снижая его до 1.35V, в целях уменьшения потребления мощности микросхемой памяти DDR3L. Только микросхемы DDR3L поддерживают установку напряжения 1.35V.
Последовательность появления напряжений. Процесс включения платы состоит из нескольких стадий и событий. Рис. 26 описывает процесс подачи питания, осуществляемый микросхемой PMIC. Подробные данные по интервалам времени см. в даташите Texas Instruments.
Рис. 26. Порядок включения шин питания.
На рис 27. показывает последовательность включения шин микросхемы TPS65217C, подробности см. в её даташите.
Power LED. Это синий светодиод, который зажигается, когда TPS65217C завершит процедуру включения. Если Вы увидели, что светодиод Power LED вспыхнул один раз и погас, то это означает, что TPS65217C столкнулась с проблемой (например, недостаточен ток от порта miniUSB, ЧТО привело к просадке напряжения 5V) и выключилась. Подключение Power LED показано на рис. 25 выше.
Когда напряжение подано от джека DC или от miniUSB, микросхема TPS65217C выводит питание на выход SYS_5V, что включает LDO-регуляторы TPS65217C.
В момент включения питания все импульсные преобразователи и LDO выключены, кроме VRTC LDO (1.8V), который подает питание на шину VRTC и управляет входом сброса RTC_PORZn процессора, запускающим его включение. Как только появилось питание на шине RTC, освободится сигнал RTC_PORZn, который подается от LDO_PGOOD микросхемы TPS65217C.
Как только сброс RTC_PORZn снят, процессор начинает процесс инициализации. После стабилизации RTC процессор запускает процесс включения активацией сигнала PMIC_POWER_EN, подключенного ко входу TPS65217C, чем запускается процедура полного включения TPS65217C (power up process).
Сигнал LDO_PGOOD предоставляется микросхемой TPS65217C для процессора. Поскольку этот сигнал на TPS65217C имеет уровень TTL, для преобразования его в уровни 3.3V процессора используется специальная микросхема преобразователя уровней U4. Как только регуляторы LDO и ключевые стабилизаторы TPS65217C перейдут в рабочее состояние, этот сигнал становится активным и запускает работу процессора. LDO микросхемы TPS65217C также используется для шины питания VRTC процессора.
Взаимодействие TPS65217C с процессором. На рис. 28 показан интерфейс между TPS65217C и процессором, это кусок от общей схемы BBB.
Рис. 28. Интерфейс управления питанием процессора.
Через этот интерфейс осуществляется управление микросхемой TPS65217C и чтение текущего состояния питания - после того, как завершена последовательность включения питания.
Интерфейс состоит из двух составляющих, первая это шина I2C0. Она позволяет процессору включать и выключать отдельные шины питания и устанавливать напряжения каждого регулятора. Вторая составляющая - сигнал прерывания. Это позволяет микросхеме TPS65217C предупредить процессор, когда происходит событие, такое как нажатие кнопки питания. Сигнал прерывания посылается через выход с открытым стоком, поэтому его легко состыковать с уровнями 3.3V процессора.
[Поддержка Low Power Mode]
Имеется 3 режима пониженного энергопотребления. Они описаны только в контексте аппаратуры, что относится к разработке схемы устройства.
RTC Only. Этом режиме все шины питания выключены, кроме шины VDD_RTC. Для входа в этот режим процессору нужно выключить все свои шины питания. VDD_RTC остается включенной, что сохраняет работу часов реального времени и предоставляет интерфейс пробуждения в ответ на соответствующее событие (wake up event).
RTC Plus DDR. В этом режиме все шины питания выключены, кроме VDD_RTC и VDDS_DDR, поступает питание для памяти DDR3L. Для входа в этот режим процессору нужно выключить все свои шины питания. VDD_RTC остается включенной, что сохраняет работу часов реального времени и предоставляет интерфейс пробуждения в ответ на соответствующее событие (wake up event).
Шина VDDS_DDR для DDR3L предоставляет напряжение 1.5V от микросхемы TPS65217C, и когда шина VDDS_DDR активна DDR3L может быть переведена процессором в режим самообновления (self refresh) перед выключением, что позволит сохранить данные в оперативной памяти, когда система находится в режиме сна.
В настоящее время эта функция не поддерживается в стандартном релизе ПО. Есть планы на будущее для использования этой функции.
Управление напряжением. Для ситуаций, когда можно снизить напряжение питания без перехода в режим сна, этот режим позволит процессору ARM уменьшить потребление энергии путем снижения тактовой частоты. Для управления напряжением используется шина I2C0, через которую программируется TPS65217C.
[Процессор Sitara AM3358BZCZ100]
Плата BBB работает на основе процессора Sitara AM3358BZCZ100 в корпусе 15 x 15 мм. Ранние ревизии используют процессор XM3359AZCZ100.
Рис. 29. Блок-схема процессора Sitara AM3358BZCZ.
Таблица 5. Высокоуровневые функции процессора.
Функции, интерфейсы
Описание
Операционная система
Linux, Android, Windows Embedded CE,QNX, ThreadX
Потребление энергии Standby
7 мВт
ARM CPU
1 ядро Cortex-A8
Макс. тактовая частота
275, 500, 600, 800, 1000
Макс. производительность, MIPS
1000, 1200, 2000
Ускоритель графики
3D
Другие ускорители
Два блока PRU-ICSS, один ускоритель криптографии
Встроенный кэш L1
64 килобайта (ARM Cortex-A8)
Встроенный кэш L2
256 килобайт (ARM Cortex-A8)
Другая встроенная память
128 килобайт
Опции дисплея
LCD
Поддержка памяти общего назначения
16-битный интерфейс (GPMC, NAND Flash, NOR Flash, SRAM)
Кварцевые резонаторы. На рис. 30 показана схема подключения кварцевых резонаторов, предназначенных для генерации тактов процессора.
Рис. 30. Кварцы процессора.
Схема сброса. На рис. 31 показана схема сброса. Начальный сброс при включении питания (power on reset) генерируется микросхемой TPS65217C. Она также генерирует сброс для RTC.
Сигналом сброса платы является SYS_RESETn. Он соединяется с выводом NRESET_INOUT процессора, который может работать как вход или выход. Когда нажата кнопка сброса, это действие посылает теплый сброс процессору и системе.
На ревизии платы A5D было сделано изменение. При включении питания сигнал NRESET_INOUT может работать как выход. В этом случае может произойти преждевременное повышение уровня на сигнале SYS_RESETn. Чтобы это предотвратить, сигнал PORZn от TPS65217C подключен к сигналу SYS_RESETn через буфер с открытым стоком. Это гарантирует, что этот сигнал не перейдет моментально в лог. 1 при включении питания. Это изменение было введено во всех ревизиях после A5D.
Рис. 31. Схема сброса платы BBB.
[Память DDR3L]
BeagleBone Black использует одну микросхему MT41K256M16HA-125 512MB DDR3L от Micron, которая подключается к процессору через 16 сигналов данных, 16 сигналов адреса и 14 сигналов управления. На ревизии C была добавлена возможность использования микросхемы памяти Kingston KE4CN2H5A-A58.
Дизайн платы поддерживает стандарты памяти DDR3 и DDR3L x16, и строится на основе DDR3L. На плате установлена одна микросхема с шиной данных x16, и две микросхемы с шиной x8 не поддерживаются. Микросхемы DDR3 работают от напряжения 1.5V, и микросхемы DDR3L могут работать при пониженном напряжении до 1.35V с целью снижения потребления энергии. Микросхема DDR3L имеет корпус 96-BALL FBGA с шагом выводов 0.8 мм. Могут также поддерживаться другие стандартные микросхемы DDR3, но DDR3L меньше потребляет энергии и была выбрана из-за возможности работы при напряжениях питания 1.5V или 1.35V. Стандартная рабочая частота DDR3L, с которой она работает на плате, составляет 400 МГц.
На рис. 32 показана схема подключения микросхемы памяти DDR3L.
Рис. 32. Память DDR3L.
A[15:0] сигналы адреса (входы): путем предоставления адреса строки (row address) командой ACTIVATE и адреса столбца (column address), а также бита auto pre-charge bit (A10) командами READ/WRITE, выбирается одна ячейка в массиве памяти соответствующего банка. Сигнал A10, который считывается во время команды PRECHARGE, определяет, применяется ли PRECHARGE к одному банку (A10 LOW, банк выбран сигналами BA[2:0]), или ко всем банкам (A10 HIGH). Входы адреса также предоставляют код операции во время команды LOAD MODE. Адресные входы работают с уровнями VREFCA. A12/BC#: когда это разрешено в регистре режима (mode register, MR), A12 считывается во время команд READ и WRITE, чтобы определить, будет ли выполняться burst chop (on-the-fly); HIGH = BL8 означает no burst chop, LOW = BC4 burst chop.
BA[2:0] адрес банка. Эти входы определяют банк, к которому применяется команда ACTIVATE, READ, WRITE или PRECHARGE. BA[2:0] определяют, какой регистр режима (MR0, MR1, MR2 или MR3) загружается во время команды LOAD MODE. BA[2:0] работают с уровнями VREFCA.
CK и CK#: дифференциальные входы тактов. Все сигналы адреса и управления считываются на положительном перепаде CK и отрицательном перепаде CK#. Сигналы строба выхода (DQS, DQS#) анализируются относительно перепадов CK и CK#.
CKE (Clock Enable Line): разрешает (HIGH) и запрещает (LOW) внутренние схемы и такты DRAM. В зависимости от конфигурации DDR3 SDRAM и режима работы разрешаются или запрещаются определенные схемы памяти. CKE = LOW предоставляют операции PRECHARGE power-down и SELF REFRESH (все банки в состоянии ожидания, idle) или active power-down (row активен в любом банке). CKE синхронизирован со входом и выходом при отключении питания и для самообновления (SELF REFRESH). CKE асинхронен для выхода из самообновления. Входные буферы (включая CK, CK#, CKE, RESET# и ODT) во время powerdown запрещены. Входные буферы (кроме CKE и RESET#) запрещены во время SELF REFRESH. CKE работает с уровнями VREFCA.
CS# (Chip Select) разрешает (LOW) и запрещает (HIGH) декодер команд. Все команды маскируются (не проходят), когда CS# = лог. 1. CS# предоставляет возможность выбора микросхемы, когда их несколько штук подключено параллельно. CS# рассматривается как часть кода команды. CS# работает с уровнями VREFCA.
DM (Data Mask) вход сигнала маски для записи данных. Входные данные маскируются, когда DM = HIGH вместе с входными данными во время доступа на запись. Хотя шарик DM работает только как вход, нагрузка DM разработана для согласования с нагрузкой шариков DQ и DQS. DM работает с уровнями VREFDQ.
ODT (On-die Termination) разрешает (HIGH) и запрещает (LOW) внутренние терминаторы DDR3L SDRAM. Когда это разрешено в нормальном режиме работы, ODT применяется только к следующим шарикам: DQ[7:0], DQS, DQS# и DM для x8; DQ[3:0], DQS, DQS# и DM для x4. Вход ODT игнорируется, если запрещен командой LOAD MODE. ODT работает с уровнями VREFCA.
VREF. Сигнал VREF генерируется делителем напряжения от уровня шины питания VDDS_DDR, которая предоставляет питание самой микросхеме памяти DDR3L и шину DDR процессора. Рис. 33 показывает конфигурацию этого сигнала и соединение с памятью и процессором.
Рис. 33. Схема DDR3L VREF.
[Память 4GB eMMC]
Память eMMC служит как энергонезависимое (nonvolatile) хранилище данных, которое включает интерфейс Multi-MediaCard (MMC), носитель данных NAND Flash и контроллер шиной из 11 сигналов, что совместимо со спецификацией MMC. Память eMMC не потребляет энергию на поддержание хранения данных, достаточно быстро работает в широком диапазоне температур, устойчива к ударам и вибрации.
Одна из проблем с картами SD от различных производителей - их производительность может сильно варьироваться. Карты используют различные контроллеры и различные микросхемы памяти, что может быть иногда не очень хорошо согласовано друг с другом. Но контроллеры могут быть оптимизированы для операции чтения, или для операции записи. Вы не знаете заранее, что в итоге получится. Все это приводит а разным показателям производительности. На eMMC известный контроллер, к когда он совмещен с 8-битным режимом, с 8 битами данных вместо 4, в результате получается удвоенное быстродействие, что уменьшает время загрузки системы.
Рис. 34 показывает подключение eMMC. Микросхема eMMC подключена к порту MMC1 процессора. MMC0 все еще используется для слота карты microSD, как это было в оригинальной BeagleBone. Теперь размер памяти eMMC 4GB.
Рис. 34. Схема подключения памяти eMMC.
Микросхема работает с уровнями 3.3V как внутри, так и снаружи, на ножках I/O. VCCI это внутренняя шина питания микросхемы. Производитель рекомендует подключить к ней конденсатор 1 мкФ, но про запас был выбран конденсатор 2.2 мкФ.
Верхние подтягивающие резисторы (pullup) используются для уменьшения времени перепадов уровня сигналов, чтобы компенсировать любые паразитные емкости печатной платы.
Ножки, используемые eMMC1 в режиме загрузки, перечислены в таблице 6.
Таблица 6. eMMC Boot Pins.
Имя сигнала
Ножка процессора
clk
gpmc_csn1
cmd
gpmc_csn2
dat0
gpmc_ad0
dat1
gpmc_ad1
dat2
gpmc_ad2
dat3
gpmc_ad3
Для микросхем eMMC код ROM будет поддерживать только "сырой" режим. Код ROM читает сырые секторы образа или загружает файл из файловой системы, и затем загружается из него. Raw-режим загрузки образа может использовать одной из четырех непрерывных областей основной памяти: смещение 0x0 / 0x20000 (128 KB) / 0x40000 (256 KB) / 0x60000 (384 KB). По этой причине образ загрузки не должен превышать по размеру 128KB. Однако можно запрограммировать микросхему образом размером больше 128KB, который начинается с одного из вышеперечисленных смещений. Таким образом, ROM Code не проверяет размер образа. Единственный недостаток превышения 128 KB в том, что образ пересечет следующее смещение для образа. Raw-режим детектируется чтением секторов #0, #256, #512, #768. Затем содержимое этих секторов проверяется на наличие структуры TOC (Table Of Content?). В случае устройства GP Device, заголовок конфигурации (Configuration Header, CH) должен находиться в первом секторе, который идет за заголовком GP. CH может быть пустым (содержать только элемент CHSETTINGS, для которого допустимо нулевое значение поля).
ROM поддерживает только 4-битный режим. После начальной загрузки может быть произведено переключение в 8-битный режим для увеличения общей производительности интерфейса eMMC.
[ID EEPROM]
BeagleBone оборудована микросхемой памяти 32Kbit (4KB) 24LC32AT-I/OT EEPROM, чтобы ПО могло идентифицировать плату. В таблице 7 показано содержимое этого EEPROM.
Таблица 7. Содержимое EEPROM.
Имя параметра
Размер (байт)
Содержимое
Header
4
0xAA, 0x55, 0x33, 0xEE
Board Name
8
Название платы в кодировке ASCII: A335BNLT
Version
4
Код версии аппаратуры в кодировке ASCII: 00A3 для Rev A3, 00A4 для Rev A4, 00A5 для Rev A5, 00A6 для Rev A6, 00B0 для Rev B и 00C0 для Rev C.
Serial Number
12
Серийный номер платы. Это 12-символьная строка, обозначающая дату производства, модель платы и уникальный номер в формате: WWYY4P16nnnn
Здесь WW = 2 цифры недели, YY = 2 цифры года, BBBK = BeagleBone Black, nnnn = инкрементируемый номер платы.
Configuration Option
32
Коды, показывающие настройку конфигурации этой платы. Здесь все байты равны 0xFF.
RSVD
6
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
RSVD
6
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
RSVD
6
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
Available
4018
Свободное доступное место для любых энергонезависимых данных.
Рис. 35. Схема подключения EEPROM Rev A5.
Процессор обращается к EEPROM через шину I2C0. Ножка WP по умолчанию разрешена, т. е. защита от записи активирована. Путем заземления этой точки защита от записи снимается.
Первые 48 ячеек не должны записываться, если Вы выберете использование EEPROM для хранения каких-нибудь своих данных. Необходимо сохранить эти данные, чтобы обеспечить корректную загрузку системы, потому что ПО использует эту информацию для идентификации и настройки платы.
[microSD]
Слот microSD платы BeagleBone Black предназначен для установки карт, которые могут использоваться для загрузки или в качестве хранилища для файлов.
Рис. 36. Схема подключения microSD.
MMC0 .. MMC3 это сигналы данных. MMC0_CLK тактовый сигнал, по которому данные вводятся в карту и выводятся из неё. MMCO_CMD показывает, что передается - команда или данные.
В спецификации microiSD нет отдельного вывода детектирования карты. Для этой функции используется MMCO_DAT3. Однако большинство слотов карт все еще предоставляют функцию CD (Card Detect). В дизайне BeagleBone Black этот сигнал подключен к выводу MMC0_SDCD процессора. Вы можете также поменять эту ножку на GPIO0_6, которая может вывести процессор из режима сна, когда карта microSD устанавливается в слот.
Верхние подтягивающие резисторы (pullup) используются для уменьшения времени перепадов уровня сигналов, чтобы скомпенсировать любые паразитные емкости печатной платы.
Питание карты предоставляется от шины VDD_3V3B, конденсатор 10 мкФ установлен для фильтрации и смягчения просадки напряжения при установке карты.
[Светодиоды пользователя]
На плате BeagleBone Black есть 4 голубых светодиода, которыми может управлять пользователь в своей программе (user LED). Они подключена к ножкам GPIO процессора.
Рис. 37. Светодиоды пользователя.
Номинал резисторов R71 .. R74 был изменен на 4.75K в ревизии A5B и более поздних ревизиях плат.
Таблица 8 показывает сигналы, используемые для управления четырьмя светодиодами LED от процессора.
Таблица 8. Сигналы/ножки для управления User LED.
LED
Порт GPIO
Шарик корпуса процессора
USR0
GPIO1_21
V15
USR1
GPIO1_22
U15
USR2
GPIO1_23
T15
USR3
GPIO1_24
V16
Светодиоды зажигаются выводом лог. 1 в ножку порта.
[Конфигурация загрузки]
Дизайн платы BBB поддерживает 2 группы опций загрузки. Пользователь может переключаться между этими режимами с помощью кнопки Boot. Первичный источник загрузки - установленная на плате микросхема eMMC. Удерживая кнопку S2 Boot, пользователь может заставить карту загрузиться из слота microSD. Это дает возможность перезаписать содержимое eMMC, когда это необходимо, или когда просто надо загрузить другой образ.
Примечание: мой опыт показал, что совсем необязательно удерживать кнопку Boot при подключении питания, чтобы загрузиться с карты microSD. Например, на моей платке в eMMC записан более старый образ Debian, и если в слот microSD установить карту с более свежей версией Debian, то при подаче питания загрузка произойдет именно с карты microSD, кнопку Boot удерживать необязательно.
В большинстве приложений, включая те, которые используют демо-дистрибутивы, доступные на beagleboard.org, внешний код загрузки процессора работает в 2 стадии. После первичного кода загрузки, который находится в ПЗУ процессора (ROM Code), управление передается на вторую стадию (secondary program loader - "SPL" или "MLO"). Стадия SPL инициализирует только те устройства, которые необходимы для продолжения загрузки, после чего управление передается на третью стадию, в загрузчик "U-boot". Базируясь на логических уровнях ножек управления загрузкой процессора (boot pins), ROM знает, откуда можно получить код SPL и код UBoot. В случае платы BeagleBone Black, это может быть либо eMMC, либо microSD, выбор делается на основе переключателя загрузки (boot switch).
На рис. 38 показана схема, которая участвует в выборе конфигурации загрузки. При включении питания boot pins считываются процессором, и их уровни определяют порядок загрузки. Кнопка S2 используется для изменения уровня одного бита boot pins от лог. 1 на лог. 0, что меняет порядок загрузки.
Рис. 38. Processor Boot Configuration.
Можно изменить эти настройки через разъемы расширения P8 и P9. Однако будьте внимательны, чтобы не создать чрезмерную нагрузку, которая может повлиять на работу интерфейса HDMI или панелей LCD. Если будет выбрано изменение этих настроек, настоятельно рекомендуется буферизировать эти сигналы вместе с сигналом SYS_RESETn. Это даст гарантию, что после выдачи сброса эти сигналы будут удалены с контактов расширения.
Опции загрузки по умолчанию. На основе выбранной опции, показанной на рис. 39, показана каждая из последовательностей загрузки.
Ножки управления загрузкой
Кнопка S2 Boot
не нажата
нажата
SYSBOOT[15:14]
00: 19.2 МГц 01: 24 МГц 10: 25 МГц 11: 26 МГц
SYSBOOT[13:12]
00 (все другие значения зарезервированы)
SYSBOOT[11:10]
На эти биты ROM Code не обращает внимания
SYSBOOT[9]
SYSBOOT[8]
SYSBOOT[7:6]
SYSBOOT[5]
SYSBOOT[4:0]
11100
11000
Последовательность загрузки
MMC1, MMMC0, UART0, USB0(1)
SPI0, MMC0, USB0(1), UART0
Рис. 39. Варианты загрузки процессора.
Примечание (1): подробности см. в даташите [4].
Столбец "не нажата" показывает конфигурацию загрузки по умолчанию. При загрузке процессор опрашивает сначала eMMC на порту MMC1, затем слот microSD на порту MMC0, затем USB0 и UART0. Если карта microSD и память eMMC пустые, то в качестве источника загрузки платы должны использоваться UART0 или USB0.
Если у Вас есть карта microSD, с которой нужно загрузиться, удерживайте кнопку S2 Boot и подайте питание. При загрузке процессор сначала будет опрашивать порт SPIO0, затем microSD на порту MMC0, затем USB0 и UART0. В случае, когда ни на карте microSD, ни в памяти eMMC нет загрузочного кода, будут использоваться в качестве источника загрузки USB0 или UART0.
[10/100 Ethernet]
BeagleBone Black оборудован 10/100 Ethernet, используется та же самая микросхема PHY LAN8710A (U14), что и на оригинальной плате BeagleBone. На рис. 40 показаны соединения между процессором и PHY. Интерфейс работает в режиме MII. На рис. 41 показана схема коннектора Ethernet, точно такая же схема использовалась на оригинальной плате BeagleBone.
Рис. 40. Интерфейс MII, через который чип Ethernet соединен с процессором.
Рис. 41. Схема физического подключения к Ethernet.
Рис. 42 показывает соединения питания, сброса и блокировки чипа LAN8710A PHY.
Рис. 42. Ethernet PHY: питание, сброс, такты.
VDD_3V3B. Шина VDD_3V3B служит основным источником питания для LAN8710A. Напряжение поступает от регулятора VD_3V3B, и оно служит источником питания всех периферийных устройств на плате. Также эта шина предоставляет питание для шин VDDIO, устанавливая уровни напряжения для всех сигналов ввода/вывода между процессором и LAN8710A.
VDD_PHYA. Это фильтрованная версия VDD_3V3B, подключенная к шинам VDD чипа LAN8710 и резисторам терминирования сигналов Ethernet. Фильтрующая индуктивность помогает блокировать импульсные помехи, которые могут присутствовать на шине VDD_3V3B.
PHY_VDDCR. Напряжение PHY_VDDCR выходит из LAN8710A, и используется только внутри LAN8710A. Для сглаживания пульсаций для PHY_VDDCR напряжения используются блокировочные конденсаторы.
SYS_RESET. Сброс для LAN8710A управляется основным сигналом сброса платы SYS_RESETn.
Тактирование. Для генератора тактов LAN8710A используется кварцевый резонатор Y3 на 25 МГц. Процессор использует такты RMII_RXCLK для обмена данными между процессором и LAN8710A.
Выводы режима LAN8710A. У чипа LAN8710A рабочий режим, который активируется после сброса, устанавливается уровнями на специальных выводах. Те же выводы используются для обмена между процессором и LAN8710A. Как результат, эти выводы могут управляться выходами процессора, что может привести к неправильной инициализации PHY. Чтобы этого не произошло, подключены 3 верхних подтягивающих резистора, что показано на схеме рис. 43.
Рис. 43. Выводы установки режима LAN8710A (Ethernet PHY Mode Pins).
Резисторы устанавливают уровни 111, что разрешает все режимы и автоматическое согласование (auto-negotiation) параметров физического канала Ethernet.
[HDMI]
BeagleBone Black имеет на борту видеочип U11 HDMI Framer, преобразующий сигналы LCD и звука в сигналы интерфейса HDMI для вывода их на монитор. В качестве видеочипа используется микросхема NXP TDA19988 HDMI Framer.
Поддерживается максимальное разрешение 1280x1024 @ 60Hz, в таблице 9 показаны поддерживаемые разрешения. Не все разрешения экрана могут работать на всех мониторах, однако они были успешно протестированы на как минимум одном мониторе. На BeagleBone Black поддерживается EDID, на основе чтения EDID из подключенного монитора выбирается самое высокое поддерживаемое разрешение экрана.
Таблица 9. Поддерживаемые разрешения монитора HDMI.
Режим
Поддержка звука
800 x 600 @60Hz
800 x 600 @56Hz
640 x 480 @75Hz
640 x 480 @60Hz
Да
720 x 400 @70Hz
1280 x 1024 @75Hz
1024 x 768 @75Hz
1024 x 768 @70Hz
1024 x 768 @60Hz
800 x 600 @75Hz
800 x 600 @72Hz
720 x 480 @60Hz
Да
1280 x 720 @60Hz
Да
1920x1080@24Hz
Да
Примечание: в обновленный образ ПО, используемый в ревизии A5B и более поздних ревизий плат, добавлена поддержка режима 1920x1080 @ 24HZ.
Вывод звука работает только в тех режимах, которые поддерживает CEA. Панели LCD активируются только в CEA-режимах звука. Эта функция заложена в спецификацию, и она не всегда может быть исправлена изменениями в аппаратуре или ПО.
Микросхема TDA19988 это приемопередатчик High-Definition Multimedia Interface (HDMI) 1.4a. Он обратно совместим с DVI 1.0, и может быть подключен к любому приемнику DVI 1.0 или HDMI. Режим HDCP не используется, потому что в дизайне BeagleBone Black используется не-HDCP версия микросхемы.
TDA19988 предоставляет дополнительные встроенные функции наподобие CEC (Consumer Electronic Control). CEC это двунаправленная шина, которая передает CEC в пределах домашней сети (home appliance network), организованной через эту шину. Наличие поддержки CEC устраняет необходимости применения дополнительной микросхемы. Хотя функция CEC поддерживается аппаратно, в настоящий момент в ПО она не реализована, и считается, что CEC не та функция, поддержка которой считается критически важной. CEC может переключить систему в режимы очень малого энергопотребления (very low power Standby или Sleep), чтобы экономить питание, когда HDMI не используется. В микросхему TDA19988 встроен интерфейс мастера шины I2C для коммуникаций по шине DDC и чтения EDID. Эта микросхема может управляться или конфигурироваться через интерфейс шины I2C.
Рис. 44 показывает соединения между процессором и интерфейсом U11 HDMI Framer. Данные экрана передаются через 16-битную шину 5-6-5. Причина, по которой была выбрана шина из 16 бит - совместимость экрана с cape-платами LCD оригинальной BeagleBone. Не используемые биты TDA19988 соединены на землю. Помимо сигналов данных присутствуют также сигналы VSYNC, HSYNC, DE и PCLK, составляющие видеоинтерфейс процессора.
Рис. 44. Соединение U11 HDMI Framer с процессором.
Для использования микросхемы TDA19988 процессору нужно её сконфигурировать. Это делается через интерфейс I2C между процессором и TDA19988. 2 ножки TDA19988 используются для установки адреса I2C, в дизайне BBB они подтянуты к лог. 0. Интерфейс I2C поддерживает оба режима скоростей 400kHz и 100KhZ. Таблица 10 показывает адрес I2C.
Таблица 10. Адрес TDA19988 I2C.
HDMI core address
A6
A5
A4
A3
A2
A1
A0
R/W
1
1
1
0
0
x
x
0/1
HDMI_INT это сигнал прерывания, поступающий от TDA19988 в процессор, он может использоваться для предупреждения процессора об изменении состояния интерфейса HDMI.
Интерфейс звука. Между процессором и TDA19988 используется аудио-интерфейс I2S. Стереозвук может передаваться в монитор через интерфейс HDMI. Для организации требуемых тактовых частот используется внешний генератор Y4 на 24.576 МГц. Из этой тактовой частоты процессор генерирует требуемые частоты для TDA19988. На рис. 45 показана схема генератора.
Рис. 45. Генератор 24.576 МГц.
Примечание: к сожалению, для тактов 24.576 МГц понадобилось использовать ножку процессора, которая раньше работала как GPIO3_21. Чтобы сохранить совместимость с функционалом GPIO3_21, разработчики реализовали способ запретить генератор, если GPIO3_21 нужно использовать на коннекторе расширения P9.
3 сигнала SPI1 используются для передачи данных от процессора в TDA19988. SCLK это такты последовательных бит, SPI1_CS0 данные TDA199888, SPI1_D0 сигнал синхронизации слова. Эти сигналы сконфигурированы как интерфейс I2S.
Качество звука ограничено поддерживаемыми форматами CEA. Панели LCD активируют только режимы звука CEA. Это заложено в спецификации, и не всегда может быть исправлено изменениями в аппаратуре и ПО.
Рис. 46 показывает организацию питания TDA19988. Все напряжения питания 1.8V. Для минимизации шума используется фильтр и блокирующие конденсаторы.
Рис. 46. Соединения питания HDMI.
Все сигналы между процессором и TDA19988 допускают уровни 3.3V (3.3V tolerant), что позволяет применять прямое соединение.
Рис. 47 показывает интерфейс между TDA19988 и коннектором HDMI.
Рис. 47. Схема внешнего интерфейса HDMI.
В качестве коннектора HDMI используется разъем microHDMI. Следует отметить, что этот коннектор имеет другую цоколевку в сравнении со стандартными коннекторами HDMI или mini HDMI. Сборки диодов D6 и D7 служат защитой от статического электричества (ESD protection).
[Хост USB]
Плата BBB оборудована одним интерфейсом хоста USB с коннектором USB Type A "мама".
Рис. 48. Схема USB Host.
Микросхема U8 это электронный ключ, который позволяет подать питание на коннектор или отключить его, что управляется процессором по сигналу USB1_DRVBUS. Здесь также есть детектирование перегрузки по току, которое может предупредить процессор сигналом USB1_OC, если потребляемый ток превышает допустимый.
U9 защищает сигналы USB от статического электричества (ESD).
Фильтры FB7 и FB8 добавлены для уменьшения излучаемых помех. Сигнал USB1_VBUS используется процессором для детектирования, присутствует ли 5V на коннекторе. FB7 установлен, и FB8 заменяется резистором 0.1 Ом.
[PRU-ICSS]
PRU-ICSS это аппаратный модуль, находящийся внутри процессора AM3358. Доступ к этим выводам осуществляется через коннекторы расширения, и сигналы PRU мультиплицируются с другими функциями платы. Не для всех доступных выводов предоставлен такой доступ.
PRU-ICSS включает 2 независимых программируемые блока/ядра реального времени (Programmable Real-time Unit, сокращенно PRU):
• 32-битная архитектура Load/Store RISC. • 8K байт instruction RAM (2K инструкций) на ядро. • 8K байт data RAM на ядро. • 12K байт общей RAM. • Рабочая частота 200 МГц. • PRU работает с данными little endian, как и процессор ARM. • Все области памяти PRU-ICSS поддерживают четность. • Имеется контроллер прерывания для обработки системных событий. • Быстрый интерфейс I/O.
На каждое ядро PRU имеется 16 входов и 16 выходов (не все они доступны на плате BeagleBone Black).
Рис. 49. Блок-схема PRU-ICSS.
Выводы PRU0 и PRU1 присутствуют на коннекторах расширения. Некоторые выводы PRU не могут использоваться без предварительного запрета функций платы наподобие, к примеру, LCD. Ниже перечислены порты, к которым можно получить доступ на каждом PRU.
• PRU0: 8 выходов или 9 входов. • PRU1: 13 выходов или 14 входов. • UART0_TXD, UART0_RXD, UART0_CTS, UART0_RTS.
Таблица 11 показывает, к каким сигналам PRU-ICSS можно получить доступ на BeagleBone Black, и на каких коннекторах. Некоторые сигналы доступны на одних и тех же выводах.
Таблица 11. Выводы PRU0 и PRU1. PIN - контакт разъема, Шарик - вывод корпуса процессора.
Интерфейс расширения платы представлен двумя коннекторами P8 и P9, каждый по 46 контактов. Все сигналы на этих разъемах имеют уровни 3.3V, если не указано нечто другое.
Внимание: не подключайте 5V сигналы логики к этим выводам, иначе плата может выйти из строя. Не подавайте никакие напряжения на ножки I/O, когда на плату не подано питание. Это повредит процессор и лишит плату гарантии. Никакой сигнал не может быть использован, пока сигнал SYS_RESET не получит уровень лог. 1.
Рис. 50. Коннекторы расширения P8 и P9, расположенные по краям платы.
Такие же разъемы, с такими же интервалами, находятся и на оригинальной плате BeagleBone.
P8. В таблице 12 показана цоколевка коннектора расширения P8. К этому коннектору могут быть подключены другие сигналы с помощью функции мультиплексирования процессора, однако к этой таблице показана установка по умолчанию при включении питания. ПО отвечает за установку функции по умолчанию для каждого вывода. Некоторые сигналы в таблице не перечислены. Обратитесь к документации на процессор за получение дополнительной информации по выводам и их функциями. В некоторых случаях может оказаться недостаточное количество сигналов, чтобы реализовать полный интерфейс.
Примечание: в таблицах 12 и 13 столбец PROC показывает номер шарика корпуса процессора. Столбец PIN показывает номер контакта на разъеме расширения. Столбцы MODE показывают настройку для каждого вывода. ПО отвечает за установку функции по умолчанию для каждого вывода. Некоторые сигналы в таблицах не перечислены. Обратитесь к документации на процессор за получение дополнительной информации по выводам и их функциями. В некоторых случаях может оказаться недостаточное количество сигналов, чтобы реализовать полный интерфейс.
Таблица 12. Разъем расширения P8. PIN - контакт разъема, Шарик - вывод корпуса процессора, MODEx - режим настройки вывода.
Режимы MODE0 .. MODE3:
PIN
Шарик
Имя
MODE0
MODE1
MODE2
MODE3
1, 2
GND
3
R9
GPIO1_6
gpmc_ad6
mmc1_dat6
4
T9
GPIO1_7
gpmc_ad7
mmc1_dat7
5
R8
GPIO1_2
gpmc_ad2
mmc1_dat2
6
T8
GPIO1_3
gpmc_ad3
mmc1_dat3
7
R7
TIMER4
gpmc_advn_ale
timer4
8
T7
TIMER7
gpmc_oen_ren
timer7
9
T6
TIMER5
gpmc_be0n_cle
timer5
10
U6
TIMER6
gpmc_wen
timer6
11
R12
GPIO1_13
gpmc_ad13
lcd_data18
mmc1_dat5
mmc2_dat1
12
T12
GPIO1_12
gpmc_ad12
lcd_data19
mmc1_dat4
mmc2_dat0
13
T10
EHRPWM2B
gpmc_ad9
lcd_data22
mmc1_dat1
mmc2_dat5
14
T11
GPIO0_26
gpmc_ad10
lcd_data21
mmc1_dat2
mmc2_dat6
15
U13
GPIO1_15
gpmc_ad15
lcd_data16
mmc1_dat7
mmc2_dat3
16
V13
GPIO1_14
gpmc_ad14
lcd_data17
mmc1_dat6
mmc2_dat2
17
U12
GPIO0_27
gpmc_ad11
lcd_data20
mmc1_dat3
mmc2_dat7
18
V12
GPIO2_1
gpmc_clk_mux0
lcd_memory_clk
gpmc_wait1
mmc2_clk
19
U10
EHRPWM2A
gpmc_ad8
lcd_data23
mmc1_dat0
mmc2_dat4
20
V9
GPIO1_31
gpmc_csn2
gpmc_be1n
mmc1_cmd
21
U9
GPIO1_30
gpmc_csn1
gpmc_clk
mmc1_clk
22
V8
GPIO1_5
gpmc_ad5
mmc1_dat5
23
U8
GPIO1_4
gpmc_ad4
mmc1_dat4
24
V7
GPIO1_1
gpmc_ad1
mmc1_dat1
25
U7
GPIO1_0
gpmc_ad0
mmc1_dat0
26
V6
GPIO1_29
gpmc_csn0
27
U5
GPIO2_22
lcd_vsync
gpmc_a8
28
V5
GPIO2_24
lcd_pclk
gpmc_a10
29
R5
GPIO2_23
lcd_hsync
gpmc_a9
30
R6
GPIO2_25
lcd_ac_bias_en
gpmc_a11
31
V4
UART5_CTSN
lcd_data14
gpmc_a18
eQEP1_index
mcasp0_axr1
32
T5
UART5_RTSN
lcd_data15
gpmc_a19
eQEP1_strobe
mcasp0_ahclkx
33
V3
UART4_RTSN
lcd_data13
gpmc_a17
eQEP1B_in
mcasp0_fsr
34
U4
UART3_RTSN
lcd_data11
gpmc_a15
ehrpwm1B
mcasp0_ahclkr
35
V2
UART4_CTSN
lcd_data12
gpmc_a16
eQEP1A_in
mcasp0_aclkr
36
U3
UART3_CTSN
lcd_data10
gpmc_a14
ehrpwm1A
mcasp0_axr0
37
U1
UART5_TXD
lcd_data8
gpmc_a12
ehrpwm1_tripzone_in
mcasp0_aclkx
38
U2
UART5_RXD
lcd_data9
gpmc_a13
ehrpwm0_synco
mcasp0_fsx
39
T3
GPIO2_12
lcd_data6
gpmc_a6
eQEP2_index
40
T4
GPIO2_13
lcd_data7
gpmc_a7
eQEP2_strobe
41
T1
GPIO2_10
lcd_data4
gpmc_a4
eQEP2A_in
42
T2
GPIO2_11
lcd_data5
gpmc_a5
eQEP2B_in
43
R3
GPIO2_8
lcd_data2
gpmc_a2
ehrpwm2_tripzone_in
44
R4
GPIO2_9
lcd_data3
gpmc_a3
ehrpwm0_synco
45
R1
GPIO2_6
lcd_data0
gpmc_a0
ehrpwm2A
46
R2
GPIO2_7
lcd_data1
gpmc_a1
ehrpwm2B
Режимы MODE4 .. MODE7:
PIN
Шарик
Имя
MODE4
MODE5
MODE6
MODE7
1, 2
GND
3
R9
GPIO1_6
gpio1[6]
4
T9
GPIO1_7
gpio1[7]
5
R8
GPIO1_2
gpio1[2]
6
T8
GPIO1_3
gpio1[3]
7
R7
TIMER4
gpio2[2]
8
T7
TIMER7
gpio2[3]
9
T6
TIMER5
gpio2[5]
10
U6
TIMER6
gpio2[4]
11
R12
GPIO1_13
eQEP2B_in
pr1_pru0_pru_r30_15
gpio1[13]
12
T12
GPIO1_12
eQEP2a_in
pr1_pru0_pru_r30_14
gpio1[12]
13
T10
EHRPWM2B
ehrpwm2B
gpio0[23]
14
T11
GPIO0_26
ehrpwm2_tripzone_in
gpio0[26]
15
U13
GPIO1_15
eQEP2_strobe
pr1_pru0_pru_r31_15
gpio1[15]
16
V13
GPIO1_14
eQEP2_index
pr1_pru0_pru_r31_14
gpio1[14]
17
U12
GPIO0_27
ehrpwm0_synco
gpio0[27]
18
V12
GPIO2_1
mcasp0_fsr
gpio2[1]
19
U10
EHRPWM2A
ehrpwm2A
gpio0[22]
20
V9
GPIO1_31
pr1_pru1_pru_r30_13
pr1_pru1_pru_r31_13
gpio1[31]
21
U9
GPIO1_30
pr1_pru1_pru_r30_12
pr1_pru1_pru_r31_12
gpio1[30]
22
V8
GPIO1_5
gpio1[5]
23
U8
GPIO1_4
gpio1[4]
24
V7
GPIO1_1
gpio1[1]
25
U7
GPIO1_0
gpio1[0]
26
V6
GPIO1_29
gpio1[29]
27
U5
GPIO2_22
pr1_pru1_pru_r30_8
pr1_pru1_pru_r31_8
gpio2[22]
28
V5
GPIO2_24
pr1_pru1_pru_r30_10
pr1_pru1_pru_r31_10
gpio2[24]
29
R5
GPIO2_23
pr1_pru1_pru_r30_9
pr1_pru1_pru_r31_9
gpio2[23]
30
R6
GPIO2_25
gpio2[25]
31
V4
UART5_CTSN
uart5_rxd
uart5_ctsn
gpio0[10]
32
T5
UART5_RTSN
mcasp0_axr3
uart5_rtsn
gpio0[11]
33
V3
UART4_RTSN
mcasp0_axr3
uart4_rtsn
gpio0[9]
34
U4
UART3_RTSN
mcasp0_axr2
uart3_rtsn
gpio2[17]
35
V2
UART4_CTSN
mcasp0_axr2
uart4_ctsn
gpio0[8]
36
U3
UART3_CTSN
uart3_ctsn
gpio2[16]
37
U1
UART5_TXD
uart5_txd
uart2_ctsn
gpio2[14]
38
U2
UART5_RXD
uart5_rxd
uart2_rtsn
gpio2[15]
39
T3
GPIO2_12
pr1_pru1_pru_r30_6
pr1_pru1_pru_r31_6
gpio2[12]
40
T4
GPIO2_13
pr1_edio_data_out7
pr1_pru1_pru_r30_7
pr1_pru1_pru_r31_7
gpio2[13]
41
T1
GPIO2_10
pr1_pru1_pru_r30_4
pr1_pru1_pru_r31_4
gpio2[10]
42
T2
GPIO2_11
pr1_pru1_pru_r30_5
pr1_pru1_pru_r31_5
gpio2[11]
43
R3
GPIO2_8
pr1_pru1_pru_r30_2
pr1_pru1_pru_r31_2
gpio2[8]
44
R4
GPIO2_9
pr1_pru1_pru_r30_3
pr1_pru1_pru_r31_3
gpio2[9]
45
R1
GPIO2_6
pr1_pru1_pru_r30_0
pr1_pru1_pru_r31_0
gpio2[6]
46
R2
GPIO2_7
pr1_pru1_pru_r30_1
pr1_pru1_pru_r31_1
gpio2[7]
P9. В таблице 13 показана цоколевка коннектора расширения P9. К этому коннектору могут быть подключены другие сигналы с помощью функции мультиплексирования процессора, однако к этой таблице показана установка по умолчанию при включении питания.
Таблица 13. Разъем расширения P9. PIN - контакт разъема, Шарик - вывод корпуса процессора, MODEx - режим настройки вывода.
Режимы MODE0 .. MODE3:
PIN
Шарик
Имя
MODE0
MODE1
MODE2
MODE3
1, 2
GND
3, 4
DC_3.3V
5, 6
VDD_5V
7, 8
SYS_5V
9
PWR_BUT
10
A10
SYS_RESETn
11
T17
UART4_RXD
gpmc_wait0
mii2_crs
gpmc_csn4
rmii2_crs_dv
12
U18
GPIO1_28
gpmc_be1n
mii2_col
gpmc_csn6
mmc2_dat3
13
U17
UART4_TXD
gpmc_wpn
mii2_rxerr
gpmc_csn5
rmii2_rxerr
14
U14
EHRPWM1A
gpmc_a2
mii2_txd3
rgmii2_td3
mmc2_dat1
15
R13
GPIO1_16
gpmc_a0
gmii2_txen
rmii2_tctl
mii2_txen
16
T14
EHRPWM1B
gpmc_a3
mii2_txd2
rgmii2_td2
mmc2_dat2
17
A16
I2C1_SCL
spi0_cs0
mmc2_sdwp
I2C1_SCL
ehrpwm0_synci
18
B16
I2C1_SDA
spi0_d1
mmc1_sdwp
I2C1_SDA
ehrpwm0_tripzone
19
D17
I2C2_SCL
uart1_rtsn
timer5
dcan0_rx
I2C2_SCL
20
D18
I2C2_SDA
uart1_ctsn
timer6
dcan0_tx
I2C2_SDA
21
B17
UART2_TXD
spi0_d0
uart2_txd
I2C2_SCL
ehrpwm0B
22
A17
UART2_RXD
spi0_sclk
uart2_rxd
I2C2_SDA
ehrpwm0A
23
V14
GPIO1_17
gpmc_a1
gmii2_rxdv
rgmii2_rxdv
mmc2_dat0
24
D15
UART1_TXD
uart1_txd
mmc2_sdwp
dcan1_rx
I2C1_SCL
25
A14
GPIO3_21
mcasp0_ahclkx
eQEP0_strobe
mcasp0_axr3
mcasp1_axr1
26
D16
UART1_RXD
uart1_rxd
mmc1_sdwp
dcan1_tx
I2C1_SDA
27
C13
GPIO3_19
mcasp0_fsr
eQEP0B_in
mcasp0_axr3
mcasp1_fsx
28
C12
SPI1_CS0
mcasp0_ahclkr
ehrpwm0_synci
mcasp0_axr2
spi1_cs0
29
B13
SPI1_D0
mcasp0_fsx
ehrpwm0B
spi1_d0
30
D12
SPI1_D1
mcasp0_axr0
ehrpwm0_tripzone
spi1_d1
31
A13
SPI1_SCLK
mcasp0_aclkx
ehrpwm0A
spi1_sclk
32
VADC
33
C8
AIN4
34
AGND
35
A8
AIN6
36
B8
AIN5
37
B7
AIN2
38
A7
AIN3
39
B6
AIN0
40
C7
AIN1
41#
D14
CLKOUT2
xdma_event_intr1
tclkin
clkout2
D13
GPIO3_20
mcasp0_axr1
eQEP0_index
mcasp1_axr0
42@
C18
GPIO0_7
eCAP0_in_PWM0_out
uart3_txd
spi1_cs1
pr1_ecap0_ecap_capin_apwm_o
B12
GPIO3_18
mcasp0_aclkr
eQEP0A_in
mcasp0_axr2
mcasp1_aclkx
43..46
GND
Режимы MODE4 .. MODE7:
PIN
Шарик
Имя
MODE4
MODE5
MODE6
MODE7
1, 2
GND
3, 4
DC_3.3V
5, 6
VDD_5V
7, 8
SYS_5V
9
PWR_BUT
10
A10
SYS_RESETn
11
T17
UART4_RXD
mmc1_sdcd
uart4_rxd_mux2
gpio0[30]
12
U18
GPIO1_28
gpmc_dir
mcasp0_aclkr_mux3
gpio1[28]
13
U17
UART4_TXD
mmc2_sdcd
uart4_txd_mux2
gpio0[31]
14
U14
EHRPWM1A
gpmc_a18
ehrpwm1A_mux1
gpio1[18]
15
R13
GPIO1_16
gpmc_a16
ehrpwm1_tripzone_input
gpio1[16]
16
T14
EHRPWM1B
gpmc_a19
ehrpwm1B_mux1
gpio1[19]
17
A16
I2C1_SCL
pr1_uart0_txd
gpio0[5]
18
B16
I2C1_SDA
pr1_uart0_rxd
gpio0[4]
19
D17
I2C2_SCL
spi1_cs1
pr1_uart0_rts_n
gpio0[13]
20
D18
I2C2_SDA
spi1_cs0
pr1_uart0_cts_n
gpio0[12]
21
B17
UART2_TXD
pr1_uart0_rts_n
EMU3_mux1
gpio0[3]
22
A17
UART2_RXD
pr1_uart0_cts_n
EMU2_mux1
gpio0[2]
23
V14
GPIO1_17
gpmc_a17
ehrpwm0_synco
gpio1[17]
24
D15
UART1_TXD
pr1_uart0_txd
pr1_pru0_pru_r31_16
gpio0[15]
25
A14
GPIO3_21
EMU4_mux2
pr1_pru0_pru_r30_7
pr1_pru0_pru_r31_7
gpio3[21]
26
D16
UART1_RXD
pr1_uart0_rxd
pr1_pru1_pru_r31_16
gpio0[14]
27
C13
GPIO3_19
EMU2_mux2
pr1_pru0_pru_r30_5
pr1_pru0_pru_r31_5
gpio3[19]
28
C12
SPI1_CS0
eCAP2_in_PWM2_out
pr1_pru0_pru_r30_3
pr1_pru0_pru_r31_3
gpio3[17]
29
B13
SPI1_D0
mmc1_sdcd_mux1
pr1_pru0_pru_r30_1
pr1_pru0_pru_r31_1
gpio3[15]
30
D12
SPI1_D1
mmc2_sdcd_mux1
pr1_pru0_pru_r30_2
pr1_pru0_pru_r31_2
gpio3[16]
31
A13
SPI1_SCLK
mmc0_sdcd_mux1
pr1_pru0_pru_r30_0
pr1_pru0_pru_r31_0
gpio3[14]
32
VADC
33
C8
AIN4
34
AGND
35
A8
AIN6
36
B8
AIN5
37
B7
AIN2
38
A7
AIN3
39
B6
AIN0
40
C7
AIN1
41#
D14
CLKOUT2
timer7_mux1
pr1_pru0_pru_r31_16
EMU3_mux0
gpio0[20]
D13
GPIO3_20
emu3
pr1_pru0_pru_r30_6
pr1_pru0_pru_r31_6
gpio3[20]
42@
C18
GPIO0_7
spi1_sclk
mmc0_sdwp
xdma_event_intr2
gpio0[7]
B12
GPIO3_18
pr1_pru0_pru_r30_4
pr1_pru0_pru_r31_4
gpio3[18]
43..46
GND
PWR_BUT работает с уровнем 5V, который подтянут к лог. 1 внутри микросхемы TPS65217C. Сброс активируется подтягиванием уровня PWR_BUT к земле GND.
# Оба эти сигналы подключены к контакту 41 коннектора P9. Установлены резисторы, которые позволяют удалять соединение для GPIO3_20 с помощью удаления резистора R221.
@ Оба эти сигналы подключены к контакту 42 коннектора P9. Установлены резисторы, которые позволяют удалять соединение для GPIO3_18 помощью удаления резистора R202.
Цель трюков # и @ - позволить для ПО использовать любой из этих сигналов, один или другой, на контакте 41 (или 42). Программа должна установить не используемый вывод в режим входа, когда используется другой вывод. Такой трюк позволяет получить дополнительный сигнал на коннекторе расширения.
Джек питания. Разъем джека DC P1 находится рядом с коннектором RJ45 Ethernet, как показано на рис. 51. Используется такой же коннектор, который использовался на оригинальной BeagleBone. Коннектор рассчитан на джек внутреннего диаметра 2.1 мм (в центре + стабилизированного напряжения 5V DC) и диаметром 5.5 снаружи (GND).
Рис. 51. Джек питания 5V DC.
Плате требуется стабилизированное напряжение 5VDC +/-.25V с током 1A. Если через разъемы расширения подключена дополнительная нагрузка, то может потребоваться адаптер с большим выходным током.
Клиент USB. Коннектор клиента USB расположен на обратной стороне платы, под светодиодами пользователя, как показано на рис. 52. Он предназначен только для подключения к хосту PC. Используется кабель miniUSB с 5 контактами, как и на оригинальной плате BeagleBone. Этот кабель может также подавать питание на плату.
Рис. 52. Разъем клиента USB.
Хост USB. На плате BBB есть один коннектор хоста USB P3, показанный на рис. 53 ниже.
Рис. 53. Разъем хоста USB.
Этот порт совместим со спецификацией USB 2.0 HS и может выдать ток до 500 мА. Если нужно больше портов хоста, то используйте хаб. Если нужен ток для устройств больше 500 мА, то у хаба должен быть источник питания.
Serial Debug. На каждой плате есть интерфейс вывода отладочных сообщений через TTL UART с уровнями логики 3.3V, см. рис. 54.
Рис. 56. Разъем Serial Debug.
На этом коннекторе задействовано только 3 контакта - GND (контакт 1), RX (контакт 4), TX (контакт 5). Другие контакты не используются. Чтобы использовать доступ к консоли Serial Debug, необходим переходничок USB - TTL UART на основе чипа FTDI или любой другой кабель на дешевом чипе, например CH340. Такие кабели в большом ассортименте продаются на AliExpress.
HDMI. Коннектор microHDMI находится на обратной стороне платы, рядом со слотом карты microSD,
Рис. 57. Коннектор microHDMI.
microSD. Слот карты microSD также находится на обратной стороне платы.
Рис. 59. Коннектор microSD.
На устанавливаемой карте запись должна быть разрешена. Карта устанавливается и извлекается мягким нажатием на внешнюю кромку карты. Не пытайтесь извлечь её другим способом, это может повредить коннектор.
Ethernet. На плате BBB есть интерфейс 10/100 Ethernet, см. рис. 60.
Рис. 60. Коннектор RJ45 Ethernet.
Микросхема PHY U14 LAN8710A поддерживает AutoMDX, поэтому можно использовать как прямой, так и скрестный кабель Ethernet.
JTAG. На плате BBB предусмотрено место для установки опционального 20-выводного коннектора CTI JTAG. JTAG используется для отладки и разработки ПО с помощью различных эмуляторов. Коннектор JTAG имеет шаг выводов 1.27 мм, его необходимо припаять самостоятельно, другие компоненты не нужны (коннектор можно купить на DigiKey, part number FTR-110-03-G-D-06).
На плату BeagleBone Black можно установить бутербродом до 4 cape-плат расширения путем подключения к коннекторам расширения P8 и P9. Термин cape произошел из-за формы выреза в плате, который повторяет форму коннектора Ethernet основной платы. Этот вырез работает как ключ, благодаря чему плату расширения нельзя установить наоборот.
В этом разделе описаны правила для создания cape-плат, чтобы они нормально взаимодействовали с другими cape-платами и системой, и при этом не мешали друг другу. Совместное использование плат - не обязательное требование, и само по себе является тем, чем невозможно полностью управлять. Однако есть возможность создание cape-плат, которые работают совместно с другими платами, которые уже были ранее разработаны, на основе опубликованной информации и используемых выводах и функциях каждой платы. Эту информацию можно прочитать из микросхемы EEPROM, находящейся на каждой cape-плате.
Благодаря этому руководству Вы можете сами разрабатывать cape-платы. Описанные здесь правила не накладывают ограничения на создание cape-плат и на то, что они должны делать, однако следует выполнять базовый набор правил, обеспечивающих для ПО возможность управлять платами и использовать их совместно. С течением времени возможно эта спецификация может поменяться или обновиться, поэтому пожалуйста используйте последнюю версию этого руководства [1].
Разъемы расширения BeagleBone Black имеют такую же цоколевку, что и у оригинальной BeagleBone. В то время как контакты те же самые, некоторые из них могут использоваться по-другому, с учетом возможностей BeagleBone Black.
Разъем Power Expansion на плате BeagleBone Black был удален.
[Выводы LCD]
Эти сигналы используются на BeagleBone Black для управления микросхемой HDMI Framer U11 TDA19988, они перечислены в таблице 15 ниже.
Таблица 15. Сигналы LCD P8, конфликтующие с HDMI Framer. PIN - номер контакта P8, Шарик - обозначение вывода корпуса процессора.
PIN
Шарик
Имя
MODE0
27
U5
GPIO2_22
lcd_vsync
28
V5
GPIO2_24
lcd_pclk
29
R5
GPIO2_23
lcd_hsync
30
R6
GPIO2_25
lcd_ac_bias_en
31
V4
UART5_CTSN
lcd_data14
32
T5
UART5_RTSN
lcd_data15
33
V3
UART4_RTSN
lcd_data13
34
U4
UART3_RTSN
lcd_data11
35
V2
UART4_CTSN
lcd_data12
36
U3
UART3_CTSN
lcd_data10
37
U1
UART5_TXD
lcd_data8
38
U2
UART5_RXD
lcd_data9
39
T3
GPIO2_12
lcd_data6
40
T4
GPIO2_13
lcd_data7
41
T1
GPIO2_10
lcd_data4
42
T2
GPIO2_11
lcd_data5
43
R3
GPIO2_8
lcd_data2
44
R4
GPIO2_9
lcd_data3
45
R1
GPIO2_6
lcd_data0
46
R2
GPIO2_7
lcd_data1
Если нужно использовать эти выводы для других функций, то учитывайте следующее:
• На микросхеме HDMI Framer U11 TDA19988 все эти сигналы являются входами, так что микросхема U11 не управляет ими.
• Микросхема HDMI добавит некоторую нагрузку на эти выводы. • На этих сигналах имеются конденсаторы небольшой емкости, которые могут повлиять на работу сигналов, если они используются для других функций. • При использовании этих сигналов для других функций HDMI Framer использоваться не может. • Нет способа снять питание с микросхемы HDMI Framer, потому что в таком случае через её входы будет подаваться паразитное питание. Единственный способ полностью устранить потребление тока HDMI Framer U11 TDA19988 это выпаять её, что возможно не самая лучшая идея.
• Эти выводы также работают для функции SYSBOOT. Не управляйте ими до того, как сигнал SYS_RESETN перейдет на уровень лог. 1. Иначе плата может не загрузиться, потому что поменяется порядок загрузки процессора.
Чтобы использовать эти выводы, ПО должно переконфигурировать их в ту функцию, которая нужна. Чтобы сохранить низкое потребление, HDMI Framer U11 должен быть переведен в режим low power через интерфейс I2C0.
[Выводы eMMC]
BeagleBone Black использует для этой функции 10 ножек процессора, которые выведены на коннектор расширения P8. Эти сигналы перечислены в таблице 16. Соответствующий режим - MODE2.
Таблица 16. Сигналы P8, конфликтующие с eMMC.
PIN
Шарик
Сигнал
MODE
3
R9
MMC1_DAT6
1
4
T9
MMC1_DAT7
1
5
R8
MMC1_DAT2
1
6
T8
MMC1_DAT3
1
20
V9
MMC1_CMD
2
21
U9
MMC1_CLK
2
22
V8
MMC1_DAT5
1
23
U8
MMC1_DAT4
1
24
V7
MMC1_DAT1
1
25
U7
MMC1_DAT0
1
Если нужно использовать эти выводы для других функций, то учитывайте следующее:
• На микросхеме eMMC эти сигналы работают как входы и выходы. • Микросхема eMMC добавляет на эти выводы некоторую нагрузку. • Когда используются эти выводы для других функций, eMMC использовать нельзя. Это значит, что необходимо использовать для загрузки слот microSD. • Когда используются эти выводы для других функций, eMMC необходимо перевести в состояние сброса. Для этого необходимо, чтобы eMMC была доступна для процессора, чтобы можно было настроить режим eMMC. • Не следует управлять выводами eMMC, пока она не переведена в reset. Это значит, что если был сделан выбор использовать эти выводы, то на них нельзя выводить никакой сигнал, пока это не будет разрешено программно. Это требует применения управляемого буфера или какого-то другого способа разрешения доступа, реализованного с помощью сигнала управления ножкой GPIO на разъеме расширения.
После подачи питания eMMC не находится в состоянии reset. Если удерживать кнопку Boot, это принудительно запустит загрузку с карты microSD. Это неудобный способ загрузки, особенно когда к BBB подключена cape-плата. Есть 2 решения этой проблемы:
1. Сотрите данные eMMC, оставив её чистой. Это заставит Code ROM использовать по умолчанию загрузку c microSD. Если Вы захотите использовать eMMC позже, она может быть перепрограммирована. 2. Также можно во время загрузки удерживать сигнал LCD_DATA2 в лог. 0 через cape-плату. Это будет то же самое, что и удержание кнопки Boot. Однако, чтобы предотвратить непредвиденные проблемы, необходимо разрешать пропускать этот сигнал лог. 0 на LCD_DATA2 через управление от сигнала RESET, когда считываются выводы загрузки. После того, как сигнал RESET перейдет в лог. 1, лог. 0 на LCD_DATA2 должен быть снят.
До того, как ПО переинициализирует выводы в другой режим, необходимо перевести eMMC в состояние reset. Это делается удержанием сигнала eMMC_RSTn (GPIO1_20) в логю. 0 после перевода eMMC в режим разрешения линии сброса. Этот сигнал не выведен на разъем расширения, и доступен только на плате BBB.
Не допускайте автоматически управления любыми конфликтующими выводами, пока ПО не разрешит это. ПО должно сначала убедиться, что eMMC в состоянии reset перед использованием сигналов cape-платы. Для этого можно использовать разрешающий сигнал одной из ножек GPIO. Разработчики BBB не определили для этой цели какой-то специальный вывод, этот выбор должен сделать разработчик ПО и cape-платы.
[EEPROM]
На каждой cape-плате должна быть собственная микросхема EEPROM, где содержится информация, по которой ПО может идентифицировать плату и сконфигурировать соответствующим образом ножки коннекторов расширения. Исключение из этого правила - платка proto, предназначенная для макетирования, на ней не обязательно должна быть EEPROM. Микросхема EEPROM требуется для всех cape-плат, чтобы они корректно работали совместно при подключении к BeagleBone Black.
Адрес EEPROM устанавливается либо перемычками, либо DIP-переключателями платы расширения. На рис. 61 показана схема подключения EEPROM.
Рис. 61. EEPROM платы расширения без защиты от записи.
EEPROM на BeagleBone Black используется такое же, как и на BeagleBone, это микросхема CAT24C256. CAT24C256 это 256 kb Serial CMOS EEPROM, организованный внутри как 32768 слов, каждое из 8 бит. В CAT24C256 реализован 64-байтный буфер страницы, и поддерживает режимы скорости Standard (100 кГц), Fast (400 кГц) и Fast-Plus (1 МГц) протокола I2C.
Адресация в микросхеме CAT24C256 требует 2 байт адреса, что не используется в микросхемах I2C EEPROM меньшего размера, которые требуют для адреса только 1 байт. Могут также использоваться и другие совместимые микросхемы памяти I2C. Убедитесь, что выбранная микросхема поддерживает 16-битную адресацию.
Адрес EEPROM. Чтобы каждая cape-плата расширения имела уникальный адрес, используется схема ID, основанная на перемычках (или DIP-переключателей) адреса I2C микросхем EEPROM, установленных на cape-платах расширения.
Пользователь отвечает за правильную установку адреса на каждой плате и её позицию в стеке, что не имеет отношения к тому, какая плата получает первый выбор в контексте использования сигналов на разъемах расширения. Процесс определения и разрешения конфликтов оставлен на ПО, и в настоящий момент времени это сложная методика, особенно по той причине, что в ядре 3.8 представлена новая методология Device Tree.
Адресная линия A2 всегда подтянута к лог. 1. Это устанавливает допустимый диапазон адресов для карт расширения от 0x54 до 0x57. Все другие I2C-адреса могут использоваться в разработке своих cape-плат. Однако эти адреса не должны использоваться для других целей, отличающихся от хранения информации плат в EEPROM. Этот принцип также позволяет подключать микросхемы EEPROM на cape-плате по мере необходимости без влияния на содержимое этой EEPROM. Это требует, чтобы A2 был заземлен на той микросхеме EEPROM, которая не используется для идентификации cape-платы.
Шина I2C. Микросхемы EEPROM на каждой плате расширения подключены к I2C2 через выводы 19 и 20 коннектора P9. По этой причине I2C2 всегда должен быть подключен, его установки мультиплексора не должно перенастраивать ПО с целью удаления I2C2 с коннектора расширения. Иначе система не сможет определить подключение cape-плат.
Сигналы I2C требуют верхних подтягивающих резисторов (pullup). На этих сигналах на каждой плате должны быть соответствующие резисторы 5.6K. Если установлены 4 cape-платы, то в результате получится нагрузочный резистор 1.4K. По мере добавления cape-плат сопротивление подтягивающих резисторов уменьшается, и емкость шины увеличивается. Если ни одна из cape-плат не установлена, на I2C2 должны быть активированы внутренние pullup- резисторы, чтобы исключить таймауты шины I2C.
Шина I2C2 может также быть использована для других функций, таких как расширение ввода/вывода, или для подключения других I2C-совместимых устройств, которые не конфликтуют по адресам с cape EEPROM.
EEPROM Write Protect. На схеме рис. 62 показана схема с возможностью деактивации защиты от записи (write protect). Если защита от записи не разрешена, то не исключена возможность повреждения содержимого EEPROM, если шина I2C2 используется неправильно и была произведена ошибочная запись. Рекомендуется реализовать функцию защиты от записи и добавить для этого контрольную точку (на схеме это TP2), которая при заземлении позволит выполнять запись в EEPROM. Чтобы разрешить операцию записи, вывод 7 микросхемы EEPROM должен быть подтянут к лог. 0 (GND). Когда нет подтяжки к земле, на выводе 7 получается лог. 1 через pullup-резистор R210, и защита от записи активируется.
Рис. 62. EEPROM платы расширения и управление функцией Write Protect.
[Память для переменных и MAC]
Таблица 17 показывает формат содержимого EEPROM платы расширения. Данные сохраняются в формате Big Endian, где самый значащий байт находится справа. Все адреса EEPROM считываются как один байт данных, но в адресации используется 2 байта. Значения ASCII предназначены для упрощения чтения пользователем, когда содержимое EEPROM представлено в виде дампа.
Таблица 17. Expansion Board EEPROM.
Имя
Смещение
Размер (байт)
Содержимое
Header
0
4
0xAA, 0x55, 0x33, 0xEE
EEPROM Revision
4
2
Номер ревизии общего формата этого EEPROM, представленный в виде двух символов ASCII: A1
Board Name
6
32
Имя платы в виде текста ASCII, которое пользователь может прочитать в дампе EEPROM. Разработчик может дать произвольное имя своей плате.
Version
38
4
Код версии аппаратуры в ASCII. Формат версии определяет разработчик, например 02.1, 00A1, 10A0.
Manufacturer
42
16
Имя производителя в ASCII.
Part Number
58
16
Обозначение номера (кода) изделия в ASCII. Формат определяет разработчик.
Number of Pins
74
2
Количество контактов, используемых дочерней платой, включая используемые контакты питания. Десятичное значение общего количества контактов на разъемах расширения 92. Значение хранится HEX-формате.
Serial Number
76
12
Серийный номер платы. Это строка из 12 символов в формате WWYY&&&&nnnn, где:
WW = 2 цифры недели производства YY = 2 цифры года производства &&&& = код сборки, позволяющий производителю документировать номер сборки своей продукции. Это дает быстрый способ прочитать серийный номер платы. Как этот код используется, определяет производитель. nnnn = инкрементируемое число в пределах недели производства.
Pin Usage
88
148
Выделяется по 2 байта на каждый из 74 конфигурируемых вывода коннекторов расширения, порядок бит от MSB к LSB: 15, 14, .., 1, 0.
15: используется вывод или нет. 0 не используется cape-платой, 1 используется. 14-13: направление работы вывода. 10 вывод, 01 ввод, 11 двунаправленная работа. 12-7: зарезервировано, здесь должны быть нули. 6: скорость переключения (Slew Rate). 0 Fast, 1 Slow. 5: разрешение приема (Rx Enable). 0 запрещено, 1 разрешено. 4: выбор типа подтяжки вывода (Pull Up/Dn Select). 0 Pulldown, 1 PullUp. 3: разрешение подтяжки (Pull Up/DN). 0 разрешено, 1 запрещено. 2-0: выбор мультиплексирования режима работы вывода (Mux Mode Selection, Mode 0-7).
VDD_3V3B Current
236
2
Максимальный ток потребления в миллиамперах. Здесь указано HEX-значение тока в десятичном формате, например: 1500mA=0x05 0xDC, 325mA=0x01 0x45.
VDD_5V Current
238
2
SYS_5V Current
240
2
DC Supplied
242
2
Показывает, предоставляет ли плата расширения напряжение питания на шине VDD_5V. 000 не предоставляет, 1 .. 0xFFFF предоставляемый ток, сохраненный в HEX-формате десятичного значения тока в миллиамперах.
Available
244
32543
Доступное свободное пространство для любых энергонезависимых кодов/данных. Оно при необходимости может использоваться производителем или программным драйвером. Также здесь можно хранить настройки для программного обеспечения.
Использование выводов. Таблица 18 показывает ячейки EEPROM, настраивающие использование ножек I/O на cape-плате расширения. Таблица содержит значение для записи в регистры управления ножками процессора (Pad Control Registers). Подробную информацию можно найти в секции 9.2.2 руководства AM3358 Technical Reference Manual [4]. Таблица оставлена пустой для удобства, и может быть распечатана как шаблон для создания пользовательских настроек каждой cape-платы. 16-битные числа и все 16-битные поля сохраняются в формате Big Endian.
15 PIN USAGE этот бит показывает использование вывода. В нем должна быть лог. 1, если вывод используется, и лог. 0, если не используется. 14-7 RESERVED эти биты не используются, и в них должен быть лог. 0. 6 SLEW CONTROL определяет скорость переключения ножки порта: 0 быстрое переключение (Fast), 1 медленное переключение (Slow). 5 RX Enabled показывает разрешение приема: 0 запрещено, 1 разрешено. 4 PU/PD тип подтяжки: 0 Pulldown, 1 Pullup. 3 PULLUP/DN разрешение подтяжки: 0 подтяжка pullup/pulldown разрешена, 1 запрещена. 2-0 MUX MODE SELECT выбор режима 0-7 работы вывода с помощью мультиплексора (см. руководство TRM [4]).
Выводы AIN0 .. AIN6 не имеют настроек мультиплексора, но необходимо их настроить, чтобы показать использование на cape-плате. Для сигналов AINx используется только бит 15.
Таблица 18. Настройки использования выводов в памяти EEPROM.
+
+
+
15
14
13
12
11
10
9
8
7
6
5
Offset
Conn
Name
Pin Usage
Type
+
Reserv.
+
+
SLEW
RX
PU/PD
PU/DEN
Mux Mode
88
P9-22
UART2_RXD
+
+
+
+
+
+
+
+
+
+
+
90
P9-21
UART2_TXD
+
+
+
+
+
+
+
+
+
+
+
92
P9-18
I2C1_SDA
+
+
+
+
+
+
+
+
+
+
+
94
P9-17
I2C1_SCL
+
+
+
+
+
+
+
+
+
+
+
96
P9-42
GPIO0_7
+
+
+
+
+
+
+
+
+
+
+
98
P8-35
UART4_CTSN
+
+
+
+
+
+
+
+
+
+
+
100
P8-33
UART4_RTSN
+
+
+
+
+
+
+
+
+
+
+
102
P8-31
UART5_CTSN
+
+
+
+
+
+
+
+
+
+
+
104
P8-32
UART5_RTSN
+
+
+
+
+
+
+
+
+
+
+
106
P9-19
I2C2_SCL
+
+
+
+
+
+
+
+
+
+
+
108
P9-20
I2C2_SDA
+
+
+
+
+
+
+
+
+
+
+
110
P9-26
UART1_RXD
+
+
+
+
+
+
+
+
+
+
+
112
P9-24
UART1_TXD
+
+
+
+
+
+
+
+
+
+
+
114
P9-41
CLKOUT2
+
+
+
+
+
+
+
+
+
+
+
116
P8-19
EHRPWM2A
+
+
+
+
+
+
+
+
+
+
+
118
P8-13
EHRPWM2B
+
+
+
+
+
+
+
+
+
+
+
120
P8-14
GPIO0_26
+
+
+
+
+
+
+
+
+
+
+
122
P8-17
GPIO0_27
+
+
+
+
+
+
+
+
+
+
+
124
P9-11
UART4_RXD
+
+
+
+
+
+
+
+
+
+
+
126
P9-13
UART4_TXD
+
+
+
+
+
+
+
+
+
+
+
128
P8-25
GPIO1_0
+
+
+
+
+
+
+
+
+
+
+
130
P8-24
GPIO1_1
+
+
+
+
+
+
+
+
+
+
+
132
P8-5
GPIO1_2
+
+
+
+
+
+
+
+
+
+
+
134
P8-6
GPIO1_3
+
+
+
+
+
+
+
+
+
+
+
136
P8-23
GPIO1_4
+
+
+
+
+
+
+
+
+
+
+
138
P8-22
GPIO1_5
+
+
+
+
+
+
+
+
+
+
+
140
P8-3
GPIO1_6
+
+
+
+
+
+
+
+
+
+
+
142
P8-4
GPIO1_7
+
+
+
+
+
+
+
+
+
+
+
144
P8-12
GPIO1_12
+
+
+
+
+
+
+
+
+
+
+
146
P8-11
GPIO1_13
+
+
+
+
+
+
+
+
+
+
+
148
P8-16
GPIO1_14
+
+
+
+
+
+
+
+
+
+
+
150
P8-15
GPIO1_15
+
+
+
+
+
+
+
+
+
+
+
152
P9-15
GPIO1_16
+
+
+
+
+
+
+
+
+
+
+
+
+
+
15
14
13
12
11
10
9
8
7
6
5
Offset
Conn
Name
Pin Usage
Type
+
Reserv.
+
+
SLEW
RX
PU/PD
PU/DEN
Mux Mode
154
P9-23
GPIO1_17
156
P9-14
EHRPWM1A
158
P9-16
EHRPWM1B
160
P9-12
GPIO1_28
162
P8-26
GPIO1_29
164
P8-21
GPIO1_30
166
P8-20
GPIO1_31
168
P8-18
GPIO2_1
170
P8-7
TIMER4
172
P8-9
TIMER5
+
+
+
+
+
+
+
+
+
+
+
174
P8-10
TIMER6
+
+
+
+
+
+
+
+
+
+
+
176
P8-8
TIMER7
+
+
+
+
+
+
+
+
+
+
+
178
P8-45
GPIO2_6
+
+
+
+
+
+
+
+
+
+
+
180
P8-46
GPIO2_7
+
+
+
+
+
+
+
+
+
+
+
182
P8-43
GPIO2_8
+
+
+
+
+
+
+
+
+
+
+
184
P8-44
GPIO2_9
+
+
+
+
+
+
+
+
+
+
+
186
P8-41
GPIO2_10
+
+
+
+
+
+
+
+
+
+
+
188
P8-42
GPIO2_11
+
+
+
+
+
+
+
+
+
+
+
190
P8-39
GPIO2_12
+
+
+
+
+
+
+
+
+
+
+
192
P8-40
GPIO2_13
+
+
+
+
+
+
+
+
+
+
+
194
P8-37
UART5_TXD
+
+
+
+
+
+
+
+
+
+
+
196
P8-38
UART5_RXD
+
+
+
+
+
+
+
+
+
+
+
198
P8-36
UART3_CTSN
+
+
+
+
+
+
+
+
+
+
+
200
P8-34
UART3_RTSN
+
+
+
+
+
+
+
+
+
+
+
202
P8-27
GPIO2_22
+
+
+
+
+
+
+
+
+
+
+
204
P8-29
GPIO2_23
+
+
+
+
+
+
+
+
+
+
+
206
P8-28
GPIO2_24
+
+
+
+
+
+
+
+
+
+
+
208
P8-30
GPIO2_25
+
+
+
+
+
+
+
+
+
+
+
210
P9-29
SPI1_D0
+
+
+
+
+
+
+
+
+
+
+
212
P9-30
SPI1_D1
+
+
+
+
+
+
+
+
+
+
+
214
P9-28
SPI1_CS0
+
+
+
+
+
+
+
+
+
+
+
216
P9-27
GPIO3_19
+
+
+
+
+
+
+
+
+
+
+
218
P9-31
SPI1_SCLK
+
+
+
+
+
+
+
+
+
+
+
220
P9-25
GPIO3_21
+
+
+
+
+
+
+
+
+
+
+
+
+
+
15
14
13
12
11
10
9
8
7
6
5
Offset
Conn
Name
Pin Usage
Type
+
Reserv.
+
+
SLEW
RX
PU/PD
PU/DEN
Mux Mode
222
P9-39
AIN0
+
+
+
+
+
+
+
+
+
+
+
224
P9-40
AIN1
+
+
+
+
+
+
+
+
+
+
+
226
P9-37
AIN2
+
+
+
+
+
+
+
+
+
+
+
228
P9-38
AIN3
+
+
+
+
+
+
+
+
+
+
+
230
P9-33
AIN4
+
+
+
+
+
+
+
+
+
+
+
232
P9-36
AIN5
+
+
+
+
+
+
+
+
+
+
+
234
P9-35
AIN6
+
+
+
+
+
+
+
+
+
+
+
[Использование выводов управления загрузкой]
У процессора есть 16 ножек, которые управляют его режимом загрузки (boot mode), эти выводы представлены на коннекторах расширения. Рис. 63 показывает эти сигналы, где они находятся на BeagleBone Black:
Рис. 63. Выводы управления загрузкой, выведенные на разъем расширения P8.
Если необходимо использовать любые из этих сигналов, то при включении питания они не должны управляться выходами внешних устройств. Иначе изменение уровней этих выводов может привести к тому, что изменится режим загрузки процессора, и система загрузится неправильно или не загрузится.
Если Вы разрабатываете cape-плату, которая должна использоваться как источник загрузки, такую как плата NAND, то тогда необходимо управлять этими выводами, чтобы переконфигурировать boot mode, но только при сбросе. После фазы сброса эти сигналы не должны управляться, чтобы можно было использовать эти выводы для других функций. Понадобится изменить значения резисторов, чтобы поменять настройки. Требования к DC pull-up должны основываться на минимальном напряжении AM3358 Vih, равном 2V, и на максимальном токе утечки входа AM3358 приблизительно 18 мкА. Также надо учитывать другие пути токов утечки на этих сигналах, что зависит от дизайна определенной cape-платы.
Соответственно DC pull-down требования должны основываться на максимально допустимом напряжении AM3358 Vil, равном 0.8V, и на максимальном входном токе утечки AM3358 приблизительно 18 мкА, плюс должны быть учтены другие возможные направления утечки на этих сигналах.
[Коннекторы расширения]
Комбинация разъемов "мама" и "папа" используется для подключения cape-плат к разъемам расширения основной платы BBB. Для коннекторов расширения cape-платы возможны 3 конфигурации монтажа, определяющих возможности соединения плат в виде стека ("бутерброда"):
• Одиночная конфигурация - к BBB может подключаться только одна cape-плата, либо она должна находится на верхней части "бутерброда". • Поддержка соединения в стек - имеются коннекторы "папа/мама", расположенные друг над другом, что дает возможность подключения cap-плат стек, одна над другой. • Стек с сокрытием некоторых сигналов. Платы можно соединять в стек, но верхние платы теряют доступ к некоторым сигналам.
Одиночная конфигурация. Это самый простой вариант коннектора для cape-платы, показанный на рис. 64. Такая плата не дает возможности нарастить "бутерброд" поверх себя, т. е. она должна быть единственной подключенной платой, либо должна быть последней в стеке. Оба коннектора расширения одинаковые, на них имеются только штырьки. Используются стандартные коннекторы "папа", представляющие два ряда штырьков по 23 контакта с шагом 2.54 мм.
Рис. 64. Одиночный коннектор разъемов расширения.
Этот коннектор монтируется с обратной стороны cape-платы, как показано на рис. 65. Это самые распространенные соединители, и их найти проще всего. Можно использовать как двухрядные коннекторы, так и два однорядных, смонтированных рядом.
Рис. 65. Коннектор разъемов расширения, смонтированный на cape-плате.
92 штырька на обоих разъемах приводят к тому, что cap-платы довольно трудно устанавливать и извлекать. Поэтому разработчик может принять решение не устанавливать ненужные штырьки, чтобы снизить усилия, прикладываемые для соединения/разъединения разъемов.
В таблице 19 перечислены возможные варианты выбора коннекторов, которые можно использовать при покупке. Имейте в виду, что у коннекторов может быть разная длина штырьков. Короткие штырьки облегчают извлечение плат, но повышают риск ненадежного соединения, а слишком длинные могут повредить контакты разъема "мама".
Таблица 19. Информация для покупки коннекторов "папа". Размеры указаны в дюймах (в скобках в мм).
Поставщик
PARTNUMBER
Длина хвостика для пайки, дюймы (мм)
Выступ над платой в месте пайки, дюймы (мм)
Major League
TSHC-123-D-03-145-G-LF
0.145 (3.68)
0.004 (0.1)
Major League
TSHC-123-D-03-240-G-LF
0.240 (6.1)
0.099 (2.51)
Major League
TSHC-123-D-03-255-G-LF
0.255 (6.48)
0.114 (2.89)
Буква G в обозначении part number показывают покрытие контактов золотом (Gold), могут использоваться и другие варианты покрытий контактов.
Поддержка соединения в стек. Для этого варианта оба коннектора расширения используют одинаковые разъемы по краям, с удлиненными ножками, как показано на рис. 66..
Рис. 66. Коннектор, дающий возможность соединять платы в стек.
Коннектор монтируется на верхней стороне платы, и его длинные ножки-штырьки выходят с нижней стороны. Получается сквозная комбинация контактов папа-мама, дающая возможность нарастить стек плат на BeagleBone Black. На рис. 67 схематично монтаж коннектора в этой конфигурации.
Рис. 67. Коннектор разъемов расширения, смонтированный на cape-плате.
Подобные коннекторы найти труднее. В таблице 20 перечислены возможные варианты выбора коннекторов, которые можно использовать при покупке.
Таблица 20. Информация для покупки коннекторов с возможностью получения стека.
Поставщик
PARTNUMBER
Длина хвостика для пайки, дюймы (мм)
Выступ над платой в месте пайки, дюймы (мм)
Major League
SSHQ-123-D-06-G-LF
0.190 (4.83)
0.049 (1.24)
Major League
SSHQ-123-D-08-G-LF
0.390 (9.9)
0.249 (6.32)
Major League
SSHQ-123-D-10-G-LF
0.560 (14.2)
0.419 (10.64)
Стек с сокрытием некоторых сигналов. На рис. 68 показана конфигурация коннекторов, когда для установленных сверху cape-плат теряется доступ к определенным выводам. Эта конфигурация может быть полезной, если другие устанавливаемые платы потенциально могут помешать работе этой платы расширения. Здесь используется комбинация сквозных (папа-мама) и одиночных (только папа) соединителей.
Рис. 68. Монтаж коннектора, где некоторые сигналы скрыты для верхних плат стека.
[Система питания]
В этом разделе описываются шины питания и их использование.
Напряжения питания на основной плате. Таблица 21 показывает напряжения на основной плате, присутствие этих напряжений на контактах P9 и их нагрузочная способность по току. Напряжения питания имеются только на коннекторе P9.
Таблица 21. Напряжения для питания плат расширения.
Ток
Имя
P9
P9
Имя
Ток
250 мА
VDD_3V3B
3
4
VDD_3V3B
250 мА
1000 мА
VDD_5V
5
6
VDD_5V
1000 мА
250 мА
SYS_5V
7
8
SYS_5V
250 мА
VDD_3V3B эта шина получает напряжение от LDO-регулятора на плате BeagleBone Black, и это основной источник питания для плат расширения. Если тока от этого источника недостаточно, то необходима организация дополнительного внешнего питания. Рекомендуется использовать VDD_3V3B для питания любых буферов и преобразователей уровня.
VDD_5V это основной источник питания, напряжения для него поступает с джека 5VDC P1. Если плата питается от USB, то напряжение VDD_5V отсутствует. Величина тока, которую можно взять от этой шины, зависит от возможностей внешнего адаптера 5V, а также других дополнительных нагрузок. Дизайн основной платы рассчитан на ток не более 1A.
SYS_5V шина для регуляторов напряжения основной платы. При питании от джека DC или от USB на этой шине всегда присутствует +5V. Ток, который можно снять с этой шины, зависит от текущего доступного тока USB и нагрузочной способности внешнего DC-адаптера.
Внешнее питание на плате расширения. На cape-плате может быть собственный коннектор для подачи напряжения, обеспечивающий должное питание. Нужно следить за тем, чтобы это напряжение случайно не попало на контакты коннектора расширения.
Можно предоставить питание +5V для основной платы, подаваемое от платы расширения, для этого напряжение +5V подается на шину VDD_5V. Имейте в виду, что подаваемое напряжение не должно превышать 5V. Нельзя подавать никакие другие напряжения питания на другие контакты коннекторов расширения. Дизайн платы BBB рассчитан на токи через контакты не более 1А.
Для предотвращения повреждения платы при работе с коннекторами расширения необходимо принять несколько мер предосторожности:
1. Не подавайте напряжения ни на какие контакты ввода/вывода, если на плату не подано питание. Несоблюдение этого условия может повредить процессор из-за чрезмерных токов, протекающих через внутренние защитные цепи чипа процессора. 2. Не подавайте никакие внешние сигналы на ножки ввода/вывода, пока не установится напряжение шины VDD_3V3B. 3. Не подавайте никакие напряжения, генерируемые от внешних источников. 4. Если напряжения питания генерируются от шины VDD_5V, они не должны активироваться, пока не установится напряжение на шине VDD_3V3B. 5. Если Вы подаете сигналы на BBB от другой платы, то убедитесь, что это делается после включения питания на BBB, и соединение сигналами устанавливается после подачи питания на обе платы.
Подача уровней сигналов через ножки I/O процессора, когда на нем не присутствует основное питание, приводит к так называемому паразитному питанию, и это может необратимо повредить процессор.
В этой секции даны указания по созданию плат с точки зрения механических размеров. В общем случае размеры привязаны к профилю основой платы BeagleBone Black. В общем случае плата расширения имеет такие же габаритные размеры, что и основная плата. Однако с выполнением определенных условий можно создавать платы расширения и других размеров, например если используется LCD большого размера, превышающего габариты платы BeagleBone Black.
Стандартный размер cape-платы. Рис. 70 показывает габариты стандартной палаты расширения. Размеры указаны в дюймах, в скобках указаны соответствующие размеры в миллиметрах.
Рис. 70. Размеры cape-платы.
Высота коннектора Ethernet превышает высоту устанавливаемой cape-платы, поэтому в плате расширения должен быть соответствующий вырез. Этот вырез также играет роль ключа, предотвращающий неправильную установку платы. Также предусмотрено место для доступа к светодиодам пользователя кнопке сброса основной платы.
Часто задают вопрос, почему различаются радиусы скругления углов BeagleBone Black. Это сделано для того, чтобы BeagleBone помещалась в жестяную коробочку от леденцов Altoids.
Можно делать платы расширения с размерами больше стандартных. Хороший пример - панель LCD. Практических ограничений на размеры не существует. Ключ в виде выемки в плате расширения также необязателен, однако должны быть какие-то средства, предотвращающие неправильную установку платы.
Как и для всех cape-плат, необходима идентификационная память EEPROM и соблюдение требований совместимости по питанию.
[Ссылки]
1. BeagleBone Black System Reference Manual site:github.com. 2. BeagleBoard: доступ к командной строке терминала. 3. BeagleBone Cookbook site:beagleboard.org. 4. AM335x and AMIC110 Sitara™ Processors Technical Reference Manual site:ti.com.