Здравствуйте, koandrew, Вы писали:
K>Я только что проверил — KiCAD до сих пор не умеет в относительные пути к библиотекам (хотя к 3D моделям они работают нормально)
Здравствуйте, Codealot, Вы писали:
C>Есть еще пара неясностей. Какой должна быть модель чипа QSPI Flash? Или это вообще без разницы?
Список поддерживаемых чипов тут: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug908-vivado-programming-debugging.pdf Appendix E таблица 43. Для чипа S25 нужно минимум 16 МБит, для S50 — 32 МБит. Я обычно ставлю 128 МБит (что-нить типа S25FL128LAGMFI010, или чего-то аналогичного, но в более компактном корпусе BGA-24, в текущем проекте я решил использовать BGA только там, где это абсолютно необходимо), ибо разница в цене не особо велика, а свободный объём можно использовать для хранения каких-то данных приложения (FPGA может получить доступ к флешке после завершения загрузки) — например, там часто хранят код для софт-процессора Microblaze (в этом случае в локальную память FPGA, которая является частью битстрима, зашивают небольшой загрузчик, который считывает основной код с флешки в основную RAM и запускает его на выполнение).
C>J4 — он зачем?
Это был прототип коннектора GPIO, сейчас я заменил его на "продакшен"-версию — 2х15, туда вывел все свободные пины FPGA (24 штуки), плюс питание 3,3 и 5 В.
C>И если уж плата довольно сильно разрослась — может, стоит туда и USB-JTAG поставить?
К сожалению, с этим всё сложно. Дело в том, что Vivado позволяет работать только со своими родными программаторами, плюс модулями от Digilent. Так что если хочется сделать плату со встроенным мостом USB-JTAG, то придётся покупать модуль у Digilent, однако он стоит столько же, сколько и отдельный кабель-программатор JTAG-HS3, так что тратить деньги на отдельные модули для каждой платы я не вижу смысла — мне проще обойтись одним кабелем JTAG-HS3. В принципе JTAG-часть можно завести и с неродным мостом, но все продвинутые фичи Vivado (дебаг железа, логический анализатор, удалённое управление некоторыми шинами внутри FPGA "наживую", заливка битстрима на флешку, и т.п.) работать не будут. Короче, оно того не стоит — лучше один раз купить кабель JTAG-HS3 и забыть про эту проблему навсегда.
----------
Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи
Здравствуйте, koandrew, Вы писали:
K>Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи
Здравствуйте, Codealot, Вы писали:
C>Это Спарта!!!????
Ну надо же было как-то назвать платку — вот такой вариант мне показался подходящим Плата "Спарта" с чипом "Спартан-7" (спартанец)
Кстати, тока сейчас заметил мелкий косяк — забыл добавить подписи к двум нижним кнопкам. Я уже поправил в файле борды.
Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"
У этого чипа этот пин не является силовым и нужен в основном для отвода тепла, так что по идее можно сделать перемычку с обратной стороны. Я уже поправил в гите и символ, и исправил плату (а заодно добавил открытую заливку "земли" на обратной стороне). Других ошибок вроде нет, так что думаю, стоит ли рискнуть и собрать эту плату, или всё же заказать вторую ревизию и проверять уже на ней.
Здравствуйте, koandrew, Вы писали:
K>Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"
Как говорят , первый блин всегда комом.
Интересно как проверяете плату?
Здравствуйте, Iso12, Вы писали:
I>Как говорят , первый блин всегда комом.
Да уж
I>Интересно как проверяете плату?
В смысле? Как обычно — мультиметром
I>Успехов
Спасибо! Заказал ревизию Б. Надеюсь в этот раз все пройдёт успешнее.
Прошу прощения за аццкие задержки — тут навалились заказы, и было не до чего.
Итак, сегодня я собрал ревизию B, и, как водится, без преключений не обошлось:
1. Светодиоды FPGA_DONE и POWER_GOOD подключены не в той полярности. Причём этот косяк кочует у меня из схемы в схему, просто при сборке я всегда ставил их наоборот, и потому всё работало
2. Кнопка сброса питания была подключена таким образом на схеме, что она оказалась закорочена Тоже хз, как я умудрился просмотреть это в схеме.
Все эти косяки я поправил на гитхабе, но поскольку я нашёл их уже после того, как собрал ревизию B, то пришлось исправлять прямо "наживую" Светодиоды я выпаял hot air gun'ом и перевернул, а КЗ у кнопки исправил, отрезав скальпелем лишние соединения.
В итоге плата ЗАВЕЛАСЬ! Уже проверил RGB-диоды, кнопки и, конечно, память DDR2. Собственно, мне больше всего было интересно проверить, что память заработает, т.к. всё остальное достаточно тривиально. Осталось только проверить HDMI OUT, в ближайшее время наваяю какой-нить простой тест.
Насчёт сборки: реально геморная часть тут — это 18 ОЧЕНЬ мелких кондёров типоразмера 0201, всё остальное вполне реально собрать вручную, если есть какое-либо увеличительное устройство. Если вдруг кто-то желает попробовать заменить их все на 0402 — я буду крайне признателен, если поделитесь результатом. Главное условие — нельзя двигать дорожки, относящиеся к DDR2, ибо их длина имеет значение.
Я залил на гитхаб сборочный документ, по которому я собственно и собирал (он сгенерирован самописной утилиткой, исходники её тоже на гитхабе в другом публичном репо). Также добавил в схему примечания по поводу чипа QSPI flash для хранения битстрима, и по поводу используемого чипа оперативки (я на свой экземпляр поставил максимально поддерживаемый объём — 2Гбит, или 256 Мбайт — но в принципе можно поставить и меньший объём, главное, чтобы шина была 16-битной).
В общем, если есть желающие сделать себе такую же, то можно уже заказывать ревизию C. Плата разведена под JLCPCB.com, при заказе ОЧЕНЬ ВАЖНО выбрать опцию "Impedance: YES", и выбрать stackup "JLC2313" (т.к. геометрия дорожек для DDR2 подобрана под этот стекап). Плата размером 72х89 мм, рекомендую выбрать Surface Finish: ENIG, итого 10 плат стоит в настоящий момент $43.5 (+ доставка).
И ещё — если поставите чип S50 и загрузите его по полной программе, вполне вероятно, что он будет серьёзно греться, потому рекомендую прикупить какой-нить небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).
Апдейт: проверил HDMI OUT — всё работает нормально, и даже выдаёт 1080p после оверклока (буфер специфицирован до 628 МГц, я его гоняю на 742,5 МГц). Правда греется чип аццки (я сбросил, когда температурный сенсор на кристалле начал зашкаливать за 90°С). Завтра попробую поставить радиатор. HDMI DDC тоже работает как положено.
Здравствуйте, koandrew, Вы писали:
K>небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).
При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?
Здравствуйте, koandrew, Вы писали:
K>Также добавил в схему примечания по поводу чипа QSPI flash для хранения битстрима, и по поводу используемого чипа оперативки
Кстати — нигде не могу найти, какой частоты должен быть осциллятор.
Здравствуйте, Codealot, Вы писали:
C>При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?
Это канаццкие баксы (1 американский ~ 1.3 канаццких), и это цена за комплект с радиатором, пластиковой "обёрткой" для чипа и металлической скобы для крепления радиатора.
Здравствуйте, Codealot, Вы писали:
C>Кстати — нигде не могу найти, какой частоты должен быть осциллятор.
Я поставил 100 МГц, конкретно DSC6102CI2A-100.0000T т.к. из этой частоты удобно генерировать частоты в 166.667 и 200 МГц, необходимые для контроллера памяти DDR2. Но вообще ты можешь поставить любой, какой тебе нужен, лишь бы он был в корпусе 3.2х2.5 мм и имел совместимую распиновку.