Скромный обзор отладочной платы BlackIce II

Однажды я немного рассказывал про iceStick Evaluation Kit — простой и недорогой отладочный комплект, содержащий в себе небольшую микросхему программируемой логики (FPGA семейства Lattice iCE40) и скромный набор периферии для начала собственных экспериментов. Несмотря на всю продуманность и необычайную легкость работы с комплектом, я все равно для себя искал нечто более совершенное, и при этом не относящееся ни к Altera, ни к Xilinx, так как появились вполне весомые причины перехода на более мощные средства.

Таких причин было несколько: небольшая логическая емкость FPGA iCE40HX1K, отсутствие нужной мне периферии и некоторые другие. Однако самой главной причиной поиска лучшего стала все-таки периферия: представьте, как мне надоело мучаться с проводами на макетке, а также каждый раз подключать отладочный комплект к ноутбуку, боясь того, что одно резкое и неловкое движение — и переходнику USB на плате окончательный и бесповоротный конец !

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

Именно, эти обстоятельства подтолкнули меня поискать альтернативу, про которую я немного расскажу под катом.

Искать альтернативу было очень непросто: мне не хотелось менять свою, уже ставшую привычной среду разработки Icestudio на что-то другое и монструозное (да-да, привет Альтера и Зайлинкс !), и при этом нужно было сохранить уже существующие наработки и оставить для этого полностью открытый стек разработки под FPGA…

Чтобы решить проблему, я просто пробежался по меню Select > Board среды разработки Icestudio, дабы посмотреть список поддерживаемых плат. Выписав себе весь этот список, я прошелся по описаниям технических характеристик плат, а также по их ценовым характеристикам и наличию возможности быстро заказать необходимое. В плане характеристик все было очень просто: меня интересовало наличие как можно большего количества доступных для пользователя пинов/штырьков/разъемов, наличие нескольких светодиодов, кнопок/переключателей, возможности создания собственных модулей расширения с удобным форматом, удобный USB-разъем на плате и возможности периферии. Помимо этого, важнейшим фактором оказалась сама FPGA, установленная на плате, а именно ее логическая емкость — чем она больше, тем лучше.

После тщательного анализа, у меня получилось два идеальных кандидата на эту роль Alhambra II и BlackIce II, причем плата BlackIce II явно проигрывала ! Причиной проигрыша было отсутствие множества всякой вкусной периферии в BlackIce по сравнению с Alhambra II, а именно отсутствие АЦП и некоторых других возможностей, которые мне были очень нужны. Но, я заказал себе BlackIce II…

Почему ?

Да потому, что эту плату в разы проще заказать и при этом цена с учетом доставки в РФ будет меньше, а недостаток периферии компенсируется некоторыми иными особенностями платы, про которые я расскажу далее.

Итак, заказать плату проще всего с помощью сайта tindie.com, который подробно покажет плату и даже выведет ее стоимость в рублях. Также сайт не забудет вам предложить некоторые дополнительные опции, которые идут к плате — это прежде всего маленькие платы для прототипирования на PMOD-разъемах (PMOD — это шести-штырьковый разъем для подключения периферийных модулей, разработанный компанией Digilent, у которой собственно можно купить много таких любопытных модулей). Эти платы к заказу необязательны, но я все-таки заказал две штуки одного из доступных на тот момент типов.

Чтобы заказать на этом сайте плату не требуется какая-либо регистрация — достаточно будет лишь ввести некоторые свои данные (адрес доставки и способ оплаты) с использованием транслитерации (спасибо большое за помощь в этом вопросе Александру Алексееву) и оплатить сам товар с пересылкой посредством авиа-почты (суммарно получается ~ 4 521 руб). И все, отладочная плата будет отправлена авиа-почтой (стоимость около 8 долларов США).

Надо сказать, что доставка довольно быстрая: до меня плата шла всего 10 дней, однако, если вы думаете, что будете отслеживать посылку с BlackIce II, то вас тут ждет разочарование. Дело в том, что настырные англичане не дают трек-номеров для своей пересылке, хотя на приехавшем пакете он явно присутствует !

Пришедший пакет выглядит вполне обычно, если под вполне обычно понимать стандартные пересылки из Китая, т.к. Англия не мудрствуя лукаво решила не придумывать ничего нового и просто отправители BlackIce II взяли стандартный упаковочный пакет, накачали его воздухом  и отправили в Россию:

Открываем пакет и несколько удивляемся —  в комплект к плате положили USB-кабель необходимого формата:

Сама плата упакована в удобный антистатический пакетик, в который так любят продавцы радиодеталей:

Открываем антистатик-упаковку и достаем оттуда плату и набор макеток для реализации собственных PMOD-модулей (уж извините меня за тавтологию):

 

Вид платы Blackice II (A):

Вид платы Blackice II(B):

Вид платы снизу (со стороны припаянного разъема для SD-карты и микросхемы памяти):

Платы для макетированния разъемов для PMOD:

Еще вид плат для прототипирования:

А теперь посмотрим, что же есть в приобретенной плате:

  • FPGA iCE40HX4K в корпусе TQFP144 (3 520 логических ячеек);
  • Память BRAM 80 КБайт и 4 МБайт (256 К * 16) SRAM;
  • Микроконтроллер STM32 STM32L433RC6T с 256 КБайт Flash и 64 КБайт RAM;
  • 100 МГц осциллятор для FPGA и 12 МГц кварцевый резонатор для микроконтроллера;
  • SPI-мультиплексор между FPGA и микроконтроллером;
  • Разъем SD-карты, подключенный и к FPGA и к микроконтроллеру;
  • 2 USB-разъема: один для программирования FPGA, другой — для связи FPGA с компьютером;
  • 2 сдвоенных DIP-переключателя;
  • 2 кнопки, доступных для непосредственного использования и одна кнопка сброса платы;
  • 4 светодиода (все разного цвета !) и 1 светодиод статусного отображения (светодиод питания);
  • 6 сдвоенных PMOD-разъемов;
  • 2 одинарных PMOD-разъема;
  • Несколько Arduino-совместимых выводов + несколько выводов расширения;
  • «Гребенка выводов», совместимая с выводами Raspberry Pi;
  • Поддерживается в Icestudio и APIO;
  • Микроконтроллер служит средством загрузки конфигурации в микросхему FPGA, но может быть использован и для любых других целей;
  • Наличие конвертера UART на базе микросхемы CH340, к которой подключен второй USB-порт.

Согласитесь, что это очень вкусный набор за такую небольшую цену ?

Кроме того, плата может быть прошита (я имею в виду именно загрузку конфигурации для FPGA) аж тремя путями: с помощью обычного терминала, взаимодействующего с COM-портом (в микроконтроллер прошит загрузчик конфигурации iceboot, специально разработанный под данную плату); с помощью Icestudio и с помощью такой программы, как dfu-util. Про первый способ вы можете прочесть в блоге «Записки программиста», про третий способ я расскажу в одной из будущих статей (уникальность материала будет гарантирована — если хотите увидеть его скорее, то пишите в комментариях к этой статье или в нашей группе Вконтакте), ну а второй способ проще некуда, ведь он точно такой же как и в статье, посвященной iCEStick Evaluation Kit.

Однако, в завершение этого скромного обзора, загрузим первый проект в прибывшую плату. Честно говоря, я считаю, что обычное мигание светодиодом уже слишком заезженно и некруто, я предлагаю залить в плату более продвинутую версию этого Hello world’а от мира электроники и создать экспериментальный тест широтно-импульсной модуляции. Наi тест заставит один светодиод  плавно зажигаться, другой светодиод — плавно гаснуть, а третий светодиод будет эталонным и будет гореть постоянно. Сам тест будет использовать модули из моей коллекции, которые были выложены ранее на нашем сайте, а сам дизайн в Icestudio выглядит так (по сравнению c iCEStick не поменялось ничего, кроме коэффициента предделителя — он стал больше):

Загружаем и видим (жаль, фотография не передает динамики изменения свечения светодиодов):

Работает!

Как видите, начать работать с платой BlackIce II очень просто, а именно, точно также как и с платой iCEStick, кроме того, для платы доступен репозиторий со множеством примеров и качественно wiki по самым важным вопросам, в котором вы также можете найти последнюю версию iceboot (с инструкцией по самостоятельному обновлению) и что наиболее важно — схемотехнику самой платы с указанием конкретных назначений под каждый выход. Также, я рекомендую вам посмотреть блог «Записки программиста», а именно раздел FPGA, в котором содержится масса занимательных для изучения и экспериментирования вещей, а дизайн нашего примера в формате Icestudio вы можете загрузить здесь.

aquaratixc

Программист-самоучка и программист-любитель

Добавить комментарий