Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по Spartan 3e
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Женя
Доброго времени суток всем!

Надеюсь не перевелись еще хорошие люди на страницах рунэта
Нужна помощь, сижу голову ломаю не первый день, прочитал (наверное уже мегабайты) статей, так что глаза в мозолях smile3046.gif

Ситуация такая- имеется ПЛИС Spartan 3e. Необходимо запрограммировать его так, чтобы он был как бы переходником. Подключаешь через USB-шник его к ПК, и комп определяет его как новое устройство, с другой стороны, чтобы комп еще определял устройство, подсоединенное через Com порт, к ПЛИСу(любой из SPI, UART, I2C).


Пока я понял вот что. Получается мне надо:
1.написать дрова на него (я так понял, на С/С++ можно через Borland C++ наверное оптимальнее всего)
2.запрограммировать саму эту штуковину и на USB и на COM порт (код надо на VHDL). Вот тут не совсем понятно- получается можно либо просто кодом делать(тогда отладку можно будет сделать прямо без платы), либо нужна схема проектируемого устройства, которую прога (не знаю какая лучше) потом переведет уже в код.

В этом, как Вы уже поняли, я новичок. Буду неимоверно благодарен, если кто передаст знания молодому поколению, даст какие- нибудь советы, статьи там или подскажет что- нибудь. 1111493779.gif В особенности со схемой. Дело очень важное.
Я нарыл тут какую то схему- она подойдет мне или нет?

gk2
Вообще то для этого ПЛИС не нужна - есть микросхемы реализующие требуемое.
Например FT232R, FT2232D, FT2232H - http://www.ftdichip.com/Products/ICs/FT2232H.htm
с готовыми драйверами. Или подобные других производителей.



А если все же нужна ПЛИС, то http://www.ftdichip.com/Support/Documents/...fpga-ds-v13.pdf
Apast
Не совсем понятна, задача. Все можно реализовать, как Вам уже сказали без использования ПЛИС, из вашей же схемы один CY7C68013A - может потянуть все упомянутые задачи. Собственно это 51 микроконтроллер с USB 2.0 контроллером на борту, и реализовать с другой стороны UART, I2C или SPI это уже чисто программная задача.
Реализовать USB, чисто средствами ПЛИС, даже используя внешний приемопередатчик (есть такие), достаточно сложная задача, и требует достаточно больших ресурсов матрицы, хотя и решаемая.
Что касается схемы, то да эта схема работоспособная (похоже она от программатора USB - JTAG).
Я сам достаточно часто использую такую связку CY7C68013A + XILINX (Spartan 3, Spartan 3e), но уменя матрица занимается управлением сбором и буферезацией данных для разнообразных оптических многоэлементных линеек и матриц, а CY7C68013A - интерфейс с РС.
Женя
Большое человеческое спасибо, за Ваше потраченное время, на мои вопросы.

Цитата(Apast @ Sep 6 2011, 12:51) *
Собственно это 51 микроконтроллер с USB 2.0 контроллером на борту, и реализовать с другой стороны UART, I2C или SPI это уже чисто программная задача.
Что касается схемы, то да эта схема работоспособная (похоже она от программатора USB - JTAG).


да, Вы правы, схема от программатора JTAG.

Суть вопроса вот в чем. Мне сказали, что есть, собственно, сама ПЛИС. есть переходник USB на нее. нужно сделать так, чтобы когда я подключал ее к компу, а к ней ЧТО ТО через Com порт, то комп определял это ЧТО ТО. В общем,как я понимаю, чтобы были организованы протоколы USB на выходе, а SPI(UART,I2C) на входе. То есть запрогать ее на USB, и еще ножки на Com. Но для этого(как я опять же предполагаю) необходима схема ее работы, чтобы уже по ней и составить код на VHDL. Вот сижу убиваюсь над самоучителем wacko.gif

Может еще есть какие мысли? или разъясните насчет схемы? правильно я понимаю- ПЛИС будет делать то, на что ее запрограммируешь, то есть можно как бы составить схему ее работы?
Apast
Цитата(Женя @ Sep 6 2011, 19:22) *
Может еще есть какие мысли? или разъясните насчет схемы? правильно я понимаю- ПЛИС будет делать то, на что ее запрограммируешь, то есть можно как бы составить схему ее работы?

Да вы правильно понимаете, можно представить ПЛИС как набор неких элементов из которых можно составить необходимую вам схему,
в том числе на ней можно реализовать контроллер UART.
А вот дальше все сложнее, вам нужно разобраться с принципами работы USB шины, там есть понятие ренумерации устройств. Т.е. устройство в момент подключения (или будучи уже подключено и определено в системе определенным образом) "заставляет" систему вычитывать параметры идентифицирующие устройство из него же самого. Т.е. в первый момент ваше устройство онределяется ситемой, предположим, как переходник USB-UART. Дальше уже само устройство под управлением встроенного софта (или "железного" алгоритма) должно определять подключения чего-то через UART (методом опроса, запроса и т.д.) и выполнять ренумерацию (переподключение) уже с параметрами другого устройства подключенного по UART. Возможно немного запутанно - но это так.
Еще учтите что при любом изменении типа устройства на USB, будет запрашиваться драйвер под эти параметры.
XVR
Цитата
а к ней ЧТО ТО через Com порт, то комп определял это ЧТО ТО.
Это банальный переходник USB->COM
Цитата
чтобы были организованы протоколы USB на выходе, а SPI(UART,I2C) на входе.
Это опять же переходник USB->SPI/I2C.
Осталось понять, как должны были быть связанны 1 и 2, т.к. COM это никоим боком не SPI и не I2C. Как вы собирались подключать SPI/I2C к COM?
VladimirB
Цитата(Женя @ Sep 5 2011, 23:47) *
Доброго времени суток всем!
Надеюсь не перевелись еще хорошие люди на страницах рунэта
Нужна помощь, сижу голову ломаю не первый день, прочитал (наверное уже мегабайты) статей, так что глаза в мозолях...


Первым делом надо отделить мух от котлет.
Если надо сделать быстро работоспособное устройство - то можно купить за 100 рублей китайский переходник COM-USB или взять кипарис CY7C68013A или какой-нибудь PIC c USB илм FTDI м быстро на нём сваять девайс.

Если вы студент и это задание на курсовую или диплом - то приготовьтесь много читать и думать. Знания у вас нулевые и в VHDL и в написании "драйверов на Borland С++", а сделать нужно много.
Женя
Цитата(XVR @ Sep 7 2011, 16:14) *
Осталось понять, как должны были быть связанны 1 и 2, т.к. COM это никоим боком не SPI и не I2C. Как вы собирались подключать SPI/I2C к COM?


Уже прочитал несколько статей про протоколы. Спасибо за замечание, понял ошибку свою.

Цитата(VladimirB @ Sep 7 2011, 22:05) *
Если надо сделать быстро работоспособное устройство - то можно купить за 100 рублей китайский переходник COM-USB или взять кипарис CY7C68013A или какой-нибудь PIC c USB илм FTDI м быстро на нём сваять девайс.

Если вы студент и это задание на курсовую или диплом - то приготовьтесь много читать и думать. Знания у вас нулевые и в VHDL и в написании "драйверов на Borland С++", а сделать нужно много.


Да, Вы правы. Студент. И, опять же Вы правы. знания в этом нулевые. но мне это очень интересно. и я уже многое читаю сижу. прихожу с учебы- и опять за это дело сажусь.
Задание именно сделать это все на Spartan 3e.


Схемы может, или прошивки, если есть готовые, может кто подкинет?
И еще- какой интерфейс легче всего описать? UART, SPI, I2C или RS232? мне любой из этих можно. или они одинаковые практически?

Для отладки сказали нужно, чтобы с 2х сторон компы подключил, и передался пакет данных с одного компа на другой

омайгад...как же плохо быть пустоголовым в чем- то(это я о себе)...жаль нельзя как в фильмах, подключился к компу и в мозг перегнал себе знания santa2.gif


эх...2 недели...
VladimirB
Цитата(Женя @ Sep 7 2011, 22:57) *
...
Да, Вы правы. Студент. И, опять же Вы правы. знания в этом нулевые. но мне это очень интересно. и я уже многое читаю сижу. прихожу с учебы- и опять за это дело сажусь.
Задание именно сделать это все на Spartan 3e.
...


2 недели мало. Для работы с ПЛИС люди годами мозг себе напильником затачивают.
А вообще вы узнайте поточнее в каком виде "есть ПЛИС и переходник USB для неё" и что они из себя представляют. Может вам повезло и это готовая отладочная плата, а может набор микросхем в пакетике.

HDL ядра COM-порта (UART) имеются в большом количестве на Opencores.org
также есть хорошее ядро UARTa в исходниках для пикоблейза от Кена Чапмана на сайте xilinx.com.
Но по опыту: студент уже не торт пошёл нынче и может даже самую простую задачу по вставлению готового ядра в проект загубить на корню.

Женя
Цитата(VladimirB @ Sep 7 2011, 23:23) *
2 недели мало. Для работы с ПЛИС люди годами мозг себе напильником затачивают.
А вообще вы узнайте поточнее в каком виде "есть ПЛИС и переходник USB для неё" и что они из себя представляют. Может вам повезло и это готовая отладочная плата, а может набор микросхем в пакетике.


Мне повезло) есть ПОЛНОСТЬЮ готовая плата, со всеми разъемами и переходниками. задача просто ее запрогать и написать драйвера на компьютер.

Чтобы это было примерно вот как:

Картинка внизу.
Допустим выбран протокол SPI.

Пристыковали комп
кидаем пакет- он преобразуется в USB
это все загоняется в буфер.
затем из буфера идет пакет в преобразователь SPI
и вот этот пакет чтобы конечный был в SPI. и подавался на выход Tx.


Вот может кто подскажет схему этого всего? а то я нашел великое множество этих схем уже, но не знаю какая куда годится


И еще вопрос. разъясните пожалуйста. допустим я нашел схему контроллера- преобразователя интерфейса USB->SPI. могу ли я использовать схему эту для прогания моего Спартана 3е? или нужна схема именно под спартан, так как ножки разные?

Еще где то прочитал, что на спартаны UART реализовать не получится, так ли это??
Hoodwin
А если сделать правильный класс устройства, то подойдут стандартные драйвера, которые уже есть в компьютере. Драйвер последовательного порта есть, драйвер HID-устройства есть. Вам в две недели не хватает еще за DDK сесть...
XVR
Цитата
Вот может кто подскажет схему этого всего?
У вас же есть готовая плата. Вот ее схему и берите.
Цитата
могу ли я использовать схему эту для прогания моего Спартана 3е?
У вас там (насколько я понял) кроме Спартана еще и Кипарис стоит. Если все это будет в той схеме, что вы нашли - то скорее всего ее можно будет адаптировать под вашу плату.
Цитата
или нужна схема именно под спартан, так как ножки разные?
Ножки у Спартана можно засунуть куда угодно (ну почти куда угодно), так что это не проблема
Цитата
Еще где то прочитал, что на спартаны UART реализовать не получится, так ли это??
Нет, не так. UART довольно примитивный интерфейс. Вот RS232 реализовать только на Спартане не получится - поплохеет ему от +/- 12В sm.gif
VladimirB
Цитата(Женя @ Sep 8 2011, 02:03) *
Мне повезло) есть ПОЛНОСТЬЮ готовая плата, со всеми разъемами и переходниками. задача просто ее запрогать и написать драйвера на компьютер.

Дык вы можете по человечески рассказать людям, что за плата, что на ней стоит, выложить её схему или фото или название.
А то постов в теме уже много, а телепаты всё не могут угадать, что у вас есть.
Женя
Цитата(VladimirB @ Sep 8 2011, 15:17) *
Дык вы можете по человечески рассказать людям, что за плата, что на ней стоит, выложить её схему или фото или название.
А то постов в теме уже много, а телепаты всё не могут угадать, что у вас есть.



Плата сама внизу

Немного не понимаю- когда я пишу драйвер для USB- то это как бы универсальный драйвер? Просто я нашел тут способ прямо пошаговый как драйвер и ПО забацать.

http://www.fpga-cpld.ru/build.html

Подскажите, Способ, который описан тут, подойдет мне для моего Spartan 3e?

и вот на этом же сайте есть как с помощью схемы запрогать сам ПЛИС.
http://www.fpga-cpld.ru/sapr1.html

Разъясните пожалуйста, Если стоит цель ИЗ ПЛАТЫ СДЕЛАТЬ ПРОСТО ПРЕОБРАЗОВАТЕЛЬ ИНТЕРФЕЙСА USB-> UART(либо SPI,либо IIC), то КАКИЕ ИМЕННО шаги мне надо сделать? а то я уже совсем запутался.

Мне нужна схема(так как VHDL я только начал учить)-это я знаю точно

НО! Схемы мне нужно 2? для самого интерфейса USB, и еще одна, которая переводит USB-> UART?

Все запчасти (переходники и тому подобное) уже ВСЕ ЕСТЬ. и все собрано. Задача только запрогать ПЛИС, написать( ИЛИ найти) драйвер и ПО.
Задача должна быть не особо сложная, так как Человек, кто давал задание должен понимать, что я в этом новичок.

Тут еще нашел схему(она подойдет для примитивного подключения просто на USB?)

От выполнения этой задачи зависит ближайший год моей жизни (учусь ведь я в институте) =)
ЕвгенийФ
Цитата(Женя @ Sep 8 2011, 23:27) *
Плата сама внизу
...

Это Spartan-3E Starter Kit

На сайте Xilinx есть подробное описание этой платы и куча примеров для неё.

В интернетах есть описание на русском ( и другие статьи Зотова или Тарасова)
Женя
Цитата(ЕвгенийФ @ Sep 9 2011, 01:04) *
Это Spartan-3E Starter Kit

На сайте Xilinx есть подробное описание этой платы и куча примеров для неё.

В интернетах есть описание на русском ( и другие статьи Зотова или Тарасова)



Да,да. Все, описанное Вами я уже находил. описание на русском тоже есть у меня. прочитал его, и еще множество статей. но суть не в том. Ищу кто бы подсказал со схемой
XVR
Цитата(Женя @ Sep 8 2011, 23:27) *
Немного не понимаю- когда я пишу драйвер для USB- то это как бы универсальный драйвер?
Как бы нет

Цитата
Просто я нашел тут способ прямо пошаговый как драйвер и ПО забацать.
Это не драйвер, это прикладная программа
Цитата
Разъясните пожалуйста, Если стоит цель ИЗ ПЛАТЫ СДЕЛАТЬ ПРОСТО ПРЕОБРАЗОВАТЕЛЬ ИНТЕРФЕЙСА USB-> UART(либо SPI,либо IIC), то КАКИЕ ИМЕННО шаги мне надо сделать? а то я уже совсем запутался.
Для начала надо определится как именно должна выглядеть работа (со стороны PC) с вашим преобразователем интерфейса. От этого очень много чего зависит
Женя
Цитата(XVR @ Sep 9 2011, 11:56) *
Для начала надо определится как именно должна выглядеть работа (со стороны PC) с вашим преобразователем интерфейса. От этого очень много чего зависит


Работа должна быть примерно такая- посылается бит информации с компа на плату, там он преобазуется в USB и идет в буфер. затем след бит....
когда набегает байт он из буфера идет в преобразователь UART (SPI), а заетм уже на выход. то есть надо организовать
USB-> буфер
буфер-> UART

только как конкретно это сделать я не понимаю smile3046.gif


XVR
Цитата(Женя @ Sep 9 2011, 12:33) *
Работа должна быть примерно такая- посылается бит информации с компа на плату,
Я не про это. Я про софт и способ использования на РС. У вас там будет своя программа, или ваша плата должна прикинуться для РС обычным COM портом? Откуда будут браться передаваемые (и принимаемые) данные? Что кроме RX/TX нужно от вашего UART'а?
Apast
Цитата(Женя @ Sep 9 2011, 12:33) *
Работа должна быть примерно такая- посылается бит информации с компа на плату, там он преобазуется в USB и идет в буфер. затем след бит....
когда набегает байт он из буфера идет в преобразователь UART (SPI), а заетм уже на выход. то есть надо организовать
USB-> буфер
буфер-> UART

только как конкретно это сделать я не понимаю smile3046.gif

Да уж, с такими представлениями об USB пытаться сделать за мецясь ... ну и ну. cranky.gif
Обмен по USB идет сообщениями с достаточно навороченным протоколом, и минимальноя длинна данных в них БАЙТ, при этом с дикими накладными. Грубо там идет кому он предназначен (у контроллера USB несколько буферов которые могут принимать и отправлять сообщения), потом размер, затем сами данные и в конце CRC. При этом, в общем случае, должно быть получено подтверждение, что сообщение получено.
И отправлять БИТЫ по такому протоколу, ну ... чисто теоретически можно (младший бит в байте данных, например), но разумно ли.
Что касается драйвера - у CYPRESS есть универсальный драйвер для своих контроллеров, можно воспользоваться им, примеры программ работы с ним, если мне не изменяет память, тоже есть и он бесплатный. Есть альтернатива но не бесплатный WINDRIVER от JUNGO он вообще поддерживает и PCI и ISA и в том числе USB.
Еще, что бы вы не пытались реализовать, вам придется писать программу под 51 микроконтроллер, который является ядром контроллера USB от CYPRESS, что стоит на вашей плате. Ну и т.д. и т.п. laughing.gif
Только после этого вы доберетесь до Spartan 3E.
Вообщем - желаю удачи, на этом не легком пути biggrin.gif
Женя
Цитата(Apast @ Sep 9 2011, 14:11) *
Да уж, с такими представлениями об USB пытаться сделать за мецясь ... ну и ну. cranky.gif

Вообщем - желаю удачи, на этом не легком пути biggrin.gif


Неужели это и впрямь такое сложное задание? Просто тот, кто давал задание мне, вроде понимает, что я в этом пока что(именно "пока что"- потому , что желание сидеть с этим есть) очень мало соображаю(начало 3го курса как никак еще только) =(

эх...сижу вот читаю 2 книжки параллельно почти. Основы VHDL и основы схемоты.

объясните пожалуйста(желательно развернуто)- почему я не могу взять, к примеру схему отсюда http://trol.0fees.net/sch/usb2uart/index.php
или отсюда http://aes.at.ua/publ/usb_uart/12-1-0-308 и вместо самого контроллера (прямоугольника посередине) взять от спартана(сравнив ножки, и подключив те же, что и на сайтах, а остальные оставить пустыми) ?

от спартана вот эту, к примеру


или еще - Мой код будет координально отличаться, от того, что на этом сайте? (я конечно понимаю, что USB интерфейс сложнее будет. но в Общем ?)
http://www.chipovod.ru/plis/rs232-plis/#more-47
akorud
Цитата(Женя @ Sep 9 2011, 22:20) *
\и вместо самого контроллера (прямоугольника посередине) взять от спартана(сравнив ножки, и подключив те же, что и на сайтах, а остальные оставить пустыми) ?

Конечно можете. Только для этого нужно написать прошивку для спартана, которая заставит его вести себя как тот "прямоугольник посередине". А без прошивки спартан вообще "пустой" - он ничего не делает.
Женя
Цитата(akorud @ Sep 10 2011, 01:30) *
Конечно можете. Только для этого нужно написать прошивку для спартана, которая заставит его вести себя как тот "прямоугольник посередине". А без прошивки спартан вообще "пустой" - он ничего не делает.


Так получается, что для ПЛИСа могут быть реализованы множество схем(от любого такого переходника)? Ведь, насколько я знаю, Xilinx ISE переводит схему в VHDL код.
получается для ПЛИСа и множество различных кодов может быть реализовано?


З.Ы. блин....уже весь интернет облазил....неужели нигде нет готового кода преобразования этих протоколов crying.gif
Apast
Цитата(Женя @ Sep 10 2011, 01:37) *
Так получается, что для ПЛИСа могут быть реализованы множество схем(от любого такого переходника)? Ведь, насколько я знаю, Xilinx ISE переводит схему в VHDL код.
получается для ПЛИСа и множество различных кодов может быть реализовано?

Чем дальше тем ... чудесней. Судя по вашим вопросам и утверждениям вы не сильно то представляете себе что такое ПЛИС и с чем ее едят.
Да и основная функция Xilinx ISE "переводить" описание логики работы вашего устройства, представленного в различных видах (VHDL, VerilogHDL и т.п. в том числе и схемное) в битовую прошивку конкретной матрицы.

Цитата(Женя @ Sep 10 2011, 01:37) *
З.Ы. блин....уже весь интернет облазил....неужели нигде нет готового кода преобразования этих протоколов crying.gif

Тут тоже ... , вы до конца так и не поняли что "готового кода преобразования этих протоколов" в общем виде вы не найдете, поскольку
все определяется конкретным аппаратным исполнением. Т.е. на какой микросхеме реализован контроллер USB UART (COM).
Вам уже говорили что можно просто взять готовую микросхему USB<->UART фирмы FTDI http://www.ftdichip.com/Products/ICs/FT232H.htm,
вот вам готовый "преобразования этих протоколов" там и них есть все и драйвера и Firmware, и это самый просто случай. НО ... при чем тут
XILINX и все остальное.
И еще вы всех сбиваете с толку, то вы пишете что есть готовая плата и надо сделать на ней, то начинаете спрашивать про реализации схем.
VladimirB
Цитата(Женя @ Sep 10 2011, 01:37) *
Так получается, что для ПЛИСа могут быть реализованы множество схем(от любого такого переходника)? Ведь, насколько я знаю, Xilinx ISE переводит схему в VHDL код.
получается для ПЛИСа и множество различных кодов может быть реализовано?
З.Ы. блин....уже весь интернет облазил....неужели нигде нет готового кода преобразования этих протоколов crying.gif

Бросайте это гиблое дело - вам похоже и за год ничего не реализовать.

А кода нет, потому что это совершенно разные протоколы:
один дуплексный и простой как грабли, а другой очень сложный с несколькими уровнями стека протоколов (модель OSI) и работающий пакетами по запросу от Хоста (полудуплекс).
И вместо того чтобы заморачиваться кодом, люди покупают переходники (микросхемы) за 50рублей и радуются.

Вместо того чтобы увеселять форум своим незнанием я бы советовал вам сходить к преподу и уточнить, что же именно он хотел от вас.




Женя
Цитата(Apast @ Sep 10 2011, 09:03) *
Чем дальше тем ... чудесней. Судя по вашим вопросам и утверждениям вы не сильно то представляете себе что такое ПЛИС и с чем ее едят.
Да и основная функция Xilinx ISE "переводить" описание логики работы вашего устройства, представленного в различных видах (VHDL, VerilogHDL и т.п. в том числе и схемное) в битовую прошивку конкретной матрицы.


Так мне и нужно описать логику устройства


Цитата(Apast @ Sep 10 2011, 09:03) *
Вам уже говорили что можно просто взять готовую микросхему USB<->UART фирмы FTDI http://www.ftdichip.com/Products/ICs/FT232H.htm,
вот вам готовый "преобразования этих протоколов" там и них есть все и драйвера и Firmware, и это самый просто случай. НО ... при чем тут
XILINX и все остальное.
И еще вы всех сбиваете с толку, то вы пишете что есть готовая плата и надо сделать на ней, то начинаете спрашивать про реализации схем.


Дословно как мне было сказано -"Есть ПЛИС Spartan 3e.Полностью собранная со всеми переходниками и тому подобным. Написать только ПО, драйвер, и саму ее логику так, чтобы она работала, как преобразователь интерфейса из USB в UART(SPI,I2C). Можно описывать логику либо кодом на VHDL, либо с помощью схем" и нарисовали примерно то, что во вложенном файле

Цитата(VladimirB @ Sep 10 2011, 15:20) *
Бросайте это гиблое дело - вам похоже и за год ничего не реализовать.


Дело это бросить не могу. буду мучаться, но сделать нужно обязательно.

Цитата(VladimirB @ Sep 10 2011, 15:20) *
Вместо того чтобы увеселять форум своим незнанием я бы советовал вам сходить к преподу и уточнить, что же именно он хотел от вас.


Подходил и спрашивал(написано немного выше). Если веселю кого- то, то не по собственному желанию. Все мы когда- то начинаем заниматься чем-то новым(вспомните себя хотя бы, когда первый раз увидели компьютер- Вы сразу умели им так пользоваться, как сейчас?), и начинать соображать в этом в одночасье могут только гении. я не вхожу в список гениев(как и многие). так что я сижу, читаю, и пытаюсь понимать самые основы, и что непонятно(а это многое)- то спрашиваю. А хорошие люди, такие как Вы- отвечают, и это радует.


в общем...тяжко как то всё.



troiden
Есть как бы еще одна проблема - USB на указанной плате - это ни в коем разе не USB для передачи данных на ПЛИС напрямую, а USB-JTAG-переходник. Не, ну может можно и через JTAG состояния триггеров менять, но это уж полное извращение получается sm.gif
XVR
Давайте по порядку.
1) Вам можно пользоваться всем, что стоит на вашей отладочной плате? Если да, то Spartan вам вообще не нужен - CY7C??? уже готовый преобразователь из USB во все остальное, что вам надо
2) Если надо воткнуть USB прямо в Spartan, то советую сразу бросить это дело - физический уровень USB не совместим с ногами Spartan'а - придется ставить отдельную микросхему PHY. кроме того сам USB трансивер и весь стек до ваших UART/SPI/I2C очень и очень сложная штука. Вам понадобится в вашем Spartan'е сделать процессор, для исполнения стека USB, и написать для него программу (этот самый стек)
3) Если нужно нечто промежуточное, то идите к преподу и пусть он дает четкое ТЗ, что где и почем надо сделать wink.gif

Цитата(troiden @ Sep 10 2011, 21:18) *
Есть как бы еще одна проблема - USB на указанной плате - это ни в коем разе не USB для передачи данных на ПЛИС напрямую, а USB-JTAG-переходник.
Судя по сигналам на картинке ТС, там не только JTAG, но и еще куча вполне таких general purpose выводов. И их можно задействовать (наверное)

troiden
Цитата(XVR @ Sep 10 2011, 21:22) *
Судя по сигналам на картинке ТС, там не только JTAG, но и еще куча вполне таких general purpose выводов. И их можно задействовать (наверное)

Непонятно для начала, откуда вообще взялась эта схема. В схематиках на плату USB-интерфейс отсутствует, видимо считается их проприетарной информацией %) Ах да, имея опыт общения с платкой с шестым вертексом (вряд ли сделано по-другому) - так там выход этого USB-контроллера идет на CPLD, которая уже рулит загрузкой флешки и JTAG'ом.
А не проще предложить руководителю в таком случае ограничиться управлением через Ethernet? Без всяких TCP, на уровне одного UDP. Будет всяко проще и полезней в жизни.
VladimirB
Цитата(Женя @ Sep 10 2011, 17:57) *
Так мне и нужно описать логику устройства
Дословно как мне было сказано -"Есть ПЛИС Spartan 3e.Полностью собранная со всеми переходниками и тому подобным. Написать только ПО, драйвер, и саму ее логику так, чтобы она работала, как преобразователь интерфейса из USB в UART(SPI,I2C)...

В том то всё и дело, что переходника в USB на вашей плате не видно (как уже многие заметили).
Поэтому варианта два:
1) либо вы чего-то не поняли и есть ещё какая-то плата с USB, подключаемая к этой через разъём расширения.
2) либо препод сам не сильно шарит в особенностях данной платы и думает, что если на плате есть разъём USB, то данные через него легко передавать (здесь он и ошибается так как разъём для программирования).

ИМХО второй вариант наиболее вероятен - поэтому идите и ткните его носом.
Женя
Цитата(VladimirB @ Sep 10 2011, 23:21) *
Поэтому варианта два:
1) либо вы чего-то не поняли и есть ещё какая-то плата с USB, подключаемая к этой через разъём расширения.
2) либо препод сам не сильно шарит в особенностях данной платы и думает, что если на плате есть разъём USB, то данные через него легко передавать (здесь он и ошибается так как разъём для программирования).

ИМХО второй вариант наиболее вероятен - поэтому идите и ткните его носом.


завтра пойду опять к нему

Цитата(VladimirB @ Sep 10 2011, 23:21) *
В том то всё и дело, что переходника в USB на вашей плате не видно (как уже многие заметили).


А вот это?
|
\/

Цитата(XVR @ Sep 10 2011, 21:22) *
Давайте по порядку.
1) Вам можно пользоваться всем, что стоит на вашей отладочной плате? Если да, то Spartan вам вообще не нужен - CY7C??? уже готовый преобразователь из USB во все остальное, что вам надо


CY7C. то есть он уже есть на моей плате? А не подскажете какой именно из этой серии переводит в UART, а какой в SPI?
Получается если именно это имел ввиду препод, то я могу просто все взять и скачать из нэта под этот чип? драйвера и т.д...?


Цитата(XVR @ Sep 10 2011, 21:22) *
Если да, то Spartan вам вообще не нужен


Сейчас я вообще не вкурил. если Spartan- это не плата моя, тогда что?
Нужно же как то соединять порты с этим чипом о_О


З.Ы. Представляю как я смехотворен krapula.gif
XVR
Цитата
А вот это?
Это тот кусок схемы, который вы приводите тут уже второй раз. Я так думал, что этот кусок присутствует на вашей отладочной плате.
Цитата
CY7C. то есть он уже есть на моей плате?
Вам виднее. У вас вообще схема вашей платы есть?
Цитата
Сейчас я вообще не вкурил. если Spartan- это не плата моя, тогда что?
Spartan - это одна микросхема на вашей плате. И если на ней (плате) есть тот кусок схемы, который вы тут приводили, то сама микросхема Spartan'а вам не нужна вообще sm.gif
VladimirB
Цитата(Женя @ Sep 11 2011, 00:31) *
А вот это?...CY7C. то есть он уже есть на моей плате?


Он есть, но он предназначен для программирования ПЛИС и это открытым текстом написано в описании платы (если вы его читали). Конечно, если перерезать дорожки и МГТФом подпаяться... но тогда как вы будете ПЛИС прошивать.
Flood
У вас - отладочная плата, предназначенная для обучения и разработки некоторых собственных устройств на основе ПЛИС. Часть ресурсов платы являются "пользовательскими", т.е. предназначенными для решения пользовательских задач, часть - служебными или технологическими, функции которых не переопределяются.

Как здесь уже неоднократно написали, на этой плате связка CY7C(микроконтроллер) + XC2С256(ПЛМ) не являются частью "пользовательской" схемы и не предназначена для универсального использования.
Это интерфейс программатора и отладчика, он стоит как бы "в стороне" от основной ПЛИС, умеет программировать ее саму или ее конф. ПЗУ, а также отлаживать логическую схему в ПЛИС при помощи ПО типа Chipscope (встраиваемый логический анализатор). При приложении нездоровых усилий этот программатор можно сделать частью пользовательской схемы, но это как минимум усложнит возможность ее отладки. Считайте этот интерфейс технологическим и непригодным для связки ПК-разрабатываемое устройство.

В результате, задача получить на основе этой платы и имеющегося у нее технологического USB-интерфейса ваше устройство для связи чего-то там с ПК по USB уже является некорректной. Со ссылкой на документацию к плате это вполне можно внести в отчет по работе и обосновать применение альтернативных решений. А именно, чтобы не погрязнуть в глубинах USB (а это очень сложная шина, явно не для двухнедельной работы), советую, сославшись на невозможность использования имеющегося USB-разьема, согласовать применение внешнего USB-интерфейса. А именно - микросхемы FT232RL / FT245RL, которые одной стороной подключаются к USB-разъему, другой - к пользовательским ножкам платы, т.е. непосредственно к Spartan. Вам придется изготовить или купить платку, на которой будет стоять USB-разъем, микросхема-переходник и шлейф для соединения с главной платой ПЛИСа. При этом лучше выбрать FT245RL - тогда не придется реализовывать в ПЛИСе UART, вы сразу получите 8-битную параллельную шину + набор управляющих сигналов, да и скорость обмена будет выше. Программная же модель по стороны ПК остается той же самой, что и для FT232RL.
Еще один способ, покривее - найти USB-переходник для старой модели мобильного телефона. В старых телефонах внешние интерфейсы выполнялись как UART / RS232 с LVTTL (3.3в) уровнями сигналов. В переходниках устанаиливались чипы PL-2303. Выглядит такой кабель как USB-шнур с "коробочкой" посередине и разъемом мобильника в конце. Тогда вообще почти ничего паять не придется. Минусы решения - кривоватый чип PL-2303, только 2 сигнала UART (Tx/Rx), да и найти может быть уже трудно.

В любом случае, советую обосновать использование внешней микросхемы USB-интерфейса, забыть пока о USB как о страшном сне и сосредоточиться на реализации собственной логики вашего устройства в ПЛИС.

Вдогонку - поставленная задача в первом приближени не требует реализации на ПЛИС. Проще, дешевле и удобнее взять микроконтроллер с USB и UART/SPI/I2C (например, ARM от NXP или ST) и сделать этот переходник на нем.
Потому правильность советов зависит от того, чему в этой задаче вас пытаются научить. Зная цель обучения (а в этой задаче их может быть много, от цифровой схемотехники до программирования драйверов под Windows), было бы проще выкинуть все ненужное и оставить только целевую задачу.
Женя
Flood спасибо Вам за такой развернутый ответ.

Цитата(Flood @ Sep 11 2011, 17:17) *
В любом случае, советую обосновать использование внешней микросхемы USB-интерфейса, забыть пока о USB как о страшном сне и сосредоточиться на реализации собственной логики вашего устройства в ПЛИС.

Вдогонку - поставленная задача в первом приближени не требует реализации на ПЛИС. Проще, дешевле и удобнее взять микроконтроллер с USB и UART/SPI/I2C (например, ARM от NXP или ST) и сделать этот переходник на нем.
Потому правильность советов зависит от того, чему в этой задаче вас пытаются научить. Зная цель обучения (а в этой задаче их может быть много, от цифровой схемотехники до программирования драйверов под Windows), было бы проще выкинуть все ненужное и оставить только целевую задачу.


Да, что это не рационально, я уже понял. Но задача все это провернуть именно на этой ПЛИС. И без дополнительных паяний и т.д. и т.п., а все должно быть сделано програмно.
Цель обучения- вообще научиться понимать логику устройств(и, совственно самому ее бацать), написание драйверов и, собственно, работа с ПЛИС.


Сегодня был очередной поход к "давателю задания"

сфоткал плату

Опять же не густо. как понял- по словам- есть шнур с 2х- сторонним USB- входами. Один конец тыркаем в комп. другой- в ПЛИС. с другой стороны в какой- либо из портов ПЛИС подключаем устройство (к примеру монитор), и необходимо, чтобы комп наш определял этот монитор, ну, и пакеты еще можно было передавать. По словам человека того- это не сверхсложное задание...

Может еще есть какие нибудь подсказки мне? crying.gif
troiden
Цитата(Женя @ Sep 13 2011, 00:48) *
По словам человека того- это не сверхсложное задание...

Ну он и пошутил-то sm.gif Видимо человек и правда не знает суть вопроса, а задание придумывал на коленке. Дипломный проект?
Суть дела не меняется - без паяний или танцев с бубном USB на данной плате использовать для таких целей нельзя.
Alex77
Цитата(Женя @ Sep 13 2011, 00:48) *
Может еще есть какие нибудь подсказки мне? crying.gif

Описание платы.
http://www.xilinx.com/support/documentatio..._kits/ug230.pdf
Разъём USB присутствует на плате, но он предназначен только для программирования FPGA/FLASH. те он НЕ предназначен для "эмуляции" USB-устройства.
Без паяльника (и доп. микросхемы ?) не получится USB-устройства.
Дварфик
Одним из оптимальных решений будет взять готовое устройство: эмулятор COM-порта. Подключается оно к УЗБ. Но компьютер считает его COM. (есть такая функция у USB-протокола). После чего и пишется программа под COM-порт с подсоединением тестируемого устройства.
Если интересна сама реализация такого переходника, то можно глянуть его на PICах, или AVR (кому что ближе :-P). Даже обойтись без дорогущих ПЛИС.
VladimirB
Цитата(Женя @ Sep 13 2011, 00:48) *
...Опять же не густо. как понял- по словам- есть шнур с 2х- сторонним USB- входами. Один конец тыркаем в комп. другой- в ПЛИС. с другой стороны в какой- либо из портов ПЛИС подключаем устройство (к примеру монитор), и необходимо, чтобы комп наш определял этот монитор, ну, и пакеты еще можно было передавать. По словам человека того- это не сверхсложное задание...


Либо он не сильно умный, либо решил вас завалить и отчислить...
И походу вы ему ничего не объяснили и в даташит носом не ткнули, так что расслабьтесь и ждите...
Женя
Скажите, а реально ли:

там же есть разъем (справа) длинный такой, где много ножек. Если купить шлейф и подпаять туда шнур на USB(который вставить в комп)- на него реально тогда интерфейс USB будет сделать?
XVR
Цитата(Женя @ Sep 14 2011, 20:00) *
Если купить шлейф и подпаять туда шнур на USB(который вставить в комп)- на него реально тогда интерфейс USB будет сделать?

Нет. У Spartan'а выводы не совместимы с сигналами на USB. Вам понадобится как минимум микросхема интерфейса с USB линией. Если учесть, что голые PHY для USB уже вымерли как мамонты, то вам понадобится какой то преобразователь из USB во что то общеупотребительное, например тот же CY (или FT232). А они сами по себе уже практически являются тем, что от вас пытаются получить


Кстати, от наплатного USB можно достучаться до Spartan'а - он (USB) заведен через CY на JTAG Spartan'а. JTAG доступен из прошивки. Но тут есть другой подводный камень - интерфейс к самому USB со стороны PC не документирован, так что как вы будете до него добираться - большой вопрос
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.