Форум myROBOT.ru » Роботы и робототехника » Обо всем » USB RoboFace

Страниц (1): [1]
 

1. mctim - 15 Февраля, 2010 - 18:17:13 - перейти к сообщению
Привет всем!

Хочу просто подключать робот к компьютеру.
Есть полно материала как подключать через COM порт, LPT, UART адаптеры и прочее.
Все эти способы требуют переходника или адаптера, COM и LPT порты есть не на всех ПК.
Вот USB думаю найдется у каждого и у меня есть )

Хочу подключить робота через USB и на ПК с ним общаться через виртуальный COM порт. Это просто с точки зрения программирования на ПК.(для меня по крайней мере)
Нашел сайт с толковыми, как мне кажется, объяснениями и кодом. Только вот самому разобраться не получается (
Там есть схема подключения

И статья с кодом
CODE:
do_unstuff0: ; 1 (1 extra cycle: branch was taken)
in x1, port ; 1 read data from I/O port
andi x1, mask ; 1 check for SE0
breq end_of_packet ; 1 (1 cycle because branch not taken)
ori shift, 0xfc ; 1 mask out 6 recently received bits
andi x3, 0xfe ; 1 the bits we masked shifted right 7
rjmp rxbit1 ; 2 (branch taken)
; ------------------------------------
; 8 cycles

Это, как я понимаю, чтение бита с шины USB.
Есть там еще куча примеров различных устройств.

Для начала наверно следует написать функции инициализации устройства в системе и драйвер к нему. Я немогу разобраться что к чему в этом USB. Что там надо выставлять на шину и как. Как драйвер написать.
Может кто имеет опыт или ссылки полезные, книги. Буду благодарен за помощь.
Думаю из этого всего получится хорошая система контроля робота и начальной отладки. Можно будет давать роботу команды, получать и сохранять состояния переменных и информацию с датчиков. А главное такой способ требует минимум железа.
2. redcat - 15 Февраля, 2010 - 18:31:07 - перейти к сообщению
Советую осуществлять связь УСБ-МК через нормальные , предназначенные для этого, чипы. Меня радует по всем параметрам FT232RL
(Добавление)
А насчёт кода не помогу. В асмах не шарю.
3. nest - 15 Февраля, 2010 - 18:59:11 - перейти к сообщению
mctim, http://www.atmel.com/dyn/product...sp?family_id=607 и там поиск по странице по слову USB.
Но всё не так просто с ним будет. лучше не терять время на разбор USB, а работать по "нормальному" UART (пусть через FT232) :)
4. mctim - 16 Февраля, 2010 - 15:55:36 - перейти к сообщению
redcat, спасибо за совет. Если есть какие полезные материалы по этому поводу - делитесь ) От себя скажу: цена этой микросхемы в 3 раза больше чем МК mega8, она потребляет ток, занимает место на плате.

nest, аппноты смотрел. Мне понравилось AVR309_USB. Там только не совсем понятно это преобразователь USB-RS232 на МК или пример работы с USB, но кажется последнее. Есть там на ассемблере полностью код и с пометкой автора "USER FUNCTIONS".
На том сайте что писал есть простое устройство EasyLogger.2008-02-28. Там тоже сложно разобраться.

Думаю откудато взять функции работы с USB, но не могу разобраться где оно там.
С чего там подрыться, откуда начать? Чтото чтение заметок автора не помогает...
5. nest - 17 Февраля, 2010 - 00:36:00 - перейти к сообщению
mctim, долго и упорно "курить" спецификацию по USB :) (так и задавать в гугль)
только всё это впустую, получается, т.к. появился USB-3. Так что USB-2 уже всё равно скоро похоронят :)

ещё: GAW.RU: Примеры применения USB в микроконтроллерах список статей и разборов про USB в микроконтроллерах разных семейств.
6. mctim - 17 Февраля, 2010 - 22:34:49 - перейти к сообщению
высший восторг "закуриваю" русская версия AVR309 мне нравиться ) Щас разберусь!
А usb 3.0 как я понимаю будет появляться в новых ПК рядышком с usb 2.0. так как они не совместимы. И кто сказал что всеобъемлющий ум начинающих разработчиков не разберется с 3.0 Подмигивающий
7. mctim - 25 Февраля, 2010 - 19:50:01 - перейти к сообщению
AVR 309 - штука рабочая. Только вот не все поддается изменению "под себя".
Короче, тут автор дал готовый драйвер и библиотеку. Если кто владеет информацией как они делаются - делитесь пожалуйста Подмигивающий
8. mctim - 27 Марта, 2010 - 03:48:49 - перейти к сообщению
:) разобрался!

Трудно обьяснить все тонкости процесса потому что большинство было вызвано моей глупостью.

Разрешите похвастаться:

Это USB модуль для последующих экспериментов и разработки.
Основными его частями считаю: собственно "железяку" на картинке, драйвер для ПК и прикладную программу, которая взаимодействует с "железякой" через драйвер.
Создано все это на основе апноты AVR 309 (правда от нее там осталось мало).
Собственно информацию черпал из апноты и книг:
по USB интерфейсу:
- "Практика программирования USB";
- "Шины PCI, USB и FireWire",
по программированию драйверов:
- "Программирование драйверов для Windows" - Комиссарова;
- "Программирование драйверов и систем безопасности" - С.Сорокина;
- "Программирование драйверов под Windows" В.Солдатов.

Ничего сложного там нет. Просто надо думать;)
9. nest - 27 Марта, 2010 - 10:37:19 - перейти к сообщению
ой! а зачем там плавкий предохранитель?:) обычно ставят самовосстанавливающийся.

Чего это всё умеет ? как выглядит программа на стороне PC?
10. mike666 - 27 Марта, 2010 - 13:53:56 - перейти к сообщению
ммм... а действительно зачем? usb она не спасет...
11. mctim - 27 Марта, 2010 - 15:32:08 - перейти к сообщению
nest пишет:
ой! а зачем там плавкий предохранитель?:) обычно ставят самовосстанавливающийся

Не знал о таких. Использовал что было. Надо будет поискать самовосстанавливающиеся - они и поменьше)
mike666 пишет:
usb она не спасет...

Предохранитель на 500 мА. Думаю от перегорания USB спасет если закоротит где.
nest пишет:
Чего это всё умеет ?

Собсно умеет все что запрограммировать. А выглядит это так: с пк передаются посылки по 5 байт. В первом - код функции вызываемой в МК, а в остальных любая информация. Обратно (с МК) можно послать буфер до 256 байт.
nest пишет:
как выглядит программа на стороне PC?

На стороне ПК отправляем сообщения и получаем ответы через драйвер вызовом функции DeviceIoControl. Я написал на С++ класс который работает с устройством.

Дальше хочу снабдить робота радиомодулем чтоб управлять им с ПК.


Если б еще кто радиомодуль доступный подсказал.