USB контроллер на FPGA

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Locked
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

USB контроллер на FPGA

Post by mrTransistor »

Всем здрасьти:) Выдали задание на Микропроцессорные системы - сделать ЮСБ контроллер на основе ПЛИС (Cyclone III). Задание мне кажется вообще диким потому что

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

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

С ВХДЛ работал немного, но опять же никаких прошивок, а только эмуляция работ мультиплексоров, счетчиков и логических схем, то есть как писать прошивку для реальной плис тоже слабо представляю.

Короче, помогите чем можете, с чего начинать, что почитать, как должно это в конце работать, подскажите этапы которые меня приведут к финальному результату, литературку, что угодно.
Реклама
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

Мнда... На учёбе что, даже в какой-нибудь лаборатории для практики нет ничего типа вот такого ?
Если нету, тогда либо придётся по потеть этот месяц, причём обильно :)) , либо менять задание. :)
Пугать не буду... :)
1) Младший Циклон 3 (EP3C5E144) в моём городе стоит около 700р.
2) Самый простой корпус у него типа TQFP144.
3) Требует три питания: ядро 1.2в, PLL 2.5в, периферия от 1.2в до 3.3в. Источники легко делаются на lm317. В обязательном порядке "куча" блокировочных конденсаторов, хотя бы как рекомендовано в спецификации. Плата минимум двухслойная, нужно заказывать, или с фоторезистом делать, ну или вы магистр-джедай ЛУТ-а :))
4) 5 вольт на входах-выходах не терпит.
5) Для хранения прошивки нужна внешняя специальная микросхема флэш-памяти. Можно без неё, но тогда при включении надо обязательно программировать с внешнего источника (программатора, микроконтроллера), при выключении, соответственно, всё "забывается".
6) Нужен программатор. Можно такой. Можно самому поискать собрать ByteBlaster2. ByteBlasterMV можно, но обязательно надо иметь стыковку с логическими уровнями (см. выше напряжение периферии). Можно поискать на тему вот такого.
7) В чём разрабатывать прошивку: софт тут. Quartus II Web Edition (размер ~2-3Гб) и ModelSim-Altera Starter Edition (размер ~600Мб), разработка и отладка соответственно.

Вроде основное всё написал.
Last edited by Kavka on Fri Mar 11, 2011 13:34:16, edited 1 time in total.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Спасибо, Есть подобная плата на которой мы делаем лабы, но она на контроллере от Атмега16, программатор нужен если просто отдельно микросхема плис без платы?, про софт где прошивку делать я в курсе. Как то неохота деньги свои вкладывать из-за препода мудака и программатор паять, еще и самодельное питание делать, походу придется в квартусе тестить работу без реальной схемы если так можно... А можно мне идиоту объяснить что должен делать юсб котроллер сделанный на плис, и где мне взять схему подключения разъема юсб к плис? Препод задание не поменяет я еще радоваться должен по идее, у друга вообще надо прошивку для работы с видеокамерой сотворить на 2м циклоне.
User avatar
Satyr
Друг Кота
Posts: 7439
Joined: Thu Nov 04, 2010 01:56:36
Location: г. Москва

Re: USB контроллер на FPGA

Post by Satyr »

Ну, можено классически студенчеки "списать" -))
Сходи на OpenCores.org, там оно есть.
Реклама
Эиком - электронные компоненты и радиодетали
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Это мысля конеш, а что искать usb controller или usb host - это не одно и то же??? И все таки над схемку подключения порта юсб к циклону...
Реклама
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

Думаю, вот это может быть полезным.
http://marsohod.org
Раздел проектов, искать проекты с "USB" в названии.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

mrTransistor wrote:программатор нужен если просто отдельно микросхема плис без платы?
[...мышь буквы погрызла...]
походу придется в квартусе тестить работу без реальной схемы если так можно...
На той плате, что я ссылочку давал, уже есть программатор. Для собственного устройства, всяко, нужен программатор.

Смотря на чём будете начинку делать/писать. Model-Sim как раз симулятор, понимает всё что понимает Квартус.
Если на Verilog-е или VHDL, то для них есть симуляторы, в том числе и немало свободных.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
User avatar
atmicandr
Друг Кота
Posts: 6166
Joined: Tue Mar 09, 2010 09:29:27
Location: Свердловская область, г. Ирбит

Re: USB контроллер на FPGA

Post by atmicandr »

Вы попробуйте поискать на форуме электроники, вроде чтото там подобное пробегало но на Спартане.
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Из всего вышесказанного и прочитанного за сегодня, получается вот что

Буду использовать Квартус и встроенные средства симуляции.

На "марсоходе" хорошо написано про юсби и есть примерчик для платы марсоход НА плис Altera - EPM240T100С5 на верилоге - проблема я не шарю в верилог и будет ли такая прошивка работать на CYCLONE 3, и это не совсем то - мне нужен контроллер на плис а там реализовано подключение плис к компу и работа уже с его ПК-шным контроллером.

Как я понял берется отдельно плис - к ней коннектится ЮСБ разъем ХОСТ, плис прошивается как контроллер юсб. Теперь встает вопрос куда мне присобачить Юсб разъем, точнее к каким выводам плис и далее как контроллер будет реагировать на подключенное устройство, например флешку(Лампочку присобачить или как?) или я не туда думаю?
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

На циклоне работать, скорее всего, будет, если не использовано блоков специфичных для CPLD EPM240. Ну и ножки надо "привязать" к циклону (pin assignment). Ножки можно выбрать любые general IO, как будет удобно.

Разъём хост ??? Вам что, надо хост-контроллер сделать? Есть usb-host (в компьютерах) и usb-device (флешки, клавиатуры, мышки и т.д.). Хост-контроллер обеспечивает только низкоуровневые функции (приём-передача на физическом уровне, в основном) , остальное делает процессор посредством драйверов и прочих программ. Так что насчёт подключения флэшки, что-то не до конца понятно. На сайте марсохода пример usb-устройства. Хост с хостом работать не будет. Обычные usb-устройства друг с другом тоже не умеют работать. USB-OTG устройства могут работать с другими USB-устройствами.
За подробностями можно на википедию сходить, но лучше вот сюда.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
User avatar
Uklunok
Вымогатель припоя
Posts: 561
Joined: Sat Apr 03, 2010 10:12:41
Location: Хабаровск

Re: USB контроллер на FPGA

Post by Uklunok »

mrTransistor wrote:Спасибо, Есть подобная плата на которой мы делаем лабы, но она на контроллере от Атмега16, программатор нужен если просто отдельно микросхема плис без платы?
Не бзди! Есть такая плата у нас на кафедре, видел кто-то работал и не один раз...

Подскажите пожалуйста, для чего нужна утилита CORE COMMANDER??? Знаю только, что её надо устанавливать на QUARTUS||.
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Мда, все оказалось не так как я думал, на кафедре есть стенд СoreCommander(плата для разработки на циклон 3 + интерфейс пользователя с жк дисплеем).
прога CoreCommander вроде б утилита для работы с этим стендом.

Так вот для этого стенда мне нужно нарисовать схему подключения его юсб порта на плате.

И написать прошивку для стенда, Юсб контроллер, по объяснениям препода я вроде понял что нужно просто либо подключить стенд к компу и на дисплее стенда выдавать чего-то. Или флешку подключить и также чего-то по этой флешке на дисплее высвечивать.

Есть у меня Демо - идет с самой программой коркоммандер(usb host mass storage), в нем вроде только прошивка без исходника которую можно залить(.sof, .elf файлы и батники какие-то).
Короче вот, не знаю как прошивку писать.
User avatar
atmicandr
Друг Кота
Posts: 6166
Joined: Tue Mar 09, 2010 09:29:27
Location: Свердловская область, г. Ирбит

Re: USB контроллер на FPGA

Post by atmicandr »

:)) Дак я не понял, Вы что с одного института и даже с одной кафедры? :))) А препод поди тоже в этом форуме засел :write: ? :))) Модераторы извините за оффтоп.
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Нечего ржать:) У нас общая беда:) Хелп
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

Я так понял, что преподователю всё равно что вы сделаете - хост или устройство.
Примеры устройства есть на "марсоходе". Дальше "курите" мануал на плату в части "куда на ПЛИС подключен разъём USB". И переделывайте под себя пример с "марсохода".

Можете, конечно, что-нибудь тырнуть с opencores, но, думаю, разбираться и объяснять взятое оттуда будет значительно сложнее, чем с "марсохода".
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Опять всем привет. Знаючтоужезадолбал с этой темой, но ситуация складывается следующая. Прошивку мне уже не надо разрабатывать, сумел я сбежать от этой участи:) Нужно было нарисовать схему подключения юсб коннектора к ФПГА e3c25f256 (CYCLONE III) через интерфейс ISP1505. Прочитал про интерфейс - как я понял там есть встроенный ULPI phy (который вроде тоже интерфейс) + плюс еще какие то фичи которые вместе и представляют ISP1505.

Во-первых объясните мне дураку - что аббревиатура эта значит ISP.
ПОчему он включает ULPI phy - почему нельзя отдельно поставить между ФПГА и коннектором ULPI, Зачем его поместили в ISP?
Как он уменьшает количество пинов - От коннектора юсб ведь всего 4 пина идет, А от ФПГА тоже не так много?

И самое главное - Схему нарисовал я, И препод мне сказал:
У ISP1505 должна быть опорная частота. И должна это частота идти либо от ПЛИС либо от внешнего генератора, Нужно каким то образом переключать подачу этой частоты, как это делать он сказал на ваше усмотрение. Главное ему показать на схеме что вот - Типа работает так - то, так -то.
Не совсем понятно что от меня требуется, т.е. просто переключатель поставить или что?

Прошу как всегда помощи.... Схема прилагается)
mrTransistor
Первый раз сказал Мяу!
Posts: 34
Joined: Sat Sep 25, 2010 19:21:41

Re: USB контроллер на FPGA

Post by mrTransistor »

Вот схема.
Drawing2 copy.jpg
(74.44 KiB) Downloaded 922 times
User avatar
Kavka
Мудрый кот
Posts: 1810
Joined: Thu Jun 10, 2010 08:55:35
Location: Сибирские Афины

Re: USB контроллер на FPGA

Post by Kavka »

mrTransistor wrote:Опять всем привет. Знаючтоужезадолбал с этой темой
:)
ISP1505 - это чип типа FT245 от FTDI, поэтому что означает ISP в его названии ведает только производитель.
Производитель этого чипа - NXP.
Читайте спецификацию, там всё написано, и будет вам счастье. :))

ULPI это просто стандарт интерфейса (набор сигналов и временнЫе характеристики). В данном случае USB-контроллер (ISP1505) имеет внешний интерфейс по стандарту ULPI.

Про тактирование - читатете спецификацию. Там возможно три варианта. Ваша схема ни одному из них не удовлетворяет (на сколько я могу судить после беглого просмотра спецификации).

ЗЫ: Забавная микруха - может из себя USB-host изображать.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Locked

Return to “Микроконтроллеры и ПЛИС”