реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> USB bulk, пример из TNKernel
toweroff
сообщение Feb 13 2010, 17:55
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Озадачился скоростью передачи по USB.
Выжал из своего девайса (базировался на примере Keil) порядка 6.8 Мбит/с, камни пользовал LPC2148 и LPC2468
Наткнулся на TNKernel.com, Юрий демонстрирует бенчи порядка >1МБайт/с

Интересно, думаю, посмотреть реализацию, в частности DMA. Скачал архив, скормил Keil (4.03)
Скомпилилось. Прошил с помощью FlashMagic в LPC2148. Девайс не проходит энумерацию sad.gif
Смотрю через USBTrace - хост шлет в девайс 7 байт: B0 04 00 00 00 00 07, ответа от девайса нет

Полазил по форуму - похоже, никто граблей не встретил с данным примером... на что же я напоролся - непонятно
На всякий случай проставил IAR, подсунул проект для него из \LPC2146_USB_DMA\IAR\ - йар вообще компилировать не хочет, ошибки сыпет

Кто компилировал под Keil, желательно вариант с DMA, отзовитесь, пожалуйста... не пойму где, казалось бы, рабочий проект может не работать
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 14 2010, 15:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



И еще один вопрос... драйвер libusb может "тормозить" под Win32? Кто какие скорости с ним "выжимал"?
Возможно, я просто не оттуда копаю проблему скорости передачи...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 15 2010, 07:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Я пользуюсь bulk usb на rm9200. Никакой ОС нет. Прием-передача по прерыванию. Драйвер стандартный из DDK. Реальная скорость передачи PC-device ~800-820 KBytes/s. При этом данные не просто принимаются, а идет их "складирование" в кольцевой буфер, что тоже съедает часть времени.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 15 2010, 13:10
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(sergeeff @ Feb 15 2010, 10:10) *
Я пользуюсь bulk usb на rm9200. Никакой ОС нет. Прием-передача по прерыванию. Драйвер стандартный из DDK. Реальная скорость передачи PC-device ~800-820 KBytes/s. При этом данные не просто принимаются, а идет их "складирование" в кольцевой буфер, что тоже съедает часть времени.

DMA используете?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 15 2010, 13:30
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



В rm9200 нет DMA на usb
Go to the top of the page
 
+Quote Post
Rusoil
сообщение Feb 15 2010, 17:45
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



Цитата(toweroff @ Feb 13 2010, 21:55) *
Скомпилилось. Прошил с помощью FlashMagic в LPC2148. Девайс не проходит энумерацию sad.gif
Смотрю через USBTrace - хост шлет в девайс 7 байт: B0 04 00 00 00 00 07, ответа от девайса нет


А разве setup-запросы не 8-ми байтные?
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Feb 15 2010, 18:48
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Цитата(toweroff @ Feb 13 2010, 21:55) *
ответа от девайса нет


A вывод P0.31 LPC214x в качестве USB_CONNECT у вас задействован ?
Keil development kit (MCB2140) не использует его (один пользователь
писал мне, что нарвался на такую ситуацию)

По поводу "не компилируется IAR" - если версия не IAR ARM v.4.30,
то, возможно, в проекте необходимо сделать соответствующие изменения
(не думаю, что это будет проблемой)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 16 2010, 10:43
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата
А разве setup-запросы не 8-ми байтные?

это все, что отловил USBTrace

Цитата( @ Feb 15 2010, 21:48) *
A вывод P0.31 LPC214x в качестве USB_CONNECT у вас задействован ?

да, на нем висит PNP, коллектором через 1.5кОм да D+, эмиттером на +3.3в

Цитата(yuri_t @ Feb 15 2010, 21:48) *
По поводу "не компилируется IAR" - если версия не IAR ARM v.4.30,
то, возможно, в проекте необходимо сделать соответствующие изменения
(не думаю, что это будет проблемой)

c IAR вообще дела не имел, так что как раз проблема может возникнуть smile.gif
Go to the top of the page
 
+Quote Post
olegras
сообщение Feb 18 2010, 11:43
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(toweroff @ Feb 13 2010, 21:55) *
Девайс не проходит энумерацию sad.gif
...ответа от девайса нет


У меня такая же проблема. Ответа от девайса нет.
На выходе порта Р0.31 - "1", то есть транзистор закрыт и подтяжки на D+ нету (и светодиод не горит). Если D+ принудительно потянуть - в системе появляется "неизвестное устройство" с ВИД-ПИД = 0000-0000. В исходниках так и не нашел то место, где Р0.31 сбрасывается в ноль (а сбрасываться должен).
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Feb 19 2010, 07:55
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Вот пример LPC2146_USB с проектами для последних версий
компиляторов IAR 5.41 & KEIL 4.03 (и компилируется без ошибок и работает - проверено...)
Прикрепленные файлы
Прикрепленный файл  arm_usb_new_compilers.zip ( 124.97 килобайт ) Кол-во скачиваний: 81
 
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 19 2010, 13:14
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(yuri_t @ Feb 19 2010, 10:55) *
Вот пример LPC2146_USB с проектами для последних версий
компиляторов IAR 5.41 & KEIL 4.03 (и компилируется без ошибок и работает - проверено...)

спасибо, пойду тестить smile.gif

Цитата(olegras @ Feb 18 2010, 14:43) *
У меня такая же проблема. Ответа от девайса нет.
На выходе порта Р0.31 - "1", то есть транзистор закрыт и подтяжки на D+ нету (и светодиод не горит). Если D+ принудительно потянуть - в системе появляется "неизвестное устройство" с ВИД-ПИД = 0000-0000. В исходниках так и не нашел то место, где Р0.31 сбрасывается в ноль (а сбрасываться должен).

у меня светодиод CONNECT загорается... плата Embedded Artists LPC213x/4x Quickstart Board v1.1
посмотрел схему Юрия - с ней в ключевых местах идентичная
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 19 2010, 16:04
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



yuri_t, спасибо, все теперь заработало!
А можно посмотреть на реализацию с DMA?
Go to the top of the page
 
+Quote Post
olegras
сообщение Feb 23 2010, 07:56
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(toweroff @ Feb 19 2010, 17:14) *
спасибо, пойду тестить smile.gif


Какие впечатления (в смысле скорости)? У меня по сравнению с LPCUSB скорость PC->LPC не изменилась. Скорее всего виновата libusb.

Сообщение отредактировал olegras - Feb 23 2010, 08:01
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 23 2010, 09:42
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(olegras @ Feb 23 2010, 10:56) *
Какие впечатления (в смысле скорости)? У меня по сравнению с LPCUSB скорость PC->LPC не изменилась. Скорее всего виновата libusb.

получается порядка 850кбайт-1Мбайт/сек
такая же примерно скорость у меня с примером Keil без DMA (с учетом обработки/пересылки полученных данных)
с DMA Keil не завелся, пока не понял почему... поэтому и спрашивал у Юрия его пример под TNKernel с DMA
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Feb 24 2010, 07:36
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Вот проекты TNKernel USB_BULK_DMA для компиляторов Keil 4.03 и IAR 5.41.

Что интересно, для достижения скорости как чтения, так и записи 1.083 МВyte/сек
в IAR 5.41 надо ставить оптимизацию Full, а в Keil 4.03 достаточно -O1
Прикрепленные файлы
Прикрепленный файл  usb_dma_keil4xx_iar5xx.zip ( 109.33 килобайт ) Кол-во скачиваний: 89
 
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 01:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016