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

 
 
 
Reply to this topicStart new topic
> DMA & USB в lpc2148, тыкните носом в пример использования DMA
klen
сообщение Oct 27 2007, 09:16
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Всем привет .
Использую для PC-хостов libusb с http://sourceforge.net/projects/libusb
для lpc2148 использую стек liblpcusb c http://sourceforge.net/projects/lpcusb
Все изумительнол работает и устраивает. скорость до 1,6 м/с
Но liblpcusb не использует DMA, както это не кашерно. если есть железо - оно должно работать.

Почитал даташит, описание очень интересное - про регистры DMA все понятно, непонятно зачем они нужны и как их использовать!

Нужен пример с камментами. чтоб разобратся и дописать lpcusb
с DMA никогда дела не имел но имею общие представления о нем.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 27 2007, 09:26
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



http://tnkernel.com/usb_bulk.html
Из беглого ознакомления понял, что от DMA толку не слишком много, впрочем могу ошибаться
Go to the top of the page
 
+Quote Post
klen
сообщение Oct 27 2007, 10:02
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(DASM @ Oct 27 2007, 13:26) *
что от DMA толку не слишком много, впрочем могу ошибаться

ддаже если нету толку, он всеравно есть - дополнительные 16к озу
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 27 2007, 10:12
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



не 16, а 8. И использовать её и так можно под свои нужды, без всяких DMA
Go to the top of the page
 
+Quote Post
Abo
сообщение Oct 27 2007, 11:34
Сообщение #5


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

Группа: Свой
Сообщений: 101
Регистрация: 9-01-06
Пользователь №: 12 967



Цитата(klen @ Oct 27 2007, 13:16) *
Все изумительнол работает и устраивает. скорость до 1,6 м/с


1,6 Мбайт/с быть не может. Что то не так меряете. (кстати 12 / 8 к сожалению только 1,5).
Go to the top of the page
 
+Quote Post
klen
сообщение Oct 27 2007, 13:28
Сообщение #6


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Abo @ Oct 27 2007, 15:34) *
1,6 Мбайт/с быть не может. Что то не так меряете. (кстати 12 / 8 к сожалению только 1,5).

А как надо? пишу 1 мегабайт с PC в libusb , на ней мерю записи чтения. в lpc кольцевой буффер 32к, потом еще и проверяю что пишется правильно. Более того я сдел плату генератор-произвольгого сигнала на Olimex H-lpc2148 лью синал в буфер ЦАПа через usb, все работает.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 27 2007, 20:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Что значит как надо ? У Вас та скорость, что Вы говорит и так выше максимально возможной для full speed USB. smile.gif
Go to the top of the page
 
+Quote Post
Alex03
сообщение Oct 29 2007, 08:25
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(klen @ Oct 27 2007, 18:28) *
А как надо? пишу 1 мегабайт с PC в libusb , на ней мерю записи чтения.


Присоединяюсь к мнению DASM-а. 1.5 теоритический максимум. Реальный намного меньше.

Ещё по поводу libusb - есть неприятный момент при чтении с таймаутом на примере чтения bulk-а. Таймаут используется Юзерспейсный, по истечении времени Юзерспейс тормозит кернельную часть. Если в этот момент кернельная часть уже чтото читает/прочитала с девайса но не отдала в юзерспейсную часть, то эти данные теряются.
Go to the top of the page
 
+Quote Post
klen
сообщение Oct 29 2007, 10:21
Сообщение #9


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Alex03 @ Oct 29 2007, 11:25) *
Присоединяюсь к мнению DASM-а. 1.5 теоритический максимум. Реальный намного меньше.

с этим понятно, ошибка была при записи с PC.

Цитата
Ещё по поводу libusb - есть неприятный момент при чтении с таймаутом на примере чтения bulk-а. Таймаут используется Юзерспейсный, по истечении времени Юзерспейс тормозит кернельную часть. Если в этот момент кернельная часть уже чтото читает/прочитала с девайса но не отдала в юзерспейсную часть, то эти данные теряются.

Что предлагается?
Go to the top of the page
 
+Quote Post
Abo
сообщение Oct 29 2007, 13:08
Сообщение #10


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

Группа: Свой
Сообщений: 101
Регистрация: 9-01-06
Пользователь №: 12 967



Цитата(klen @ Oct 29 2007, 14:21) *
Что предлагается?



Вообще-то bulk - канал связи с гарантированной доставкой.
Таймаут на чтение не нужен - если данные по bulk каналу не приходят, значит их не посылают.
Для контроля подключенности и работоспособности устройства со стороны PC целесообразно контролировать периодическую посылку данных через изохронные либо интеррапт каналы.
Со стороны устройства можно проверять приход токенов SOF, что будет говорить о том что хост функционирует.
Go to the top of the page
 
+Quote Post

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

 


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


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