Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: пк <-> usb <-> плис
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
enzaime
Вопрос такой: как имея микроконтроллер или плис ( не принципиально что, важно только что на нужных ногох в нужные моменты времени можно устанавливать 1 или 0 ) и провод USB ( один конец втыкается в комп, другой в виде 4 проводков (земля, питание,D+,D-) подсоединён к мк или плис, передать для начала 1 байт туда и обратно. Что для этого нужно? (по минимуму). Практического опыта в таких вещах у меня нет. Я представляю это так:

1. написать прошивку для плис/мк
2. используя стандартные средства Windows передать/принять байт. (не писать собственный драйвер, а именно используя стандартные средства, т.е. например винда общается с устройством, думая что это файл ,например, и используя функции записи/чтения в файл обменивается данными или ещё как-то, используя winapi)

Вот вроде бы всё просто, но я не понимаю в каком направлении идти. Хотелось бы найти самый простой путь и не добавляя что-то новое в цепочку (пк<->кабель<->мк/плис)
Amurak
Цитата(enzaime @ Dec 4 2015, 13:08) *
Хотелось бы найти самый простой путь и не добавляя что-то новое в цепочку

Добавьте переходник USB - RS-232 и будет вам счастье.
XVR
Все уже сделали до нас - https://ru.wikipedia.org/wiki/V-USB
enzaime
Цитата
Добавьте переходник USB - RS-232 и будет вам счастье.

А в чём его преимущество? Что он делает? Разве так код не усложнится? Как им пользоваться? (хотя бы приблизительно)
Предположим будет такой переходник. Я втыкаю usb в пк. Комп видит новое устройство, я устанавливаю драйвера от производителя. Что дальше? Это так будет выглядеть?
1. подключение библиотеки производителя
2. использовать библиотечную функцию записи байта
3. использовать библиотечную функцию чтения байта
Или всё будет делаться стандартными средствами windows. Опишите, пожалуйста, приблизительную схему как это выглядит.

Цитата
Все уже сделали до нас - https://ru.wikipedia.org/wiki/V-USB

библиотека v-usb работает только с контроллерами или с плис её тоже можно использовать?
XVR
Цитата(enzaime @ Dec 4 2015, 13:33) *
А в чём его преимущество? Что он делает?
Упрощает жизнь разработчику (причем с обоих сторон)

Цитата
Разве так код не усложнится? Как им пользоваться? (хотя бы приблизительно)
Код не усложнится. Пользоваться элементарно

Цитата
Предположим будет такой переходник. Я втыкаю usb в пк. Комп видит новое устройство, я устанавливаю драйвера от производителя. Что дальше?
Дальше со стороны Windows появится виртуальный COM порт (с точки зрения программы на Windows он будет вполне реальным железным COM портом). Со стороны FPGA будет реальный UART со 2мя линиями TX и RX (можно еще добавить линий до полного RS232, если надо).

Цитата
библиотека v-usb работает только с контроллерами или с плис её тоже можно использовать?
Она сама только с контролерами, но можно посмотреть в ее исходные тексты и адаптировать их для FPGA (но это занятие не из легких sm.gif )
Amurak
Цитата(enzaime @ Dec 4 2015, 13:38) *
Опишите, пожалуйста, приблизительную схему как это выглядит.

Дальше либо реализуете UART в ПЛИС (готовых схем полно), либо используете UART в микроконтроллере. Соединяете все это дело проводами. После чего либо берете готовую программу-терминал COM порта и засылаете данные через нее, либо пишете свой терминал на каком-нибудь C#.
enzaime
Цитата
Дальше со стороны Windows появится виртуальный COM порт (с точки зрения программы на Windows он будет вполне реальным железным COM портом).

круто, т.е. можно будет программно передавать данные через com порт средствами windows?
Цитата
Со стороны FPGA будет реальный UART со 2мя линиями TX и RX

можете дать ссылку или название как называется модуль который должен быть реализован в плис (что-то вроде хост или slave)? А то мне не совсем ясно что гуглить.
iosifk
Цитата(enzaime @ Dec 4 2015, 13:08) *
Вопрос такой: как имея микроконтроллер или плис ( не принципиально что, важно только что на нужных ногох в нужные моменты времени можно устанавливать 1 или 0 )

На самом деле передать байт не проблема. Проблема в том, что надо передавать Данные и Команды. А потому поверх "байт" появляется "протокол передачи"...
И либо информация передается символьными кодами, либо бит- или байт-стаффинги. Дальше идет определение кадра на передачу-прием... Так что начните с этого...
Corvus
Цитата(enzaime @ Dec 4 2015, 13:49) *
круто, т.е. можно будет программно передавать данные через com порт средствами windows?

да

Цитата(enzaime @ Dec 4 2015, 13:49) *
можете дать ссылку или название как называется модуль который должен быть реализован в плис (что-то вроде хост или slave)? А то мне не совсем ясно что гуглить.

В ПЛИС у Вас должен быть реализован обычный UART. Например:
http://opencores.org/project,osdvu
Но можно и самому написать для практики.
Amurak
Цитата(enzaime @ Dec 4 2015, 13:49) *
круто, т.е. можно будет программно передавать данные через com порт средствами windows?

Ага.

Цитата
можете дать ссылку или название как называется модуль который должен быть реализован в плис (что-то вроде хост или slave)? А то мне не совсем ясно что гуглить.

Гуглить по тегами UART VHDL/Verilog.
Можно также взять из книги: FPGA Prototyping by VHDL Examples.
Можно взять на сайте opencores com, VHDL 16550 UART core.
kovigor
Цитата(enzaime @ Dec 4 2015, 13:49) *
круто, т.е. можно будет программно передавать данные через com порт средствами windows?

можете дать ссылку или название как называется модуль который должен быть реализован в плис (что-то вроде хост или slave)? А то мне не совсем ясно что гуглить.

1. Да, можно

2. Вот здесь можно посмотреть, как сделать простейший UART на ПЛИС:
http://www.fpga4fun.com/SerialInterface.html
enzaime
Ух ты здорово. А не подскажите ещё как называются микросхемы которые преобразовывают usb в rs232, ну типа как термин, при названии которого сразу ясно о чём речь, без лишних пояснений.
enzaime
О, спасибо.
Anton1990
Цитата(enzaime @ Dec 4 2015, 13:08) *
Вопрос такой: как имея микроконтроллер или плис ( не принципиально что, важно только что на нужных ногох в нужные моменты времени можно устанавливать 1 или 0 ) и провод USB ( один конец втыкается в комп, другой в виде 4 проводков (земля, питание,D+,D-) подсоединён к мк или плис, передать для начала 1 байт туда и обратно. Что для этого нужно? (по минимуму). Практического опыта в таких вещах у меня нет. Я представляю это так:

1. написать прошивку для плис/мк
2. используя стандартные средства Windows передать/принять байт. (не писать собственный драйвер, а именно используя стандартные средства, т.е. например винда общается с устройством, думая что это файл ,например, и используя функции записи/чтения в файл обменивается данными или ещё как-то, используя winapi)

Вот вроде бы всё просто, но я не понимаю в каком направлении идти. Хотелось бы найти самый простой путь и не добавляя что-то новое в цепочку (пк<->кабель<->мк/плис)

Применяешь микросхему FT2232H - драйвера стандартные для все ОС. Микропрограммирование ненужно, примеров работы с драйвером куча на разных языках. Если нужны подробности пиши.
enzaime
А подойдёт ли такой модуль http://ru.aliexpress.com/item/CP2102-USB-2...2534146426.html к плате DE0 nano http://www.terasic.com.tw/cgi-bin/page/arc...93&PartNo=2 ? Сам модуль я подключу к De0 nano, соединив контакты TXD, RXD к выводам отладочной платы.
dm.pogrebnoy
Цитата(enzaime @ Dec 7 2015, 11:20) *
А подойдёт ли такой модуль http://ru.aliexpress.com/item/CP2102-USB-2...2534146426.html к плате DE0 nano http://www.terasic.com.tw/cgi-bin/page/arc...93&PartNo=2 ? Сам модуль я подключу к De0 nano, соединив контакты TXD, RXD к выводам отладочной платы.


Подойдет.
Vasily_
Так на вашей DE0 nano уже все есть.
enzaime
Цитата
Так на вашей DE0 nano уже все есть.

Ну там есть микросхема ft232 но она настроена на программирование плис. В общем я не хотел бы что-то трогать на отладочной плате, т.к. не уверен что смогу исправить в случае чего. Мне психологически пока проще затариться у китайских друзей платками и подсоединить их как отдельные модули
Цитата
Подойдет.

Спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.