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

 
 
> LPC1768 + модуль USB
TAutomatic
сообщение Jun 14 2012, 12:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Добрый день, коллеги.
Есть вопрос по работе модуля USB. Интересует режим CDC. Глубоко не разбирался, посмотрел проет Keilа USBCDC из lpc17xx.cmsis.driver.library. Нужные модули подключил к проекту, все нормально. Девайс опознался как COM порт - тоже все нормально. Данные с компа получает нормально, но вот с ответом проблемы. Первый ответ передается, комп его принимает по количеству данных и содержимому правильно. А вот на второй запрос принимает данные по количеству правильно, но все нули. Как будто USB модуль контроллера требует какой-то переинициализации или типа сброса. То, что комп принимает данные правильно, практически не сомневаюсь. Во-первых процедуры работают нормально при обмене через UART контроллера, во вторых ответ принимается и по количеству в буфере приемника совпадает с требуемым. Что делаю не так? Заранее спасибо.

Почему думаю, что нужна переинициализация или сброс - после приема команды и передачи ответа делаю ресет контроллеру и снова получаю нормальный ответ а не нули.

Сообщение отредактировал TAutomatic - Jun 14 2012, 12:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TAutomatic
сообщение Jun 15 2012, 16:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



С этой проблемой разобрался. Указанная библиотека служит для организации программного моста USB->UART. Поскольку мне направление УАРТа не нужно было, почистил исходники, да видимо перестарался. Вернулся к началу, все заработало нормально. За исключением одного: из компа в девайс посылаю пакеты любой длины, вплоть до 512 байт, длинее мне не нужно, прием происходит нормальный. А вот в ответ можно посылать пакеты только по 32 байта.Вернее посылать тоже можно любого размера, принимается толькоь последних 32 байта. Хотя размер буфера передатчика и иприемника устанавливается одинаковым с помощью одного дефайна. Поэтому и возник вопрос, так и должно быть? Очень неудобно. Девайсу одним пакетом 512 байт, в ответ кучей мелких пакетов по 32 байта. Может кто-то подскажет по своему опыту?

Сообщение отредактировал IgorKossak - Jun 15 2012, 17:18
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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