Re[14]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 23:14
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Открывается, но вместо тех символов — квадрат и "???"


Значит поломали
[КУ] оккупировала армия.
Re[15]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 23:37
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Значит поломали


Чтобы этого не происходило — надо добавить ссылку на либу. Тогда такой проблемы нет.
Ад пуст, все бесы здесь.
Re[16]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.12.19 14:51
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Чтобы этого не происходило — надо добавить ссылку на либу. Тогда такой проблемы нет.


Я только что проверил — KiCAD до сих пор не умеет в относительные пути к библиотекам (хотя к 3D моделям они работают нормально)
[КУ] оккупировала армия.
Re[17]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 10.12.19 18:47
Оценка: 3 (1)
Здравствуйте, koandrew, Вы писали:

K>Я только что проверил — KiCAD до сих пор не умеет в относительные пути к библиотекам (хотя к 3D моделям они работают нормально)


Надо писать так:
(sym_lib_table
  (lib (name my_parts)(type Legacy)(uri ${KIPRJMOD}/../../kicad-library/symbols/my_parts.lib)(options "")(descr ""))
)

Опен сорс, сэр
Ад пуст, все бесы здесь.
Re[18]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.12.19 20:44
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Опен сорс, сэр


Спасибо — пофиксил. Теперь осталось доразводить.
[КУ] оккупировала армия.
Re[19]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.12.19 21:00
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Спасибо — пофиксил. Теперь осталось доразводить.


Есть еще пара неясностей. Какой должна быть модель чипа QSPI Flash? Или это вообще без разницы?
J4 — он зачем?

И если уж плата довольно сильно разрослась — может, стоит туда и USB-JTAG поставить?
Ад пуст, все бесы здесь.
Re[20]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 06:27
Оценка: 6 (2)
Здравствуйте, 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 и забыть про эту проблему навсегда.
----------
Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи
[КУ] оккупировала армия.
Re[21]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.12.19 16:18
Оценка: 2 (1)
Здравствуйте, koandrew, Вы писали:

K>Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи


Желаю
Ад пуст, все бесы здесь.
Re[22]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 18:05
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Желаю


Спасибо! Плату уже приняли к производству, так что процесс пошёл!

Сделал тут рендеры платы рейтрейсером, который добавили в KiCAD в 5 версии:
  Внимание! Большие фотки!


[КУ] оккупировала армия.
Re[23]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.12.19 20:59
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Сделал тут рендеры платы рейтрейсером, который добавили в KiCAD в 5 версии:


Это Спарта!!!????
Ад пуст, все бесы здесь.
Re[24]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 21:18
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>Это Спарта!!!????

Ну надо же было как-то назвать платку — вот такой вариант мне показался подходящим Плата "Спарта" с чипом "Спартан-7" (спартанец)

Кстати, тока сейчас заметил мелкий косяк — забыл добавить подписи к двум нижним кнопкам. Я уже поправил в файле борды.
[КУ] оккупировала армия.
Отредактировано 13.12.2019 21:24 koandrew . Предыдущая версия .
Re: Пришли платы ревизии А
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 24.12.19 04:48
Оценка: 6 (2)
Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"
У этого чипа этот пин не является силовым и нужен в основном для отвода тепла, так что по идее можно сделать перемычку с обратной стороны. Я уже поправил в гите и символ, и исправил плату (а заодно добавил открытую заливку "земли" на обратной стороне). Других ошибок вроде нет, так что думаю, стоит ли рискнуть и собрать эту плату, или всё же заказать вторую ревизию и проверять уже на ней.

Синдром первой ревизии strikes again

Сами платы выглядят отлично:
  Большие картинки

[КУ] оккупировала армия.
Отредактировано 24.12.2019 4:57 koandrew . Предыдущая версия .
Re[2]: Пришли платы ревизии А
От: Iso12  
Дата: 26.12.19 13:55
Оценка: 2 (1)
Здравствуйте, koandrew, Вы писали:

K>Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"


Как говорят , первый блин всегда комом.
Интересно как проверяете плату?

Успехов
Re[3]: Пришли платы ревизии А
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 27.12.19 14:58
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Как говорят , первый блин всегда комом.

Да уж

I>Интересно как проверяете плату?

В смысле? Как обычно — мультиметром

I>Успехов

Спасибо! Заказал ревизию Б. Надеюсь в этот раз все пройдёт успешнее.
[КУ] оккупировала армия.
Отредактировано 28.12.2019 3:19 koandrew . Предыдущая версия .
Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 27.01.20 04:18
Оценка: 3 (1)
Прошу прощения за аццкие задержки — тут навалились заказы, и было не до чего.

Итак, сегодня я собрал ревизию 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 и загрузите его по полной программе, вполне вероятно, что он будет серьёзно греться, потому рекомендую прикупить какой-нить небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).

  Большие фотки

[КУ] оккупировала армия.
Отредактировано 27.01.2020 18:52 koandrew . Предыдущая версия .
Re: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 28.01.20 05:42
Оценка:
Здравствуйте, koandrew, Вы писали:

Апдейт: проверил HDMI OUT — всё работает нормально, и даже выдаёт 1080p после оверклока (буфер специфицирован до 628 МГц, я его гоняю на 742,5 МГц). Правда греется чип аццки (я сбросил, когда температурный сенсор на кристалле начал зашкаливать за 90°С). Завтра попробую поставить радиатор. HDMI DDC тоже работает как положено.
[КУ] оккупировала армия.
Re: Собрал ревизию B
От: Codealot Земля  
Дата: 02.02.20 18:26
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).


При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?
Ад пуст, все бесы здесь.
Re: Собрал ревизию B
От: Codealot Земля  
Дата: 02.02.20 22:33
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Также добавил в схему примечания по поводу чипа QSPI flash для хранения битстрима, и по поводу используемого чипа оперативки


Кстати — нигде не могу найти, какой частоты должен быть осциллятор.
Ад пуст, все бесы здесь.
Re[2]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 05:46
Оценка:
Здравствуйте, Codealot, Вы писали:

C>При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?


Это канаццкие баксы (1 американский ~ 1.3 канаццких), и это цена за комплект с радиатором, пластиковой "обёрткой" для чипа и металлической скобы для крепления радиатора.
[КУ] оккупировала армия.
Re[2]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 05:49
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати — нигде не могу найти, какой частоты должен быть осциллятор.


Я поставил 100 МГц, конкретно DSC6102CI2A-100.0000T т.к. из этой частоты удобно генерировать частоты в 166.667 и 200 МГц, необходимые для контроллера памяти DDR2. Но вообще ты можешь поставить любой, какой тебе нужен, лишь бы он был в корпусе 3.2х2.5 мм и имел совместимую распиновку.
[КУ] оккупировала армия.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.