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

Обзор платы Tang Primer 20K на Gowin GW2A-LV18

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров12K
После получения большого количества отзывов и комментариев на обзор платы на Cyclone IV из части из них четко прослеживались мысль: “А почему Cyclone IV, это же старый хлам!”. В ответ на это я решил сделать обзор на что-нибудь современное, функциональное и очень недорогое. И такой вариант нашелся — это отладочная плата Tang Primer 20K на ПЛИС от небезызвестной компании Gowin. На неё я и сделаю обзор в этой статье и расскажу про примеры проектов, доступных для этой платы.

Кого заинтересовала тема — добро пожаловать под кат! =)

image


Что это такое и зачем оно?


Tang Primer 20K — это SoM-модуль в формате SO-DIMM, с ПЛИС Gowin GW2A-LV18PG256C8/I7 в качестве центрального элемента, который поставляется (на выбор) с двумя интерфейсными платами, побогаче и попроще. В моем обзоре я расскажу про ту, что побогаче — Dock ext-board.

Перечислю основные характеристики SoM:

  • Gowin GW2A-LV18PG256C8/I7;
  • 128M DDR3 на SoM;
  • 32 Mbits NOR Flash;
  • JTAG + UART порт для программатора;
  • Слот для установки SD-Card;
  • 8-пиновый разъем для SPI-дисплея;
  • Доступное количество I/O-пинов — 177 шт.

Основные характеристики Dock-ext board:

  • RGB565 40P FPC Connector для подключения дисплея с RGB-интерфейсом, например такого;
  • 24P FPC Connector для подключения CMOS камеры с интерфейсом DVP;
  • 10P FPC разъем для подключения микрофонов;
  • 4P FPC разъем для подключения тач-сенсора;
  • 4 интерфейса PMOD;
  • 3.5mm headphone Jack с драйвером LPA4809MSF;
  • 5-пиновый DIP switch;
  • 2-позиционный переключатель для определения функции USB (Host/Device);
  • USB type-C разъем для соединения JTAG-отладчика c ПК;
  • USB type-C разъем с USB3317 в качестве USB PHY-контроллера;
  • Антенна на 2.4ГГц диапазон;
  • 6 кнопок;
  • 6 LED;
  • 1 RGB LED WS2812;
  • HDMI-интерфейс;
  • Ethernet-интерфейс c PHY Realtek RTL8201F.

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

К слову, всю интересующую вас информацию можете найти на официальном сайте проекта.

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


Начнем, уже традиционно с вопроса о комплекте, как это всё было упаковано и где купить (иначе зачем бы этот обзор еще был бы нужен, верно?). С первоначальным описанием и ценой вы можете ознакомиться на сайте продавца. Для работы с данной отладкой идёт сразу все необходимое. Нет нужды докупать программаторы и провода:

  • SoM в SO-DIMM форм-факторе с FGPA;
  • Материнская плата с необходимым минимумом интерфейсов, кнопок, индикаторов;
  • Кабель USB-A — type-C;
  • Переходник с USB-A Female — type-C, для подключения к USB-Host внешних устройств;
  • 8-пиновый переходник на PLS-female с платы SoM для подключения внешнего программатора;
  • Две миниатюрных перемычки для включения\выключения BL702 (подробнее ниже);
  • Жесткий пластиковый бокс для переноса платы.

Небольшое количество фотографий с распаковки:

image

image

Общий вид материнской платы:

image

image

SoM-модуль:

image

image

При внешнем осмотре нет ни следов флюса, ни следов пайки. Запаяно все качественно, без косяков и следов кривого монтажа.

Ну и фото мелких аксессуаров:

image

Немного про SoM


В качестве центрального ядра, как я уже писал выше, используется ПЛИС от Gowin GW2A-LV18PG256C8/I7. Среди его ключевых характеристик можно выделить следующие:

image

Общий вид SoM с ключевыми элементами:

image

Также на SoM есть SDRAM DDR3 128MB (1Gbit) память. В моем случае это SK Hynix H5TQ1G63EFR (13 row x 10 col x 8 banks x 16 bits). SpeedGrade памяти определить не удалось по гравировке на чипе, но судя по упомянутой в Schematic на SoM DDR-памяти IMD128M16R39CG8GNF-125 — доступен режим работы DDR-1600.

Помимо DDR-памяти на SoM еще располагается SPI Flash W25Q32JVS:

image

В качестве дополнительных опций на SoM-е доступны две дополнительные опции. Первая — это слот для установки microSD карт:

image

И вторая опция — разъем для подключения SPI LCD:

image

Для тактирования ПЛИС — установлен 27 МГц генератор:

image

Если не хочется использовать программатор, который установлен на материнской плате — SoM можно прошить внешним программатором подключившись к 8-пиновому разъему через переходник, идущий в комплекте:

image


ВНИМАНИЕ! Тут мне следует сделать очень важное предостережение. Подключение программатора к этим пинам, переключение кабелей программатора стоит делать только при полном отключении программатора и платы от питания т.к. неоднократно замечалось, что JTAG в Gowin очень «нежный» и может выйти из строя!

Речь идет вот об этом разъеме на SoM, рядом с которым находится разъем для подключеня SPI LCD и тест-поинты:

image

Для проверки работоспособности DC-DC преобразователей разработчики заботливо вывели 8 тестовых поинтов. Буду надеяться, что они вам не пригодятся ?:

image

Материнская плата Dock-ext


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

image

Питание платы


Давайте перейдем к схематику, посмотрим, что на материнской плате. Кажется, что обзор получится объемным ? и начнем с питания.

Плата может запитываться со штыревого входа с входным напряжением 6-12 В:

image

Преобразованием 12В в 5В занимается DC Buck Converter EUP3458VIR1:

image

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

Второй вариант обеспечить плату питающим напряжением: два type-C разъема. Один предназначен для USB-OTG, второй — разъем для подключения USB-JTAG:

image

image

Также есть светодиодная индикация о том, что на плате присутствует напряжение в 5 В.

image

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

JTAG-программатор на BL702


Ядром JTAG-программатора на плате является микроконтроллер BL702 — 32-разрядный процессор RISC-V от Bouffalo Labs. Полистав базовое описание на этот SoC, я весьма был удивлен, что у этого МК есть еще и 2.4GHz RF transceiver c поддержкой IEEE 802.15.4 MAC/PHY, Bluetooth 5.0 LE и Zigbee 3.0. Но обо всём по порядку.

Основное назначение этого чипа и идущего по умолчанию ПО в нём — обеспечить прошивку ПЛИС микропрограммой, которую по итогу генерирует IDE. Но если у вас есть внешний программатор — его можно подключить через 8-пиновый разъем на самом SoM-модуле, а этот BL702 использовать для нужных вам целей: можно хоть USB Device сделать, хоть IoT-устройство под управлением Linux, который можно завести на ПЛИС.

Для отключения BL702 даже предусмотрена соответствующая перемычка подписанная на плате как 702_EN:

image

Прошивка заливается по UART на BL702 через USB-порт и для ввода BL702 в режиме Firmware Update так же предусмотрена кнопка, которая расположена в аккурат над перемычкой:

image

Неизвестно, можно ли через UART-пины управлять в последующем из ПЛИС BL702, но кажется что теоретически это возможно:

image

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

image

Особенно приятно было увидеть, что на что на плате всё-таки имеется чип-антенна и небольшая цепь согласования для пользования BL702 в качестве радиоустройства:

image

GPIO-пины


На плате присутствует 4 PMOD разъема для подключения внешних устройств или какой-нибудь периферии, которые прямо шелкографией подписаны на оборотной стороне платы. Так же для GPIO предусмотрен разъем, который также подходит для подключения внешних микрофонов (подписан как MIC ARRAY на плате):

image

Кнопки и светодиоды


Тут разработчики заложили кажется вполне оптимальное количество кнопок и LED-ов. Для пользовательских операций доступно 4 из 5 кнопок:

image

Первая кнопка S1 отвечает за сброс ПЛИС (почему-то он у меня на плате не срабатывал), остальные можно использовать для пользовательских кейсов:

image

Помимо кнопок доступен 5-разрядный DIP-переключатель:

image

Первый переключатель используется для переключения источника загрузки ПЛИС, остальные 4 из 5 переключателей можно использовать в пользовательском сценарии:

image

С LED-индикаторами тоже не все так просто. На плате их установлено 6 штук, из них доступно для пользователя только 4, т. к. первые два используются для индикации FPGA_DONE и FPGA_READY:

image

При программировании Blink-примера, LED-светодиоды наоборот тухли при когда FPGA-прошивка была загружена и работала. С этим тоже предстоит разобраться:

image

В дополнение к обычным светодиодам на плату еще разместили RGB-светодиод WS2812B:

image

HDMI интерфейс


На плате расположен HDMI-разъем, через который можно вывести изображение на внешний монитор, телевизор и прочее. Всё выглядит достаточно стандартно, линии данных, Hot Plug Detect, SDA/SCL. Т. к. я практически не работал с HDMI — тут я мало чего могу вам рассказать.

image

USB 2.0 PHY


На плате имеется USB-контроллер Microchip USB3317 с поддержкой как USB Device так и USB Host сценариев. Для переключения между этими режимами на плате предусмотрен соответствующий переключатель. Всё выглядит достаточно стандартно и добавить тут, в целом, тоже нечего.

image

Ethernet 10/100M


Приятным дополнением ко всему, что было перечислено выше является интерфейс Ethernet, с поддержкой 10/100 Half-Full Duplex. На плате установлен Ethernet PHY, являющийся по сути надежным и проверенным стандартом — Realtek RTL8201F-VB-CG.

На изображении ниже — линии RMII идущие в ПЛИС:

image

Audio DAC + Headphone AMP


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

Первая — двухканальный 16-битный ЦАП от Princeton Technology PT8211-S:

image

На правом и левом выходных аналоговых каналах установлены просты Low-Pass простые постфильтры второго порядка подавления остаточных шумов с частотой среза примерно около 40 кГц:

image

Вторая микросхема — стерео Headphone-усилитель от LowPowerSemi LPA4809MSF, который по заявлениям производителя может дать до 140 mW на канал с 16 Ω нагрузкой с THD 0.1% при питании от 5 В.

image

Интерфейсы для подключения Display и DVP-камеры


Порадовало наличие на плате 40-пинового разъема для подключения внешнего RGB24 дисплея и 24-пиновый DVP-интерфейс для подключения CMOS сенсора.

Подошел дисплей, о котором я рассказывал в прошлой статье, и мне удалось запустить пример из набора Sipeed:

image

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

Touch Panel


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

image

Доступная документация и примеры


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

  1. После простой регистрации на сайте Gowin можно скачать IDE, любые Datasheet-ы, Reference Manual-ы и прочее: www.gowinsemi.com/en/product/detail/38
  2. Есть официальный Wiki со всей документацией и ЧаВо: wiki.sipeed.com/hardware/en/tang/tang-primer-20k/primer-20k.html
  3. Есть централизованное хранилище документации: dl.sipeed.com/shareURL/TANG/Primer_20K
  4. Есть Git-репозиторий с большим количеством примеров: github.com/sipeed/TangPrimer-20K-example

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


Заключение


После подробного изучения возможностей этой отладки — хочется вскрикнуть “Ого! И это — за такие небольшие деньги!”. Оптимальное количество LUT-ов, куча интерфейсов, всякое разное на борту и даже чип с RF-интерфейсом! Учитывая общую стоимость платы — кажется это отличная альтернатива Cyclone для начала работы с ПЛИС. Вывод который напрашивается после знакомства с этой отладкой “А может Cyclone IV действительно устарел?” ?.

Жаль, конечно, что на плате нет EEPROM, которая мне необходима для построения I2C Master Controller, но кажется для этой отладки найдется куча самых разнообразных применений. Например, можно на этой плате “поднять” ядро RISC-V и на нем запустить полноценный Linux. На первый взгляд кажется, что можно собрать полноценный мини-ПК: оперативной памяти достаточно, есть USB-интерфейс для подключения клавиатуры, есть Ethernet для сетевого взаимодействия с другими элементами сети, интерфейс для дисплея. Кажется, это звучит как одна из идей для следующих статей.

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

До встречи в следующих статьях! ?



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


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

Публикации

Информация

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