|
USB для SoPC |
|
|
|
Aug 15 2008, 09:55
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Здравствуйте. В инете накопал вот такую вещь: Цитата Avalon OpenCores 10/100 Ethernet MAC Как пишется: Цитата The Wishbone interface has been completely removed and replaced with a new Avalon module. Что не может не радовать Интересует информация касательно USB - никто не собирал похожего для USB ??В принципе накопал пока физику и собсно реализацию USB на OpenCores`ах. На верилоге конечно и для Wishbone, но не в том суть - Wishbon-овский модуль можно поменять на Avalon-овский как в прожекте для Ethernet MAC. Но как то разрознено получается..На форуме порылся и нашёл, что некоторые даже пытались их колупать и соединять но как то глухо и мутновато всё равно.... Если кто уже решал такую задачу и есть наработки буду признателен за любую помощь.  PS Лицензии для SLS нету(+ есть вроде сведения что немного подглючивает с вендорами и ID) да и плюс есчё внешнюю микркруху городить надо, ISP которая  (кстати физика на OpenCores`ах вроде как раз самое то)... --- пока суть до дела, колупаюсь в Цитата USB 1.1 Function IP Core: Overview с OpenCores`ов - с описания, там только текстовик README.txt в папке doc - есть у кого побольше информации кроме как эти 4 килобайта - для 2.0 у автора есть хотя бы PDF с описанием Кстати, физика для USB аки usb_phy.tar.gz - USB 1.1 PHY. Автор пишет что тестировал для корки 1.1 и нормально вроде всё..
|
|
|
|
|
Aug 15 2008, 11:33
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Kuzmi4 @ Aug 15 2008, 04:55)  В принципе накопал пока физику и собсно реализацию USB на OpenCores`ах. На верилоге конечно и для Wishbone, но не в том суть - Wishbon-овский модуль можно поменять на Avalon-овский как в прожекте для Ethernet MAC. Но как то разрознено получается..На форуме порылся и нашёл, что некоторые даже пытались их колупать и соединять но как то глухо и мутновато всё равно.... Если кто уже решал такую задачу и есть наработки буду признателен за любую помощь.  Не вижу ничего сложного, скажу более того : если корка сделана с поддержкой только wishbone classic и не использует дополнительные выходы ошибок rty_o, err_o то пристегивается а avalon совершенно свободно. У wishbone classic КА простой на 2-4 состояния. ЗЫ. насчет Ethernet MAC у Игоря Мохора достаточно просто вырезается вишбоновский модуль и вместо него вставляется свой %) я так делал для своего проекта.
--------------------
|
|
|
|
|
Aug 15 2008, 12:24
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 des00 - спасибо за разъяснение ситуации. Тогда прийдётся колдовать над физикой для 2.0, что на мой взгляд гораздо проще чем с USB2.0. Тут на корку хоть дока есть  --- Значится автор USB_PHY 1.1 , который и автор корок для USB 1.1 и USB2.0, использовал XESS XCV800 а на нём с внешних елементов USB был только PDIUSBP11A, который собсно является эдаким разделителем IN/OUT для сигналов с USB D+/D-
Касательно приёма-передачи:
То есть видно, что VP,VM - входы с D+/D- в FPGA, а VPO,VMO - выходы с FPGA на D+/D-... Меня смущают триггированные выходы VP,VM - вроде бы можно реализовать в FPGA аналог PDIUSBP11A, вот только как быть с этим триггером шмита- он так догадываюсь для защиты от дребезга/шума стоит... То есть, если линия короткая , то можно пренебречь и поставить что-то типа GBUF я так думаю..
|
|
|
|
|
Aug 15 2008, 14:50
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Stewart Little - на счёт SLS - как то видел. На счёт выложить - неплохая идея - там по ходу генерится полноценный пакет файлов , которые можно потом переработать и подшивать к SoPC и про лицензию не думать. Но и для SLS нужна физика.. Тут дело как раз в том, что если дЫвайсина недалеко от PC USB, то в принципе зачем там внешнее городить, можно и без них обойтись - а как рассказывает Rudolf Usselman в своих описанию к USB1.1 PHY - у него на 12Mbs пахало с PDIUSBP11A - а это по сути просто разделитель(вверху приводил рисунок). Я думаю на FPGA чтото похожее реализовать возможно. Вот приблизительная простенькая реализация:
Вроде как должно работать - только на симуляция отчего то вот такая:
DP и DM не меняются, а вместо них у нас есть ~result..
|
|
|
|
|
Aug 18 2008, 14:45
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Stewart Little - тут вопросик есть касательно SLS. За прошедшее время добил я саппорт SLS - дали они мне скачать екзешник, правда только сегодня с утра и то много вопросов задавали. Поставил попробовал - выскакивает ошибка Цитата Error: Node instance "the_sls_avalon_usb20hr" instantiates undefined entity "sls_avalon_usb20hr" так понимаю найти он не может этот самый компонент - нужно файлик подрубить. Указал путь в setting-сах прожекта - теперь выдаёт Цитата Error: Can't find valid feature line for core 5750_0A01 in current license Это чего - а где лицензия, которая должна была даться мне, сервиса блин нету... На скачать экзешник надо 24 часа ждать а потом долго и нудно переписываться, на лицензию - тоже траблы думаю аналогичные будут.... Кстати нашёл в глубине папки ip файл sls_avalon_usb20hr.v но он в закарлючках. Я так понимаю декриптитьего надо. Подекрипченый знаю где взять(правда папки lib нету, но положить можно и в Цитата C:\altera\72\ip\sopc_builder_ip\SLS\usb20hr_ocp_eval_pack-v2.1\sls_avalon_usb20hr Вот структура:
). Но суть не в том - там verilog файлы, а у меня прожект на VHDL - несостыковочка выходит..  Никак я verilog к VHDL не приконекчу... VHDL версия я так понимаю отсутствует... ??
|
|
|
|
|
Aug 19 2008, 11:37
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(Kuzmi4 @ Aug 18 2008, 18:45)  Это чего - а где лицензия, которая должна была даться мне, сервиса блин нету... Лицензию должны были по e-mail прислать. Попробуйте добавить в квартусовский лицензионный файл приаттаченну лицензию (HOSTID свой подставьте). Только этого все равно будет недостаточно - декриптить надо. Цитата(Kuzmi4 @ Aug 18 2008, 18:45)  Но суть не в том - там verilog файлы, а у меня прожект на VHDL - несостыковочка выходит..  Никак я verilog к VHDL не приконекчу... VHDL версия я так понимаю отсутствует... ?? Это совершенно без разницы - на чем он там написан. И мешать это совершенно не должно. Мегавизард будет работать, все равно все в один нетлист сольет.
Прикрепленные файлы
der.zip ( 492 байт )
Кол-во скачиваний: 90
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Aug 19 2008, 12:30
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Stewart Little есть вопросик. Структура папок для компонента в ip такая:
Заменил verilog файлы на декрипченые, остался там не декрипченый самый верхний файл sls_avalon_usb20hr.v Смущают варнинги типа: Цитата Warning (14110): No clock transition on "CPU_02:inst|sls_avalon_usb20hr_inst:the_sls_avalon_usb20hr_inst|sls_avalon_ usb20hr:the_sls_avalon_usb20hr|usb_top:usb_top|proto_layer:u1|memory_idma:u2|dtm p _r[0]" register due to stuck clock or clock enable То есть получатеся что клок не заводится на регистр ???
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 27 2008, 08:23
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Stewart Little - благодарствую! Самое оно вроде, только вот вопросы есть по схеме:
Зачем там такая хитрая схема для CS ?? И потом клок от ISP1504 - зачем там к резюку кондёр на 100 нан -> RC цепочки порядка получается 2.2 мкс получается Это что за клок такой он должен гнать ?? А так в принципе - похоже на вот такую схему с даташита:
|
|
|
|
|
Aug 28 2008, 08:40
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
В обсчем разобрался - не буду пока сильно хитрож.. - возьму схему с даташита. Потому как я так понял, что данная схема расчитана для работы с запиткой периферии - запитка Vbus от MAX890 и сигналы fault и pws для регуляции и мониторинга... И на счёт ID разобрался:
Вставим туда переключатель  и прицепим vbus пока как по даташиту камня..
|
|
|
|
|
Aug 29 2008, 08:23
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
ТУт поступила информация , что можно с PLL-а заводить на камень 60МГц и не ставить дополнительные компоненты, жду пока уточнения (меня fault, pws и vbus беспокоят - как их правильно подключать  а то компонент в MLF корпусе - новую печатку сделать не проблема -> перепаивать стрёмно его).. Касательно самого кора - читаю докуметацию - v2.0 - как то коряво сделано - выводятся все пины - ULPI и UTMI а ты которые нужно, те и подсоединяй...  Что не нужно, конекть ручками к земле.. Поставил v2.0 с лечилкой - всё нормально, но эта куча лап  + описание к ULPI не совсем.. Поставил по верху v.2.1 - и описание к ULPI есть нормательное (кроме ессно схематика  ), но выдаёт мне при синтезе вот такое:
И во втором варианте на 100 лутов больше где-то получается дизайн... Печально... Ни у кого нету лечилки для v2.1?? А то неплохо смотрится в обсчем.. Так же вот что интересует - этот charge pump - если я планирую, что моё устройсво будет втыкаться в комп, то я так понимаю оно будет слейвом и тогда мои дейставия будут такие - vbus нужно коннектить через резюк к лапе коннектора V+, ID- оставить болтаться в воздухе - периферия я типа буду, выводы fault, pws можно вывести на дополнительные коннекторы (по сути оставить в воздухе) и клок можно подавать с выхода лапы циклона2 с PLL Кто уже имел дело с этим чудом - просветите
|
|
|
|
|
Sep 18 2008, 14:13
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
PCB сделано, все компоненты припаяны, вчера пытался запустить, в результате - НИЧЕГО... При чём что интересно - USB открывается коннект делается - а со стороны компа - вооПсче ничего... Прицепил PDF-ку со схематиком. В дизайне использую PLL - на вход 50MHz клок. Выходы: 1) выход на внешнюю лапу для подачи клока на ISP1504 и этот же клок отводится и для SLS USB что в NIOSII (60MHz) 2) клок на NIOSII систему (50MHz) 3) клок на внешнюю лапу SDRAM (50MHz) При синтезе получаю варнинг про то что USB clock подрубила на non-dedicated pin и будет джиттер. Далее заливаю в железо, наблюдаю 60 МГц на выходной лапе. Далее гружу прогу в ниос - по UART`у вижу что всё вроде отрабатывается и в USB read мы виснем - потому как ничего не приходит.. А не приход потому как комп ничего не видит - со стороны компа ничего... У меня пока есть идея что надо бы NIOSII завести на частоте большей 60MHz.. Может кто сталкивался - подклитесь опытом борьбы ?? Вот схематик
Overview_rev.1.5_2.pdf ( 124.37 килобайт )
Кол-во скачиваний: 454R2 = 0 С18 не монтировал. Вроде всё как по ДШ и AN10048.. Ан нет - не выходит цветок...
|
|
|
|
|
Sep 23 2008, 08:27
|
Знающий
   
Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454

|
Цитата(Kuzmi4 @ Sep 18 2008, 17:13)  Далее гружу прогу в ниос - по UART`у вижу что всё вроде отрабатывается и в USB read мы виснем - потому как ничего не приходит.. А не приход потому как комп ничего не видит - со стороны компа ничего...  Во первых нужно проинициализировать регистры внутри ISP1504. Для того чтобы компьютер "увидел" устройство нужно включить внутренний подтягивающий резистор 1,5К на D+ для full/high speed или на D- low spreed. Как проинициализировать регистры не скажу. По скольку не работал с ним.
|
|
|
|
|
Sep 23 2008, 11:12
|
Знающий
   
Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454

|
Цитата(Kuzmi4 @ Sep 23 2008, 12:32)  2 misyachniy - на счёт регистров - я так понимаю это делает сама корка, то есть софтина к ней прилагающаяся - там как раз есть open() и configure().. Только молоТцы прикладывают только OBJ-файл и описание ф-ций...Так что сильно не разгонишся.. Для high speed - там в спецификации написано что резюк не обязателен. Тут знакомый говорит что у него эта шняга работает - только он заводит частоту(19.2МГц) внутрь а 60МГц берёт для системы с ISP1504. Надо бу попробовать так + поднять тактовую самой системы , а то она у меня на 50 бегает при 60 на USB... Кстати - такой вопрос - наколупал v2.2 - там *.tcl файл - как его добавить в SoPC Builder ?? А то после инстала компонент не видится Добавление в IP Search Path пути к *.tcl ничего не даёт....
Корка то сама делает, но для того чтобы Windows показал "Неизвестное устройство" на шине USB, достаточно резистора 1,5К. Судя по всему у вас он не присоединяется. Для high speed - там в спецификации написано что резюк не обязателен.Не верное уьверждение. Резистор присоединяется к D+, после конфигурации на Full Speed, хост должен разрешить работу на high speed. После этого резистор с D+ убирается для выравнивания импеданса. По поводу разной чатоты системы и PHY не могу сказать ничего определенного. Есть реализации с промежуточными регистрами для устранения гонок импульсов и укороченых импульсов. Решение с тактированием от PHY выглядит разумным.
|
|
|
|
|
Sep 23 2008, 12:21
|
Знающий
   
Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454

|
Цитата(Kuzmi4 @ Sep 23 2008, 14:45)  Есть реализации с промежуточными регистрами для устранения гонок импульсов и укороченых импульсов.
Это чего.. можно поподробнее ?? Если посмотреть в документацию на PHY то видно что ве сигналы изменяются и считываются по фронтам тактовых импульсов. Соответсвенно данные внешним устройством(ПЛИС) должны выставлятся/приниматся синхронно с этой частотой. Если тактирование системы не совпадает(точнее если источник тактирования не один и тот-же) то нужно предусматривать ФИФО. В приложеной блок схеме Видео контроллера есть две частоты тактирования sys_clk и vga_clk_int. Для коректной передачи данных использован большой буфер шириной 32 бита. Для передачи сигналов управления - достаточно 2-х регистров. Подозреваю, что в вашем компоненте есть два входа тактирования: 60МГц и тактировние шины Авалон.
|
|
|
|
|
Sep 23 2008, 12:56
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 misyachniy - на счёт по фронтам - была у меня такая идея.. как раз чтоб её проверить хочу завести внутрь 26Мгц, а не 60 как клок - оно там себе всё правильно генерит, а моя задача только снять клок и по нему данные.. Хотя всё же не ясно почему ему не нравится мой клок... На счёт Цитата Подозреваю, что в вашем компоненте есть два входа тактирования правильно подозреваете - да я и говорил про это к тому же... На счёт фифо - вы имели ввиду асинхронное фифо с своими сигналами на RD/WR ? Так тут вроде без такаго буфера работать должно..
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|