http://vkorehovisback.livejournal.com/ (
vkorehovisback.livejournal.com) wrote in
engineering_ru2014-05-03 09:41 pm
Entry tags:
Как сделать PCI карту своими руками, Часть 2 (Электрическая)
Оригинал взят у
vkorehovisback в Как сделать PCI карту своими руками, Часть 2 (Электрическая)
Проект для Altium Designer можно найти здесь:
https://github.com/vkorehov/cnc
Плата четырехслойная. Один слой я выбрал сугубо для земли.
Все остальные используются зонно, то для питания то для сигналов.

хостинг картинок bmp
Не буду рассматривать сами компоненты специфичные для CNC. Опишу лишь особенности интерфейса с PCI
полная схема и BOM тут: http://www.pdfhost.net/index.php?Action=Download&File=67c22b41baefc72423ef202d48ecbabd
А вот часть где само подключение к PCI:

upload
PCI разрешает подключение только к одному "потребителю".
Т.е. Подключение должно быть напрямую к FPGA или PCI интерфейсу:
Длина проводников всех сигналов кроме PCI_CLK, должна быть не более 1.5''
PCI_CLK должен иметь длину 2.5" +/- 0.1", отсюда гармошка при трассировке.
Важно соединить контакту TCI с TDO чтобы не нарушать Boundary Scan цепочку материнской платы.
Особенно нужно остановиться на источнике питания.
Я использовал два высококачественных LDO, которые питаются только от +5V.
Также в разъеме есть контакты +3.3V и VIO (которое могут быть либо 3.3V либо 5V в зависимости от стандарта материнской платы)
Поскольку Spartan II является 5V толерантным при питании 3.3V, то напряжения VIO не используются.
Также на старых материнских платах не было питания 3.3V. Что также требует отдельного регулятора. Да и качество питания в ПК может быть не ахти.
все неиспользуемые выводы с напряжениями +3.3V, VIO, за исключение +/-12V подсоединены к bypass конденсаторам, что также является требованием PCI, так-как эти контакты образуют обратные пути для токов на линиях.
Как уже упоминалось очень важна низкоомный шунт в питании I/O и ядра FPGA.
Тут просто используется низкоомная обратная связь, так-же в цепях 5V (у которых нет регулятора) я использовал резистор 180 ом.
Это нужно для того, чтобы "связать" вместе плоскость земли и питания, дабы наведенные напряжения из вне не приводили к помехам на линиях.
Да, еще есть небольшой чип для формирования сигнала reset (отличного от сигнала PCI) он мониторит напряжение 2.5V и дает импульс reset когда оно достигает минимума 2.0V, вроде есть небольшая задержка.
Также импульс reset можно подать нажав кнопку на плате (это не имеет ничего общего с ресетом PCi)
так-же нужно отметить что я предусмотретл повторную инициализацию чипа при реконфигурации через JTAG (отдельной кнопкой PRG).
Это нужно если вы загрузили новую версию конфигурации в флеш память (а не в сам FPGA!) и вам нужно перечитать с помощью FPGA эту конфигурацию.
Вот схема узлов питания:

залить картинку
Плата ушка на изготовление, в следующей я расскажу о сборке платы.
https://github.com/vkorehov/cnc
Плата четырехслойная. Один слой я выбрал сугубо для земли.
Все остальные используются зонно, то для питания то для сигналов.

хостинг картинок bmp
Не буду рассматривать сами компоненты специфичные для CNC. Опишу лишь особенности интерфейса с PCI
полная схема и BOM тут: http://www.pdfhost.net/index.php?Action=Download&File=67c22b41baefc72423ef202d48ecbabd
А вот часть где само подключение к PCI:

upload
PCI разрешает подключение только к одному "потребителю".
Т.е. Подключение должно быть напрямую к FPGA или PCI интерфейсу:
Длина проводников всех сигналов кроме PCI_CLK, должна быть не более 1.5''
PCI_CLK должен иметь длину 2.5" +/- 0.1", отсюда гармошка при трассировке.
Важно соединить контакту TCI с TDO чтобы не нарушать Boundary Scan цепочку материнской платы.
Особенно нужно остановиться на источнике питания.
Я использовал два высококачественных LDO, которые питаются только от +5V.
Также в разъеме есть контакты +3.3V и VIO (которое могут быть либо 3.3V либо 5V в зависимости от стандарта материнской платы)
Поскольку Spartan II является 5V толерантным при питании 3.3V, то напряжения VIO не используются.
Также на старых материнских платах не было питания 3.3V. Что также требует отдельного регулятора. Да и качество питания в ПК может быть не ахти.
все неиспользуемые выводы с напряжениями +3.3V, VIO, за исключение +/-12V подсоединены к bypass конденсаторам, что также является требованием PCI, так-как эти контакты образуют обратные пути для токов на линиях.
Как уже упоминалось очень важна низкоомный шунт в питании I/O и ядра FPGA.
Тут просто используется низкоомная обратная связь, так-же в цепях 5V (у которых нет регулятора) я использовал резистор 180 ом.
Это нужно для того, чтобы "связать" вместе плоскость земли и питания, дабы наведенные напряжения из вне не приводили к помехам на линиях.
Да, еще есть небольшой чип для формирования сигнала reset (отличного от сигнала PCI) он мониторит напряжение 2.5V и дает импульс reset когда оно достигает минимума 2.0V, вроде есть небольшая задержка.
Также импульс reset можно подать нажав кнопку на плате (это не имеет ничего общего с ресетом PCi)
так-же нужно отметить что я предусмотретл повторную инициализацию чипа при реконфигурации через JTAG (отдельной кнопкой PRG).
Это нужно если вы загрузили новую версию конфигурации в флеш память (а не в сам FPGA!) и вам нужно перечитать с помощью FPGA эту конфигурацию.
Вот схема узлов питания:

залить картинку
Плата ушка на изготовление, в следующей я расскажу о сборке платы.
no subject
no subject
no subject
no subject
то есть один ватт в тепло - это "лишь бы не было наводок". Очень и очень оригинально, очень.
no subject
no subject
140 милливат всего.
Ладно, всего 140 милливатт в тепло. Один фиг, ЗАЧЕМ?
no subject
no subject
no subject
no subject
50 мА рекомендуют. Расточительство...
no subject
no subject
no subject
на многих чипах ставят clamping diodes
no subject
no subject
так-что придется перебороть себя...
no subject
no subject
no subject
no subject
no subject
no subject
no subject
ну и энд юзер пялится в экран linux CNC под которым весь этот motion работает.
no subject
no subject
no subject
оси спокойно показывают скорости абсолютно нормальные и пригодные для самопальных ЧПУ.
для остальных пуристов тоже есть рецепт - это MESA подобные решения (уже и под PCI-e).
карточки меса продаются свободно, имеют кучу обвязки и опенсорс .
ценник более чем гуманный.
кстати их лепят тоже на ксайлинксе.
дык собственно к чему этА многосерийная простыня ?
показать что аффтор может взять шаровую кору да смастерить платку ?
дык такого еще лет 10 назад полно было, даже 11 лет назад уже заказывали многослойки, в России кстати.
no subject
погрязли в потреблядстве..
no subject
Это нужно если вы загрузили новую версию конфигурации в флеш память (а не в сам FPGA!) и вам нужно перечитать с помощью FPGA эту конфигурацию.
помнится, у третьих спартанов при заливке конфигурационной флешки через ЖТАГ, была такая опция в софтине , автоматически загрузить саму ПЛИС после завершения прошивки. ;)
no subject
кроме того при использовании третьих совершенно нелогично не использовать 3AN со встроенным флешем
no subject
no subject
я пользуюсь digikey и никакой проблемы с тем чтобы достать даже Spartan II я не испытал.
а в шестой серии встроенный флеш есть?
3АN стоит около 16 долларов
чип флеш памяти и новый 6й будет стоить дороже явно.
кроме того конвертация уровней, кроиме того больше напряжений нужно делать при помощи LDO
no subject
вторая серия ещё производится? или это остатки какие-то?
no subject
no subject
no subject
CAN я не люблю, у меня ни где нет поддержки отладки его, не в анализаторе логики, ни в осциллографе.
no subject
а CAN отлаживать проще простого, если у вас есть ещё один CAN :) чип mcp2515 на SPI подвесить к любому МК. Да хоть к этой же плате, для отладки. Потом, когда отлаженное IP-ядро будет в распоряжении, чип можно убрать и полагаться целиком на ПЛИС.
Просто сам протокол он словно для таких задач и создан.
no subject
Параллельная уже отмирает совсем вся, слишком все таки непредсказуемая.