Zynq 7000. Плата Zynq Mini c XC7Z020

в 15:04, , рубрики: Development Tools, fpga, xilinx, zynq, zynq-7000

Однажды, вечером, в очередной раз прочитывая чатик в телеграмме по теме Embedded + FPGA, я увидел обсуждение очередной отладочной платы с Zynq 7000 на борту. Описание выглядело очень любопытно. Полистав документацию на плату, посмотрев описание - я заинтересовался еще больше, вспомнил сразу про ограничения платы QMTech и понял, что данная отладка лишена всех тех недостатков, что были у QMTech. Сразу в голове созрел контент-план и понимание того, что изучая возможности этой платы можно написать много интересных статей для новичков :) Я тут же заказал эту плату, и решил, что пришло время вернуться к изучению возможностей отладочных плат с Zynq. И первым шагом на пути моего возвращения в написание статей я решил сделать небольшой обзор этой платы с рассказом о том, почему она меня заинтересовала, и что в ней интересного. Всем любопытным - добро пожаловать! 

Zynq 7000. Плата Zynq Mini c XC7Z020 - 1

Распаковка и комлект

В момент распаковки посылки порадовала удобная упаковка, которую можно использовать для переноса платы и не бояться сбить какие-нибудь SMD-компоненты:

Zynq 7000. Плата Zynq Mini c XC7Z020 - 2

Комплект поставки тоже порадовал:

Zynq 7000. Плата Zynq Mini c XC7Z020 - 3

В комплекте было:

  • плексигласовое защитное стекло;

  • пластмассовые ножки-стойки;

  • Type-C USB кабель;

  • переходник для Type-C USB;

  • и сама отладка бережно упакованная в антистатический пакет;

Внешний вид платы сверху:

Zynq 7000. Плата Zynq Mini c XC7Z020 - 4
Zynq 7000. Плата Zynq Mini c XC7Z020 - 5

И вид платы снизу:

Zynq 7000. Плата Zynq Mini c XC7Z020 - 6

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

После сборки отладка выглядела очень приятно:

Zynq 7000. Плата Zynq Mini c XC7Z020 - 7

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

Что там на борту?

Лучше всего, конечно же, описывает содержимое этой отладки изображение, представленное на сайте продавца на Aliexpress. Продублирую её здесь и рассмотрим ее чуть подробнее:  

Zynq 7000. Плата Zynq Mini c XC7Z020 - 8

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

Вторым пунктом для себя я отметил наличие прямо на плате 5 LED-светодиодов, 4 из которых подключены к программируемой логике и 1 подключен к процессорной системе.

Далее увидел 3 пользовательские кнопки, 2 из которых заведены в PL, а одна в PS. Тут можно сразу представить применение в самых разных сценариях. 

На плате имеется интересный переключатель, который отвечает за  выбор источника загрузки. Доступны три источника загрузки - JTAG, 16 Мбайт QSPI Flash, и стандартный способ - с SD Card. Флешка на шине QSPI, к слову, в корпусе SOIC-8 и ее можно потом перепаять на более емкую т.к. 16 Мбайт может быть не достаточно для крупных проектов.  Плюсом, можно будет потом показать, каким образом загрузочный образ можно прошить на QSPI Flash и использовать его в качестве основного источника загрузки. 

Отдельно можно отметить наличие на плате I2C EEPROM 2 Kbit памяти, которая подключена к PL-части: 

Zynq 7000. Плата Zynq Mini c XC7Z020 - 9

Далее на плате отдельно установлен OLED-дисплей разрешением 128х64 пикселя. Информативность некоторых китайских схематиков оставляет желать лучшего и придется изучать отдельно способы работы с ним: 

Zynq 7000. Плата Zynq Mini c XC7Z020 - 10

Вероятнее всего реализован данный дисплей на базе графического I2C-контроллера SSD1306. Он подключен к PL-части Zynq и вероятнее всего, так же как и для EEPROM - нужен будет отдельный реализованный I2C-контроллер. 

Слава Богам, что на этой плате выведен второй контроллер SDIO на второй разъем для SD Card и не придётся для подключения SDIO-устройств городить протаскивание сигналов через EMIO. Всё это я описывал в своей предыдущей статье. 

На картинке из магазина допущена ошибка, указывающая, что якобы второй слот подключен к PL-части Zynq, на самом деле SDIO1 подключен к PS-части.

Zynq 7000. Плата Zynq Mini c XC7Z020 - 11

Ключевым плюсом данной отладки является наличие USB Host Controller выведенного на USB Type-C разъем. Это было той самой проблемой на плате от QMTech, которая на корню губила идею сделать полноценный мини-компьютер на Linux c выводом изображения в HDMI и подключением клавиатуры по USB. Скорее всего, раскрытие именно этой темы будет отправной точкой для следующей статьи. 

Дополнительные, но в сущности не критичные плюшки на плате так же порадовали:

  • внешний 50 МГц осциллятор, подключенный к PL

  • Gigabit Ethernet PHY подключенный к PL-части (в дополнение к PS-ному);

  • HDMI-разъем для вывода изображения. К сожалению, без внешнего HDMI companion chip, который используется в качестве ESD, TVS защиты и обеспечивает безопасную работу с HDMI, типа TPD12S016. Вероятно, просто не хватило места на плате;

  • 34 GPIO-пина, выведенные на PLS-гребенку для разных применений, подключенных к PL-части Zynq;

  • 2 GPIO-пина MIO7 и MIO8, которые при необходимости и некоторой хирургической доработке платы можно задействовать с PS-части;

Ну и самое основное, что есть на моем варианте платы:

  • сердце платы - Zynq XC7Z020-CLG400

  • DDR3 SDRAM память объемом в 512 Мбайт MT41J256M16

Подводя итог

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

P.S. Для затравочки - планирую таки вывести фреймбуфер консоли Linux в HDMI и подключить клавиатуру в USB, чтобы платой можно было пользоваться как standalone мини-компьютером.

Автор: Андрей

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js