Как стать автором
Обновить
1525.54
Timeweb Cloud
То самое облако

Обзор отладочной платы ALINX AXU15EGB

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.9K
Давненько ко мне в руки не попадалось ничего интересного, но ситуация поменялась 🙂. Попутным ветром принесло тут платку, и я решил, мол, а почему бы мне не сделать на неё небольшой обзорчик? Итак, отладочная плата с Zynq MPSoC от небезызвестной компании Alinx, которая торгует всяким интересным на Aliexpress.

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

Кому интересно – добро пожаловать под кат!





Нетехническая сторона вопроса


Для начала коснусь нетехнических особенностей данной платы. Данная отладка стоит просто космических денег – около 400 тысяч рублей. Такая стоимость явно неподъёмна для простых энтузиастов и подходит лишь для профессиональной разработки или для компаний, которые готовы выделить достаточно денег на приобретение.

Но мне показалось, что эта плата даёт возможности соразмерно ее стоимости. Рассмотрим её возможные применения:

  1. Automotive применения, для организации помощи водителю, бортовых систем с анализом данных с видеокамер;
  2. Для организации систем беспроводной связи, SDR и т.п.;
  3. Сетевые применения, где требуются мультигигабитные скорости, за счёт наличия на борту двух интерфейсов для подключения SFP/SFP+ и медного порта Ethernet. Количество портов также можно увеличить за счёт установки дополнительных плат на FMС HPC интерфейс и сделать полноценный коммутатор или маршрутизатор.
  4. Высокоскоростной обмен и обработка данных с использованием параллельных вычислений в очень емкой ПЛИС и очень богатого на возможности высокоскоростного интерконнекта c ARM-ядрами.
  5. Применение в областях машинного обучения, искусственного интеллекта и потокового распознавания в видеонаблюдении и аналитики с потоковой обработкой видеопотока в качестве 4К.
  6. Область аэрокосмических применений и многие другие.

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

– обнаружение машин:


– обнаружение людей:


– детекция огня:


– обнаружение проблем и дефектов:


– обнаружение нарушения целостности проводников на PCB:


Вот бы иметь время все эти примеры раскурить и написать статьи на тему создания подобных проектов 😀. Но идём дальше.

Общее описание комплекта поставки


Рассмотрим, используя изображения с сайта продавца, комплект поставки этой платы. Отладочный комплект ALINX AXU15EG состоит из двух основных компонент: SoM и материнская плата с интерфейсами.

В качестве ключевого узла SoM выступает SoC Zynq UltraScale+ MPSoC, XCZU15EG-2FFVB1156I с классом скорости 2, который содержит в себе четырехъядерный процессор с ядрами Cortex-A53 и двухъядерный Cortex-R5F для реалтайм вычислений и ПЛИС UltraScale с 746550 System Logic Cells, 682560 Flip-Flops, 274080 CLB LUT и многим другим. В общем, прям жЫр 🙂.

В сборе это хозяйство выглядит следующим образом:


Так выглядит SoM модуль с обеих сторон:



Помимо этого в комплекте имеется JTAG отладчик Alinx AL321 на чипе FTDI FT232H, который позволяет достаточно быстро осуществлять операции отладки в отличие от достаточно медленных чипов, которые идут в Platform Cable USB, типа DLC9LP.

Выглядит он вот так и поставляется с microUSB-кабелем и кабелем подключения к отладочному разъёму:


Для питания платы используется блок питания на +12V DC на 36W (3A):


Для загрузки ПО и битстрима идет в комплекте MicroSD Flash карта, может быть поставлена и на 16 Гб и на 32 Гб. Мне повезло, и в этом комплекте была флешка на 32Гб. Хотя для работы на начальном этапе более чем достаточно и 4 Гб флешки:


Плюсом ещё докладывают Card Reader для microSD карт:


В качестве ещё одного элемента поставки можно отдельно отметить систему охлаждения основного чипа в виде 30W Fan Cooler:


В качестве приятного дополнения и защиты от случайных механических воздействий имеется в комплекте плексигласовый защитный корпус:



Обратная сторона платы, к слову, выглядит следующим образом:



Внимательные читатели увидят на шелкографии надпись AXU9EGB 1.1. Но пусть не смущает эта надпись, несущая плата, видимо, используется во многих комплектах поставки.

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


Помимо этого у Alinx можно приобрести разные модули, которые устанавливаются в 40-пиновый разъем GPIO:

— Dual Channel 14bit 125Msps DA BNC Analog Output Module AD9767;


— Multi-channel 16 bit 200ksps Synchronous Sampling AD Module AD7606;


— Dual-channel 65MSPS 12bit AD analog to digital signal conversion module AD9238;


— 7-inch Touch Screen Module;


— модуль для установки в MIPI-интерфейс в виде 5MP камеры на контроллере OV5640;


Также продаются разные модули для установки на FMC-разъем, среди которых:

— Alinx FH1223 FMC HPC to 4-Channel SFP Optical Fiber Interface Adapter Card;


— Alinx FL2121 4-way 1000M Gigabit Ethernet LPC;


— Alinx FMC HDMI CARD Daughter Board Input Output 1080p;


— Alinx FL1404 FMC to 4-way MIPI module LPC interface;


— Alinx FL9613 FMC LPC to 4-Channel AD 12-bit 250 MSPS;


— Alinx FH9712 16 channel GMSL2/GMSL1 autopilot camera acquisition module MAX96712;

image

— Alinx FL1010 FMC LPC Interface to 40-Pin Expansion Ports;


— Alinx FL0214 FMC LPC to Dual Lens MIPI 1.3 Megapixel IMX214 CMOS Camera;


— Alinx FH1226 FMC HPC to Cameralink Adapter;


…и многие другие, их можно найти на сайте Alinx или на Aliexpress. Как говорится, любой каприз за ваши деньги. Возможностей для реализации огромного спектра задач – целая уйма.

Zynq Ultrascale+ MPSoC


Широкими мазками опишу возможности центрального элемента данной отладки. Вот так возможности Zynq MPSoC отразили Xilinx в своих документах на данный чип:



Если рассматривать чип с точки зрения внутреннего технического устройства, то приводится следующая блок-схема:



Рассмотрим подробнее встроенный четырехъядерный ARM-процессор, и я приведу несколько его отличительных особенностей:

  • Архитектура основного процессора ARMv8-A с рабочей частотой CPU до 1.5 GHz;
  • Медиапроцессор с поддержкой инструкций NEON Advanced SIMD;
  • Floating Point Unit (FPU) с поддержкой вычислений одинарной и двойной точности;
  • CoreSight и Embedded Trace Macrocell (ETM) для расширенных функций отладки;
  • Accelerator Coherency Port (ACP);
  • AXI Coherency Extension (ACE);
  • Два кэша размером 32 KB L1 и кэш L2 1 MB.

Отдельной фишкой данного SoC является наличие двухъядерного процессора Cortex-R5F с Real-Time Processing Unit (RPU):

  • Основан на архитектуре ARMv7-R c рабочей частотой до 600 MHz;
  • Floating Point Unit (FPU) с поддержкой вычислений одинарной и двойной точности;
  • CoreSight и Embedded Trace Macrocell (ETM) для расширенных функций отладки;
  • Кэш в 32KB L1 и кэш в 128 KB TCM c ECC.

Помимо этого присутствует On-Chip Memory:

  • 256KB on-chip RAM (OCM) в PS с ECC;
  • 36 Mb on-chip RAM (UltraRAM) c ECC в PL;
  • 35 Mb on-chip RAM (block RAM) c ECC в PL;
  • 11 Mb on-chip RAM (distributed RAM) в PL.

Для графики на чипе есть отдельный GPU ARM Mali-400 MP2 с частотой до 600 MHz:

  • Поддержка OpenGL ES 1.1 и 2.0;
  • Поддержка OpenVG 1.1.

Контроллеры памяти:

  • Мультипротокольный контроллер динамической памяти;
  • Контроллер памяти с шириной шины в 32 или 64 бита с поддержкой DDR4, DDR3, DDR3L, или LPDDR3 памяти и 32-битный интерфейс для LPDDR4;
  • Поддержка ECC для 32-битного и 64-битного режима работы;
  • Адресное пространство до 32GB;
  • Интерфейсы для статической памяти eMMC 4.51, NAND с поддержкой ONFI3.1 и SPI/QSPI интерфейс для подключения NOR Flash;
  • Два контроллера DMA, с 8 каналами каждый и поддержкой Memory-to-memory, memory-to-peripheral, peripheral-to-memory и scatter-gather транзакций.

Также на борту имеется поддержка последовательных трансиверов:

  • Четыре PS-GTR трансивера с поддержкой скорости в 6.0 Gb/s;
  • Поддержка SGMII tri-speed Ethernet.

Очень богат данный чип на выделенные периферийные устройства ввода-вывода и интерфейсы:

  • PCI Express Gen2 x1, x2, или x4 с Root complex и End Point конфигурации;
  • Serial-ATA 3.1 (SATA) с поддержкой скорости передачи данных в 1.5, 3.0, и 6.0 Gb/s
  • Display Port контроллер с поддержкой рейтов до 5.4 Gb/s и двумя Tx-линиями, без поддержки Rx поддерживающий режимы работы 4K@30Hz или 1080P@60Hz;
  • Четыре 10/100/1000 Ethernet MAC и интерфейсами GMII, RGMII, SGMII;
  • Два контроллера USB 3.0/2.0 для Device/Host/OTG с поддержкой до 12 эндпоинтов и Super-speed, high- speed, full-speed, и low-speed режимов работы;
  • Два CAN 2.0B совместимых интерфейса;
  • Стандартные UART, SPI, I2C, RTC, WatchDog контроллеры;
  • 78 MIO (PS) и 96 EMIO (PL) выводов GPIO.

Для реализации интерконнекта используется ARM AMBA AXI4-based контроллер. Ну и многое другое.

Область программируемой логики PL


Тут тоже очень богато. Перечислю доступные ресурсы, предоставляемые ПЛИС:

  • 746550 System Logic Cells;
  • 682560 CLB Flip-Flops;
  • 341280 CLB LUTs;
  • 42660 Logic Array Block;
  • 11.3 Mb Distributed RAM;
  • 744 Block RAM Blocks;
  • 26.2 Mb Block RAM;
  • 112 UltraRAM Blocks;
  • 31.5 Mb UltraRAM;
  • 3528 DSP Slices;
  • Clock Signal Management (CMT) 4 штуки;
  • 24 GTH Transceiver 16.3Gb/s;
  • Transceiver Fractional PLLs 12 штук;
  • DSP блоки с 27 x 18 знаковыми вычислениями, 48-битным adder/accumulator и 27-битным pre-adder.

И многое другое, что можно очень долго перечислять…

SoM и его содержимое


Теперь настало время препарировать схематик SoM-а и подробнее посмотреть, что на нём есть и какие компоненты установлены. Начнем с того, что он состоит из 4-ёх 120 пиновых коннекторов, которые установлены так, чтобы SoM было невозможно воткнуть на плату в неправильном положении. Освежим в воспоминаниях картинку:


Теперь подробнее рассмотрим верхнюю часть SoM-а:


Питание на SoM


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


В целом всё достаточно просто, потом можете посмотреть самостоятельно схематик и сделать свои выводы.

Тактирование на SoM


На SoM установлен основной осциллятор 33.3333 MHz и низкочастотный генератор 32.768 kHz для RTC:



И дополнительно на SoM имеется генератор дифференциального тактового сигнала в 200MHz:



В целом достаточно стандартно и под стать всей периферии и сложности самой платы.

Оперативная память на SoM


На SoM-е установлено 6 чипов DDR4, часть из которых подключена к PS-части, а другая часть к PL. Если быть несколько конкретнее то:

  • К PS-части подключено 4 чипа DDR4 MT40A512M16LY-062E общим объёмом 4 Гбайта c 64-битной шириной полосы пропускания;
  • К PL-части подключено 2 чипа DDR4 MT40A512M16LY-062E общим объёмом 1 Гбайт с шириной пропускания в 32 бита.

Максимальная рабочая скорость DDR4, подключенной к PS, может достигать 1200 МГц со скоростью передачи данных в 2400 Мбит/с. Подключается эта память к интерфейсу памяти BANK504 PS.

Максимальная скорость DDR4 SDRAM, подключенная к PL, также может достигать 1200 МГц с такой же скоростью передачи данных. И подключается эта память к BANK64 в PL.

Постоянная память на SoM


Если рассматривать постоянную память, на SoM установлено следующее:

  • eMMC MTFC8GAKAJCN-4M объемом 64 Гбайта;
  • QSPI Flash MT25QL512ABB1EW9-0SIT объёмом 64 Мбайта, подключенный к QSPI0 PS-части;
  • QSPI Flash MT25QL512ABB1EW9-0SIT объёмом 64 Мбайта, подключенный к QSPI1 PS-части;
  • I2C EEPROM 24LC04B-I/SN объёмом 4 Кбит.

Содержимое отладочной платы


Как я уже упоминал выше, плата состоит из двух основных компонентов – SoM c Zynq и несущей платой, которая предоставляет возможность подключения периферийных устройств и сетевых подключений.

Перечислю все основные возможности, которые предоставляет несущая плата:

  • PS High Speed интерфейс PCIe Gen2 x4 с интерфейсом M.2;
  • 2 разъема USB3.0 и 2 разъема USB 2.0;
  • 2 разъема SATA 3.1
  • mini-DisplayPort с возможность передачи 4K@30Hz или 1080P@60Hz;
  • PS Gigabit Ethernet;
  • PL Gigabit Ethernet;
  • SD/SDIO интерфейс для подключения microSD карт;
  • 2 UART microUSB интерфейса для подключения к PS и PL
  • 2 CAN 2.0B интерфейса;
  • 2 RS-485 интерфейса;
  • MIPI-интерфейс;
  • FMC-интерфейс, к которому можно подключить Alinx FMC модули;
  • PL Ethernet 12.5Gb/s x16, идущие на порта для подключения SFP+;
  • Температурный сенсор LM75;
  • Real Time Clock с батарейным держателем;
  • 40 пиновый GPIO интерфейс;
  • 4 LED;
  • 1 кнопка сброса и 2 пользовательских кнопки.

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



Фото переключателя на плате:


А также имеется 6 SMA интерфейсов для подключения GTH-трансивера.

Проанализировав состав платы, я накидал схему, отображающую всё, что есть на плате:



По порядку рассмотрим каждый из пунктов чуть подробнее.

Питание


Плата запитывается от 12В через самый обычный штыревой разъём, подойдёт любой качественный блок питания с выходным напряжением 12В и мощностью 36W.


Помимо этого на плате имеется несколько преобразователей из 12V в целевые напряжения. Из 12V в 5V:


Из 12V в 3.3V:


И из 12V в 1.8V:


Плюсом к этому на плате имеются и тест-поинты для контроля качества питания.

Источники тактирования


Очень интересным компонентом на плате является программируемый источник тактовой частоты Si5332BD11025-GM2, который позволяет генерировать весь необходимый спектр тактовых частот для всей необходимой периферии:



JTAG разъем


Для отладочных целей на плате имеется стандартный для всех отладок JTAG-интерфейс для подключения отладчика:


Сеть


Данная плата также предоставляет обширные возможности для реализации сетевых сценариев. В первую очередь обратим внимание на два медных Ethernet-разъема. Первый – подключен к PS-части Zynq. Линии MDIO из раъема идут к PHY Ethernet от Realtek RTL8211F. От PHY к PS идёт подключение через интерфейс RGMII:



Второй подключен к программируемой логике по тому же принципу с тем же PHY Ethernet-контроллером:



Помимо этого на плате установлен разъём для подключения 2-ух SFP/SFP+ модулей. Оба SFP-разъема подключаются к PL-логике устройства:



Помимо этого имеется ещё генератор дифференциального тактового сигнала для работы трансиверов SiT9121AI-2B1-33E125.000000 с выходной тактовой частотой в 125МГц:


Помимо вполне стандартных сетевых интерфейсов на плате имеется подключение через SMA-разъемы к GTH-интерфейсам с возможностью передачи данных до 100 Гбит/с:


Интерфейс FMC


На плате имеется FMC-разъем для подключения большого количества различных модулей, которые я перечислил в начале статьи. Схематик ввиду большого его размера – прикладывать тут не буду. Приведу лишь фото интерфейса:


Интерфейсы USB


В части USB-подключений плата также предоставляет целую кучу возможностей. На плате установлен USB3.1 хаб GL3523T-QFN76, который подключен к соответствующей части PS-части Zynq MPSoC:



К хабу подключены 2 USB3.0 и 2 USB2.0 разъема. Правда, на схеме все 4 почему-то обозначены как USB3.0-разъема:



Помимо этого на плате установлен USB2.0 PHY контроллер USB3320C-EZK-TR, который подключен к USB-хабу:



Интерфейс microSD


На плате имеется SD-разъём для подключения внешнего накопителя данных или источника загрузки. Разъём на плате подключается к Zynq, осуществляется через расширитель портов SDIO с преобразователем уровня логического сигнала 1TXS02612RTWR:



Интерфейс SATA


Ещё одна интересная возможность, которая предоставляется платой – это возможность подключить до 2-х SATA устройств, будь то SSD или HDD:



Интерфейс M.2


Приятная особенность платы – наличие M.2 разъёма с ключом М. Сюда возможно подключить любое подходящее PCI-e устройство, например, SSD-диск подходящего форм-фактора:


Интерфейс Display Port


Для подключения внешнего дисплея вместо HDMI на плате использован интерфейс Display Port:







Интерфейс MIPI


Для подключения внешних мультимедиа-устройств, будь то дисплей или камера – на плате предусмотрен интерфейс MIPI:


Интерфейс CAN


В случае, если плата разрабатывается под какие-либо automotive-применения, – выведен интерфейс CAN с подключением в клеммный разъем HT3.96-4P к контроллеру SN65HVD232 через преобразователь логических уровней TXS0102DCU. Сигнальные линии подключаются к PS-части Zynq:



Интерфейс RS-485


Для промышленных применений на плате реализован вывод интерфейса RS-485 через приемопередатчик MAX3485ESA. Подключается к PL-части Zynq:





Температурный I2C сенсор


Для случаев, когда потребуется мониторинг внешней температуры, – на плате имеется I2C температурный сенсор LM75DM-33R2, который подключается к PS-части Zynq:


Батарейка


На плате имеется батарейный держатель, который снабжает соответствующий банк питания в PS-части:


EEPROM


Помимо всего прочего на плате имеется I2C EEPROM 24LC04 объёмом 4 Кбит, которая подключена к PS-части устройства:


UART-интерфейсы


Для коммуникации с внешними устройствами и работы с консолью Zynq – на плате имеется два интерфейса UART: первый подключен к PS-части устройства, второй подключен к PL-части устройства. В обоих случаях подключение осуществляется с использованием USB-to-UART конвертера CP2102N-A01-GQFN28R по miniUSB-порту:



К PS-части UART-интерфейс подключается через преобразователь логических уровней 3.3V-to-1.8V TXS0102DCU:



Интерфейсы GPIO


В дополнение к широчайшим возможностям отладки – на плате имеется стандартная 40-пиновая гребенка с GPIO-пинами:


LED & Buttons


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

Первый – индикатор питания 3.3V и второй LED подключен к PS-части:


Имеется второй LED-индикатор, который подключен к PS-части:


Третий LED-индикатор подключен к PL-части:


Четвёртый, служебный, индикатор используется для того, чтобы обозначить, что загрузка bitstream в FPGA прошла успешно:


Плюсом к этому на плате расположено несколько кнопок. Первая – используется для включения питания платы, вторая – подключена к PL-части, а третья – подключена к PS-части:




В общем, достаточно стандартный набор. Теперь перейдём к рассмотрению того, что поставляется с платой в части примеров и SDK для работы с платой.

BSP и примеры проектов идущие в комплекте


В комплекте с платой идёт архив размером 7.2 Гбайт, в котором представлено самое подробное описание отладки:

  • Механические размеры и dxf-файлы плат;
  • Схематики на каждый из компонент;
  • Большое количество примеров.

Если просто перечислить набор примеров, то получится примерно следующий список.

Примеры для работы с периферией из ПЛИС и baremetal-приложений в PS-части:

  1. Подключение LED к PL-части с параллельным использованием логического анализатора ILA;
  2. Использование PLL в PL-части для генерации различных частот;
  3. PS RAM;
  4. ROM;
  5. FIFO;
  6. Кнопки и GPIO;
  7. PWM;
  8. UART PL;
  9. RS485 PL;
  10. PL DDR4 RAM;
  11. HDMI out (с использованием FMC-платы);
  12. HDMI in (с использованием FMC-платы);
  13. Примеры с семисегментным дисплеем;
  14. Ethernet BER тест;
  15. Пример использования GTH-интерфейса;
  16. PS Hello World;
  17. PS RTC;
  18. PS MIO;
  19. PS UART;
  20. PS CAN;
  21. PS I2C;
  22. PS Display Port;
  23. PS SD Card;
  24. PS Network;
  25. PS Network with remote applications;
  26. PS Sysmon;
  27. PS EMIO;
  28. PS AXI GPIO;
  29. PS RS485;
  30. PL Ethernet;
  31. Custom PWM IP;
  32. Dualcore AMP;
  33. FreeRTOS;
  34. PL read write PS DDR;
  35. BRAM test;
  36. DMA Loopback;
  37. AD7606 DMA;
  38. AD9708 DMA;
  39. AD9280 DMA with Display Port;
  40. AD9238 DMA with Display Port;
  41. AD7606 DMA with Display Port;
  42. AD9767;
  43. AN5642 + SD Card;
  44. AN5642 + LwIP;
  45. AN5641 + MIPI + Displya Port;
  46. LCD + Touch;
  47. AD9280 + LwIP;
  48. AD9238 + LwIP;
  49. AD7606 + LwIP;
  50. LED + QSPI + SDCard.

В комплекте также множество примеров работы с периферией из Linux:

  1. Сборка petalinux и куча примеров для него;
  2. Сборка драйверов для Linux;
  3. Драйверы для Char-устройств;
  4. Device Tree;
  5. Pinctl GPIO подсистема в Linux;
  6. Concurrent system calls;
  7. Чтение GPIO;
  8. Таймеры;
  9. Прерывания;
  10. Система ввода/вывода;
  11. Неблокируемый ввод/вывод;
  12. Асинхронный ввод/вывод;
  13. Работа с платформой с Device Tree;
  14. I2C;
  15. USB;
  16. SPI;
  17. UART;
  18. Работа с блочными устройствами;
  19. Работа с сетевыми устройствами;
  20. DMA Loop;
  21. Работа с тачсенсорами;
  22. Работа с LCD-дисплеями;
  23. Работа с ADC AD9238 и AD7606 в Linux;
  24. Работа с DAC AD9767 из Linux.

В теории по каждому из этих примером можно было бы написать целую книгу или цикл статей. Данный BSP я выложил в своем телеграм-канале по Zynq.

Заключение


Долго думал, чем завершить данный обзор. Плата, конечно, стоит очень дорого и обычному энтузиасту недоступна, но объём возможностей и ресурсов, которые она предоставляет в итоге, – точно соответствует её цене. Мне показалось интересным заглянуть за пределы доступного, поковырять что-то недоступное и предоставить это общественности. Возможно, чуть позже напишу статью по теме сборки Linux под Ultrascale+ потому что там своих граблей оказалось навалено невероятно много и всё оказалось не настолько тривиально, как в Zynq-7000. И есть пара кейсов на рассмотрение, связанных с PL Ethernet и AXI ENET, но это уже предмет отдельного разговора.

Спасибо, что дочитали до конца. До встречи в следующих статьях! 🙂



Возможно, захочется почитать и это:

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 45: ↑44 и ↓1+54
Комментарии10

Публикации

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud