|
LDM-XC3SxxxE-PQ208 (XC3S500) и USB3300 USB HS Board |
|
|
|
Jul 4 2015, 15:29
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
вот и есть необходимость подавать данные с плис на компьютер через этот USB 3300. Вменяемого русского описания самой платы не нашел. Про чип USB 3300-EZK, на котором она построена прочитал-разобрался. Мне нужно понять, куда и как (к каким ногам плис и напрямую или через резисторы-конденсаторы) мне прилепить USB. Короче необходимо научить компьютер видеть то, что выдает ПЛИС. Драйвера на эту приблуду имеются стандартные. Данные будут в виде потока 16-ти или 8-ми битных чисел. Прикрепил схему USB. Цитата(Александр77 @ Jul 4 2015, 18:29)  Если с плис раньше не работали, то до проекта далековато - надо тренироваться на кошках, мышках, крокодильчиках. Т.е. научиться понимать чего хочется и как этого достичь.  На мышках уже потренеровался, а на крокодильчиках попутно будем ездить. Ща рисую схему конечного устройства на бумаге. Профессору покажу - если одобрит - буду в ИЗЕ ее рисовать. Скажу так: на вход ПЛИС будет поступать несколько 16-ти битных сигналов (через мультиплексор или на прямую), в ПЛИСине будет происходить над ними обработка и нужно на комп выдать результат и записать в текстовый файл. Задача вроде такая.
|
|
|
|
|
Jul 4 2015, 16:14
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
По поводу документации на плату, может ее у производителя запросить? Насколько понимаю, плата представляет собой поле с контактами плисины. Если это так, то можно и почерпать из даташитаПодключать платку USB можно "почти к любым" выводам (на представленном Вами пдфе сигналы data0...data7, stp, nxt, dir во всяком случае. clkout (если это выход USB3300) - лучше подцепить к тактовому выводу плисины)
|
|
|
|
|
Jul 4 2015, 16:41
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
Цитата(Александр77 @ Jul 4 2015, 21:14)  По поводу документации на плату, может ее у производителя запросить? Насколько понимаю, плата представляет собой поле с контактами плисины. Если это так, то можно и почерпать из даташитаПодключать платку USB можно "почти к любым" выводам (на представленном Вами пдфе сигналы data0...data7, stp, nxt, dir во всяком случае. clkout (если это выход USB3300) - лучше подцепить к тактовому выводу плисины) На ПЛИСину докумнтация есть. Я и хотел разобраться, какие ноги можно подключать, любые или нет. А вот пр USB-ишник мне не совсем понятны названия этих сигналов. И ног у нее 20!!! Что 8 сигнальных ног я понял. А как ее запитать? Для чего остальные ноги? могут ли остаться висячие ноги? Как организовать кодирование инфорации? То есть как 16-ти битовые числа передать на восемь входных ног, передать через USB на компьютер и записать их в текстовый файл? Где почитать? У кого спросить?
|
|
|
|
|
Jul 4 2015, 17:37
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(aleshanoff @ Jul 4 2015, 18:29)  Драйвера на эту приблуду имеются стандартные. Что за драйвера такие интересные? Не поделитесь? По-моему вы не понимаете назначение и возможности этой микросхемы. Она может быть любым устройством или хостом. Цитата(aleshanoff @ Jul 4 2015, 19:41)  ...Как организовать кодирование инфорации? То есть как 16-ти битовые числа передать на восемь входных ног, передать через USB на компьютер и записать их в текстовый файл? Где почитать? У кого спросить? Это микросхема физического уровня USB (проще - PHY). Рулится по ULPI (даташит в сети есть). Чтобы передать данные на компьютер, нужно организовать работу PHY в режиме периферии USB, по сути полностью написать на ПЛИС остальные уровни: пакетный, endpoint. Нужно знать принцип работы USB на всех уровнях, чтобы что-то завелось. Проще будет взять более "умный" контроллер USB, например что-нть от Cypress или FTDI. Имхо для ваших задач этот PHY - пушка по воробьям, если, конечно, не в методических целях.
Сообщение отредактировал Inanity - Jul 4 2015, 17:45
|
|
|
|
|
Jul 4 2015, 17:56
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
драйвер на USB драйвер для USB 2 Цитата(Inanity @ Jul 4 2015, 22:37)  Это микросхема физического уровня USB (проще - PHY). Рулится по ULPI (даташит в сети есть). Чтобы передать данные на компьютер, нужно организовать работу PHY в режиме периферии USB, по сути полностью написать на ПЛИС остальные уровни: пакетный, endpoint. Нужно знать принцип работы USB на всех уровнях, чтобы что-то завелось. Проще будет взять более "умный" контроллер USB, например что-нть от Cypress или FTDI. Имхо для ваших задач этот PHY - пушка по воробьям, если, конечно, не в методических целях. А где об этих уровнях прочитать? И чем "умнее" контроллеры, предложенные вами? Цитата(Александр77 @ Jul 4 2015, 22:45)  В плис реализуется вся логика приема и передачи. Нечто подобное делал на FT, в итоге внутри плис появились буфера для принимаемых и передаваемых потоков. Плюс формирователь пакетов. Набор конечных автоматов для рулежки. Такое ощущение, что я с другой планеты. Очень плохо понимаю, что твоя моя говорить)))) Где б об этом почитать? И много ли ресурсов занимает логика приема-передачи? Желание осилить этот вопрос - огромное, стимул подходящий тоже имеется, и глаза горят и руки на месте - а вголове нет ниче))) Чел, который в этом хоть немного шарит, сейчас в отпуске. Профессор в жлезках не силен. Объяснить, направить некому - печалька короче...
Сообщение отредактировал aleshanoff - Jul 4 2015, 17:59
|
|
|
|
|
Jul 4 2015, 18:07
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(aleshanoff @ Jul 4 2015, 20:56)  А где об этих уровнях прочитать? И чем "умнее" контроллеры, предложенные вами? Такое ощущение, что я с другой планеты. Очень плохо понимаю, что твоя моя говорить)))) Где б об этом почитать? И много ли ресурсов занимает логика приема-передачи? Об этом почитать можно на usb.org. Качайте спецификацию USB и читайте. Умные контроллеры, например любой из этих: http://www.ftdichip.com/FTProducts.htmВ них уже всё сделано до уровня endpoint. Есть буферы, чтобы принять и отправить данные. Ваш PHY всего этого не может, всё это нужно реализовать на логике FPGA. Всё, что он может - кодировать\декодировать данные в NRZI и обратно, отдавать состоянии линии (SE0, SE1, K, J)+ ещё некоторые мелочи, но не более. Такой PHY используется когда надо сделать действительно нестандартное устройство или хост USB. Для решения задачи простой передачи данных лучше использовать более высокоуровневые контроллеры.
|
|
|
|
|
Jul 4 2015, 18:10
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
Цитата(Inanity @ Jul 4 2015, 23:07)  Об этом почитать можно на usb.org. Качайте спецификацию USB и читайте. Умные контроллеры, например любой из этих: http://www.ftdichip.com/FTProducts.htmВ них уже всё сделано до уровня endpoint. Есть буферы, чтобы принять и отправить данные. Ваш PHY всего этого не может, всё это нужно реализовать на логике FPGA. Всё, что он может - кодировать\декодировать данные в NRZI и обратно, отдавать состоянии линии (SE0, SE1, K, J)+ ещё некоторые мелочи, но не более. Такой PHY используется когда надо сделать действительно нестандартное устройство или хост USB. Для решения задачи простой передачи данных лучше использовать более высокоуровневые контроллеры. Спасибо, только что значит спецификация USB. И для какого USB ее читать? и есть источники информации на русском?
Сообщение отредактировал aleshanoff - Jul 4 2015, 18:13
|
|
|
|
|
Jul 4 2015, 19:06
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(aleshanoff @ Jul 4 2015, 21:56)  И чем "умнее" контроллеры, предложенные вами? Контроллеры от FTDI умнее тем, что в них уже имеется парочка мелкой памяти (несколько сотен байт) для того чтобы хранить данные отправляемые от железа в ПК и наоборот. С контроллеров на железо подаются сигналы-признаки наличия/отсутствия данных и возможности заполнения той самой мелкой памяти для передачи потока. Цитата(aleshanoff @ Jul 4 2015, 21:56)  И много ли ресурсов занимает логика приема-передачи? Сейчас по памяти могу только прикинуть: делал 8кБ FIFO для передачи потоков, 128Б FIFO для приема команд. Около 1000 ЛЭ (циклон2) ушло на формирователь пакетов, автоматы, счетчики адресов, синхронизаторы, туда же 256Б двухпортовки.
|
|
|
|
|
Jul 5 2015, 06:26
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(aleshanoff @ Jul 4 2015, 23:21)  Но какой чип Вы именно посоветуете? Я посмотрел FT120 - USB full-speed device controller. Но у него аж 28 ног. может есть что попроще? Если "простота" заключается в числе выводов, то проще наверное не найти. По той причине, что мне не ведомы требования к обеспечению скорости, я бы рекомендовал более сложную и универсальную микросхему, что-нибудь из FT2232H/FT4232H. У них большее количество выводов, но в случае, когда не хватит скорости простого UART-USB, можно будет быстро перейти в синхронный режим и гонять данные на более высокой скорости.
|
|
|
|
|
Jul 5 2015, 08:33
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
Цитата(Александр77 @ Jul 5 2015, 11:26)  Если "простота" заключается в числе выводов, то проще наверное не найти. По той причине, что мне не ведомы требования к обеспечению скорости, я бы рекомендовал более сложную и универсальную микросхему, что-нибудь из FT2232H/FT4232H. У них большее количество выводов, но в случае, когда не хватит скорости простого UART-USB, можно будет быстро перейти в синхронный режим и гонять данные на более высокой скорости. нашел эту http://www.chipdip.ru/product1/8374297619/но дороговато. а вот эта не может подойти? http://www.chipdip.ru/product/cp2102-usb-uart-board-mini/Скорость я не рассчитывал, но нужно будет где-то 6000-7000 16-разрядных чисел в секунду передавать на компьютер, то есть если мои знания меня не подводят 120-140 кб/с А может вот эту попробовать? http://www.chipdip.ru/product/ft245-usb-fifo-board-type-a/
|
|
|
|
|
Jul 5 2015, 13:10
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
А как Вы видете передачу? FT232 и CP2102 это преобразователи uart-usb. При их использовании придется писать (или взять чей-то готовый) контроллер uart. Настроить и далее гонять побайтно. FT245 работает с параллельным кодом, общение сводится к записи/чтению байтных посылок. Что Вам более подходит, то и выбирайте. Есть еще вариант
|
|
|
|
|
Jul 6 2015, 10:13
|

Участник

Группа: Участник
Сообщений: 68
Регистрация: 2-05-15
Из: Смоленск
Пользователь №: 86 484

|
Товарищи, немного разобрался с назначением необходимого устройства. USB плата будет выполнять роль хоста и выдавать данные на компьютер. Данные будут в виде потока 2 байтовых чисел. Скорость передачи пока не важна. На данный момент важна сама реализация передачи данных от устройства. Буфер данных будет организован в ПЛИС. USB3300 USB HS Board позволяет передавать данные, как я понял, по-байтно, последовательно обрабатывая данные на 8 сигнальных входах. То есть если я на 8 наг плис подаю сигнал, то в USB плате он преобразуется в 2 байта данных и через USB выход должен оказаться в компьютере, в котором с помощью драйвера должна происходить запись в файл. Тактовать передачу данных в будущем планируется от ПЛИС. Сейчас хотя бы хочу собрать на ПЛИС счетчик нажатия кнопки, который будет выдавать количество нажатий на ноги ПЛИС и от другой кнопки назначить управление передачей. Но как этого добиться? Не понятна организация канала от плис до USB выхода, то есть какие сигналы нужны для ULPI ? Не понятна физика процесса записи данных в файл. Также встает вопорос о питании этой приблуды и подключении к компу. Согласно описания там есть два питающих напряжения 3.3V и 5V. Но я не понял для чего они нужны, и будет ли достаточно того, что с компа через USB выход будет подаваться напряжение. Помогите, кто чем может. PS Приобретение другого устройства на основе FTxxx возможно, но там такие же вопросы возникают. В типовой схеме ULPI 12 входов, 9 я понимаю, а остальные 3 для чего? и где их взять?
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 6 2015, 10:45
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(aleshanoff @ Jul 6 2015, 13:13)  То есть если я на 8 наг плис подаю сигнал, то в USB плате он преобразуется в 2 байта данных и через USB выход должен оказаться в компьютере, в котором с помощью драйвера должна происходить запись в файл. И не надейтесь  Что бы компьютер понял то, что вы ему передаете, вы должны загружать в USB3300 не просто байты, а формировать пакеты специального вида. Кроме того, вам придется передавать и принимать массу пакетов, которые не относятся к вашим данным, а нужны для того, что бы компьютер смог вообще работать с USB3300. Для обеспечения этого всего как раз и используют USB стек. Контролеры от FDTI этого всего не требуют. Они всю обработку всех пакетов делают внутри себя, а вам наружу отдают только данные для приема/передачи в чистом виде (ваши 2 байта). Весь USB стек у них внутри. Собственно этим и отличаются FDTI и USB3300
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|