Настоящая электронная скрижаль про несколько экземпляров электронной «интеллигенции», которая абсолютно не предназначена для работы «в поле», «боится» механических воздействий, требовательна к питанию, но позволяет мне создавать и отлаживать алгоритмы работы целевого устройства в лабораторных условиях. Итак...
Одним из наиболее универсальных инструментов является отладочная плата на базе микроконтроллера Microchip PIC18F97J60 со встроенным Ethernet-контроллером: из имеющегося «на борту» практически всё удалось запустить одновременно. Куплена на очень полезном сайте из Поднебесной несколько лет назад.
От оригинала эту плату отличают только установленная батарейка и разъемы по периметру микроконтроллера, которые были впаяны для надстройки второго и последующих «этажей». Вот здесь возможно скачать архив файлов для одной из страниц, которую эта плата «отдаёт» по HTTP - «заходишь» через обычный браузер (Mozilla, Opera, Chrom или др.) и появляется одно из таких окошек: например, при нажатии на кнопку включается/выключается соответствующее реле, а правая панель обновляется автоматически через AJAX.
Изначально PIC-WEB-EK приобреталась для ускорения разработок на базе протокола TCP-IP взамен платы собственного производства с Ethernet-контроллером ENC28J60 (см. ниже), но потом аппаратные возможности на столько впечатлили, что теперь PIC18F97J60 используется для отладки не только «сетевых» задач.
Освободившаяся плата - надёжный друг, поэтому её вычислительные ресурсы были приспособлены для отладки внутренних схемных протоколов типа I2C, SPI, 1Wire, к которым нельзя напрямую подключить компьютер с волшебными снифферами и анализаторами трафика. Вот только для функционального завершения представленной ниже «экспозиции» пришлось изготовить ещё одну аналогичную плату, но с меньшим наполнением.
Концепция следующая: верхняя плата представляет собой разрабатываемое устройство, в составе которого находится, допустим, стандартный цифровой датчик от какого-нибудь именитого производителя с последовательным интерфейсом I2C. В соответствии с алгоритмом работы целевое устройство (верхняя плата) должна записывать и читать данные в/из этого датчика. Как проверить что там «поназаписано» в датчик? Просто: «подсунуть» ей аппаратный эмулятор с возможностью подключения к компьютеру. В результате: верхняя плата в обычном режиме обращается по I2C к датчику, а на самом деле информация попадает на нижнюю плату, из которой тематические данные можно «забирать» по USB в режиме on-line. Единственное неудобство такого подхода - нужно писать две «прошивки» как для основной платы, так и для эмулятора. Собственно, нижняя плата и являет собой один из описанных здесь(внизу) аппаратных «допов». LCD из состава «бутерброда» работает вот так:
Следующим многоцелевым инструментом является отладочная плата на базе программируемой матрицы Altera Cyclone IV - куплена тоже на Ebay в дополнение к существующим ПЛИСам, не столь богатым на периферию.
Проектов в чистом виде на CPLD или FPGA у меня нет, но вот для отладки высокоскоростных, высокочастотных алгоритмов, а также разработки иных с высокими требованиями к временным интервалам (измерения длительностей, счётчики импульсов, графический интерфейс) - инструмент незаменимый. Кроме того, вышеуказанные отладочные платы позволяют объединять вычислительные мощности от Microchip и Altera, но иногда процесс разработки требует вот таких «инсталляций».
Разработка систем регулирования на подобных платах (содержащих только «электронный мозг») невозможна без периферийных устройств: карты памяти, графические экраны, переключатели, реле и т.д. Эта унифицированная мелочёвка кочует между проектами в неизменном виде, поэтому для минимизации времени создания опытного образца иногда применяю готовые модули из электронных конструкторов.
А это надёжные и проверенные рабочие «лошадки» - универсальные программаторы всего моего цифрового «зоопарка» в виде PICkit3 от Microchip и USB-Blaster от Altera.
В практике российского инженера предпочтение отдаётся микроконтроллерам, так как при заявленной концепции практически всегда необходим человеко-машинный интерфейс на базе стандартных протоколов передачи данных. Реализация последних на ПЛИС возможна, но это обременяет конечное изделие либо невостребованными вычислительными ресурсами, либо избыточной аппаратной частью, что в конечном счёте гарантированно увеличивает ценник.