Разработка приложений для СнК SmartFusion2 с использованием Libero SoC и SoftConsole.
Часть 11. Бюджетный программатор-отладчик для ПЛИС и СнК Microsemi
Как правило, крупные производители ПЛИС, СнК и микроконтроллеров самостоятельно не выпускают оборудование для отладки своих микросхем, а отдают их изготовление на сторону. Сторонние предприятия, стремясь увеличить прибыль, устанавливают довольно высокую цену на продукцию, разумно полагая, что для солидных компаний, занятых созданием электроники, $100-150 за программатор не является неподъемной суммой. Но стоимость, приемлемая для крупной фирмы, может оказаться значительной для небольшой организации и просто заградительной для радиолюбителей, в среде которых часто и рождаются прорывные идеи.
Другое отрицательное следствие высокой стоимости средств отладки — снижение свободы в гибкости при решении технических задач. Приобретая однажды средства отладки для ПЛИС или микроконтроллера одного бренда, компания в дальнейшем ориентируется на продукцию именно этого производителя и меньше знакомится с новинками, появляющимися на рынке. Если выбранный производитель сможет быстро подстраиваться под требования рынка и вовремя выпускать в свет новые микросхемы с нужными функциями, компанию ждет успех и процветание. Если нет, в какой-то момент компании придется изучать продукцию других изготовителей микросхем или… кануть в Лету.
Впрочем, даже если предприятие, выпускающее микросхемы, выбрано удачно и долгие годы удерживает лидирующие позиции в своем сегменте, нет ни одного производителя микросхем, который был бы лидером по всем существенным параметрам: одни микроконтроллеры или СнК недостаточно быстрые, другие не слишком надежные, третьи чересчур много потребляют и требуют охлаждения. А проекты, как известно, бывают разные. В одном ключевым параметром является скорость обработки больших объемов данных, в другом низкое потребление, в третьем сочетание в одном устройстве лучших свойств микросхем различных производителей. В результате при решении сложных задач разработчику встраиваемых систем приходится использовать чипы целого ряда производителей и, как следствие, иметь под рукой внушительный набор программаторов‑отладчиков к ним.
Идеальным вариантом решения проблемы «шкафа с программаторами» была бы возможность использовать один универсальный программатор-отладчик для микросхем различных производителей. Действительно, большинство микроконтроллеров СнК и ПЛИС содержат в своем составе контроллер интерфейса JTAG. Если возложить на программатор исключительно функцию аппаратного преобразователя интерфейсов USB-JTAG, а всю сложную работу по инициализации регистров JTAG-котроллера, встроенного в микросхему процессора и отладчика ПЛИС, — на программное обеспечение среды разработки и драйвер программатора, то вполне можно было бы применять один физический программатор для программирования и отладки микросхем различных брендов. Чтобы программные средства отладки распознали в таком универсальном программаторе отладчик конкретного типа, перед началом работы необходимо зашить в ПЗУ программатора идентификаторы Vendor ID, Product ID (VID, PID), после чего при подключении к компьютеру данного устройства операционная система сама распознает его и загрузит в память соответствующий драйвер. То есть сделает все необходимое, чтобы пользователь смог работать с подключенным девайсом как с родным программатором выбранного производителя.
Правда, для этого нужно, чтобы изготовители микросхем перенесли все специфические функции работы со своими чипами из логической микросхемы внутри программатора на уровень драйвера программатора.
С выходом программатора FlashPro5 компания Microsemi [3] реализовала перенос поддержки своих микросхем СнК и ПЛИС на уровень драйвера операционной системы, открыв тем самым возможность сборки бюджетных версий программаторов — отладчиков кода ВПО для ПЛИС и СнК Microsemi, в том числе и радиолюбителям (что называется, дома на коленке).
Как правило, для создания таких программаторов используют микросхемы FTDI2232H и FTDI4232H, представляющие собой конфигурируемый преобразователь интерфейса USB 2.0 в SPI/I2C/JTAG. Отличаются микросхемы количеством многоцелевых портов: в FTDI2232H их два, а в FTDI4232H — четыре. Подробно о функционале микросхем можно узнать в спецификациях [1, 2].
Принципиальная схема универсального бюджетного программатора представлена на рис. 1. Параметры настроек микросхемы FTDI4232H и USB-порта, такие как VID, PID, Product description, хранятся в памяти EEPROM M93C46‑WMN6P, подключаемой к FTDI4232H по выделенному интерфейсу SPI. Для удобства задания параметров компания предлагает утилиту с графическим интерфейсом FT Prog.
Файл прошивки для M93C46‑WMN6P с настройками FTDI4232H, позволяющий использовать универсальный программатор в качестве программатора — отладчика ПЛИС и СнК Microsemi FlashPro5, доступен для скачивания по ссылке [4].
Если заниматься разработкой печатной платы и монтажом элементов нет времени или желания, можно купить готовый экземпляр программатора ООО «ПСР Актел» (рис. 2), который соответствует принципиальной схеме, изображенной на рис. 1.
В документации на FTDI4232H и FTDI2232H описано применение микросхем в качестве программаторов ПЛИС Altera и Xilinx. Таким образом, имея всего одну аппаратную реализацию универсального бюджетного программатора и набор прошивок EEPROM, можно работать с несколькими десятками наименований ПЛИС и СнК как минимум трех основных производителей ПЛИС и СнК в мире.
Также на просторах Интернета не трудно найти описание аналогичных устройств, действующих в качестве программаторов и отладчиков микроконтроллеров AVR и ARM [5, 6], что позволяет дополнительно расширить применение данного программатора на десятки семейств логических микросхем.
- www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf
- www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf
- www.microsemi.com/products/fpga-soc/design-resources/programming/flashpro
- www.drive.google.com/file/d/1clDyBxkaGIYbFFpypKMAfG7mRUfgehl_/view?usp=sharing
- www.geektimes.ru/post/258278/
- www.microsin.ru/content/view/1324/43/