Сборник встраиваемых модулей на ПЛИС
Интереса ради сделал несколько простеньких модулей (аля платки для встраиваемых систем), про которые и хочу рассказать и поделиться исходниками, вдруг кому пригодится. Да, эта статья не про ПЛИСовую тематику, а что бы её немного разбавить, хотя кого я обманываю, модули же с ПЛИСами.
Про каждый модуль писать отдельно не вижу смысла, поэтому будет статья — сборник, а чтобы добавить наукообразия в текст, буду комментировать особенности разводки, если таковые будут. И предлагаю начать от сложного к простому.
Встраиваемый модуль (CORE V8)
Сталкивался с проблемой, что нужен модуль с относительно жирной ПЛИСой и абсолютно минимальной обвязкой, но на али существует такая тенденция, что чем более мощная ПЛИС распаяна на отладочной плате, тем больше вокруг нее всего, что иногда может быть лишним в конкретной ситуации. Например, SDRAM которую везде ставят рядом с BGA ПЛИСами, в большинстве случаев действительно нужна, но бывают редкие случаи, когда она лишняя, а нужно, например, как можно больше свободных ног. И даже если есть возможность не использовать лишний функционал без ущерба в количестве свободных выводов, то в любом случае происходит существенные потери в компактности модуля.
Другая ситуация, когда может понадобится модуль с большой ПЛИС и минимальной обвязкой — когда строится 3D система, в формате стека из модулей, например со сквозным соединением краевых разъемов. Такая концепция может применяться для адаптивности функционала 3D сборки — путем комбинации модулей: на одном ПЛИС с минимальной обвязкой, на другом банк SDRAM/SRAM, на следующем NAND накопитель, далее модуль питания со стабилизаторами, модуль интерфейсов и т.д. и т.п.
В общем в рамках озвученной концепции, как всегда в ночное время, родилась топология данного модуля под ПЛИС EP3C120F780, внешний вид модуля показан на рисунке 1.
Рисунок 1 — Встраиваемый модуль ПЛИС EP3C120F780 (CORE V8)
Гербер файлы платы, а также исходники представлены в архиве по ссылке в конце статьи *.
Модуль выполнен в 4 слоях, меньше для такого количества выводов просто не реально. Целевая технология печатной платы (ПП) — МПП со сквозной металлизацией переходных отверстий (ПО). Слои платы смешанные, так верхний слой отведен под трансляцию BGA выводов FPGA на остальные слои, а выводы первой очереди сразу на SMD площадки модуля. Внутренние слои МПП отведены под топологию цепей питания и земли, а также трассировку 2ой и 3ей очереди BGA выводов ИМС к разъемам модуля. Нижний слой отведен под посадку ИМС линейных стабилизаторов 1,2В и 2,5В, ИМС конфигурационной FLASH EPCS64, а также для посадки блокировочных конденсаторов формата 0402 (да мелко, но размещены так, что можно спаять и вручную). В нижнем слое так же разведены линии от выводов ИМС к разъемам модуля, что не уместились в остальных слоях. Полигоны земли, по возможности, залиты во всех свободных участках слоев для создания распределенной емкости сигнальных линий и линий питания. Иллюстрация топологии слоев показана на рисунке 2.
Рисунок 2 — Послойная топология встраиваемого модуля CORE V8
Карта периферийных выводов CORE V8 показана на рисунке 3.
Рисунок 3 — Карта выводом ИМС ПЛИС EP3C120F780 для модуля СORE V8
Модуль (встраиваемая система FMU)
Встраиваемый модуль, адаптированный для синтезируемого CPU ядра NMR, описанного в статье: https://habr.com/ru/articles/769916/
Модуль также построен на базе 4х-слойной ПП со сквозной металлизацией ПО. Старался сделать его максимально компактным и простым в самостоятельной пайке. Внешний вид модуля показан на рисунке 4, а его исходники и герберы по ссылке*.
Рисунок 4 — Встраиваемый FMU модуль
Все элементы модуля паяются максимально просто, в том числе вручную, ИМС ПЛИС — EP3C16Q240C8 (с осторожностью EP3C25Q240C8) имеет выводной TQFP корпус с 240 ножками. Две ИМС SRAM IS61WV1024 также выводные, блокировочные конденсаторы и резисторы подтяжки в удобных для ручной пайки корпусах 0805.
Кроме перечисленных элементов модуль содержит: конфигурационную FLASH EPCS16, загрузочную FLASH W25Q64, цепи питания и защиты со стабилизаторами на 1,2В и на 2,5В и набором фильтрующих конденсаторов по входу питания.
Послойная топология модуля показана на рисунке 5.
Рисунок 5 — Послойная топология встраиваемого FMU модуля
В плане топологии можно отметить сдвоенные ПО, для снижения их паразитных параметров, а также для повышения надежности соединения. Внутренние слои отведены в основном для линий питания и целостного земляного полигона. Принципиальная схема модуля показана на рисунке 6.
Рисунок 6 — Принципиальная схема FMU модуля
Модуль (система управления оборудованием Horizont V)
Модуль разрабатывался как некий автономный, исполнительный блок, оптимизированный под управление преобразователями (инверторами различной топологии). По посадочному месту модуль прямо совместим с популярным ранее (пока цены на него не стали кусаться) модулем с али, показанным на рисунке 7, но с существенно расширенным функционалом.
Рисунок 7 — Модуль прототип от Waveshare
Внешний вид модуля Horizont V показан на рисунке 8. Модуль отличается по посадке тем, что существуют дополнительные разъемы и убраны разъемы питания. Т.е. модуль стал более оптимален в формат встраиваемой концепции.
Рисунок 8 — Встраиваемый модуль системы управления Horizont V
В основе модуля лежит FPGA Cyclone IV EP4CE6E22 — минимальная ИМС данного семейства в корпусе TQFP144, что позволяет легко её напаивать вручную. Кроме FPGA на борту модуля есть интересная 8-канальная 16-битная АЦП с одновременной выборкой по всем каналам, со встроенной фильтрацией и частотой дискретизации 200КГц. На модуле есть 2 двухканальных драйвера мосфет формата IR4427, или аналоги по посадке в корпусе SO8, есть быстрый компаратор MAX999 с внешними цепями задания уровней. Естественно, присутствует система питания всех ИМС, размещенных на модуле: стабилизаторы, блокировка, фильтрующие конденсаторы, защита. Для ПЛИС есть загрузочная FLASH EPCS16, кварцевый генератор, выделенный разъем JTAG. Особенностью модуля так же является наличие посадочных мест под оптические приемник и передатчик HFBR-2521 и HFBR-1522 или аналогичных. Что позволяет использовать модуль в аппаратуре требующей серьезной помехоустойчивости и изоляции (Оптический канал также позволяет реализовать интерфейс SINT, описанный ранее https://habr.com/ru/articles/769986/ , в варианте без дифференциального вывода.)
Послойная топология модуля, показана на рисунке 9. Модуль выполнен на 4-слойной МПП со сквозной металлизацией ПО.
Рисунок 9 — Послойная топология встраиваемого модуля системы управления Horizont V
Модуль (PLISUINO) шилд к Arduino UNO
Просто модуль, содержащий неплохую CPLD MAXII EPM1270T144, на которой уже вполне можно сделать что-то интересное (1270 логических элемента, неплохая скорость и немного UFM). Кроме ПЛИС и всей необходимой для нее обвязки (генератор, питание), на модуле есть 3 мощных мосфета H8321, два мосфета послабее в SO8, 4 сдвоенных драйвера типа IR4427, 2 оптрона по входу PC123, пару светодиодов, RC фильтры для реализации ШИМ ЦАПов и заготовки под интерфейсы. Модуль почти без проблем стыкуется с платой Arduino UNO (нужны удлиненные PLS, а «аналоговую» колодку задействовать не нужно, по топологии если кто будет повторять все в принципе видно). Внешний вид модуля со всеми особенностями показан на рисунке 10.
Рисунок 10 — Модуль расширения для Arduino UNO
Соединения ATmega и модуля предполагается осуществлять по SPI. Послойная топология показана на рисунке 11. Модуль на основе двухсторонней ПП, пайка не сложная все пассивные элементы SMD 0805.
Рисунок 11 — Послойная топология встраиваемого FMU модуля
Функционал, заложенный в модуль, может сделать его удобным для управления преобразователями (инверторами различной топологии), шаговыми моторами, сервоприводами, исполнительными блоками на реле или своими силами коммутировать мощную нагрузку. Возможности ПЛИС позволяют взять часть функций на себя разгрузим МК, и оставим ему функцию контроля основного алгоритма.
Заключение
По разводке ПП, могу отметить несколько практических подходов которые использовались при разработке представленных модулей, а также общих рекомендаций:
· Не нужно мельчить, если речь не идет о очень тонких аналоговых цепях или СВЧ, нужно делать дорожки максимально широкими, что позволяет топология ПП, поэтому почти во всех модулях, представленных в статье довольно «жирные» сигнальные дорожки;
· Цепи питания лучше делать в формате полигонов, перекрывающих полигоны земли;
· ПО лучше делать по минимуму, чем их меньше, тем лучше, но если речь идет о надежности и минимальных паразитных параметрах, лучше их дублировать в непосредственной близости друг от друга;
· Для отведения тепловой мощности лучше использовать ПО совмещенный с SMD контактной площадкой (Это справедливо только для ручной пайки, для автоматической такое недопустимо, т.к. дозированный припой затянется В ПО);
· Удлиненные PLS позволяют очень дешево и просто делать многослойный бутерброд из плат;
· Есть большая разница в подходах разведения ПП между серийным производством и штучным, в статье все модули для единичного — ручного или DIY производства. Отказавшись от некоторых ограничений серийных плат, если делаете опытное оборудование или для себя, можно добиться намного лучших показателей надежности, компактности и прочих ТТХ, взамен технологичности;
· Не жадничать в слоях если нет особых требований к приемке ПП, слоев нужно столько — сколько нужно, получится надежнее и лучше. Цены на МПП сейчас адекватные…
Итого в статье я представил некоторые модули, для свободного использования тем, кому они могут пригодиться. Если будут запросы на такой формат статей (открытых и свободных для использования модулей) данный цикл статей можно продолжить.
П.С.: Кто будет использовать исходники — просьба не удалять лого ёжика!
* П.П. С.: ссылка на архив со всем необходимым по статье https://disk.yandex.ru/d/Gxe-id3I6c3rzQ.