Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2019-фев-21 02:29

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 200 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.
Автор Сообщение
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-13 16:22 
Не в сети

Зарегистрирован: 2016-апр-13 14:57
Сообщения: 5
Добрый день.
При разработке столкнулся со следующей проблемой.
Устройство USB CDC (код взят из примера из стандартной библиотеки) нормально подключается к компьютеру после подачи питания и в ком порт приходят данные от устройства.
Если закрыть порт и открыть снова, не отключая кабель, то порт также исправно функционирует.
Но если отключить и затем снова подключить кабель (при закрытом порте), данные в порт идти перестают.
При этом устройство нормально отображается в системе.

Подскажите, в каком направлении искать причину проблемы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-14 14:28 
Не в сети

Зарегистрирован: 2015-ноя-20 14:38
Сообщения: 3
Добрый день.
Связываюсь с отладочной платой через USB интерфейс, используя виртуальный COM порт, как в примере. Данные получаю и передаю без проблем, однако интересуют следующие моменты:
Почему, если я меняю скорость порта на компьютере, и оставляю без изменений скорость порта VCOM, микроконтроллер все равно получает корректные данные? Каким образом там автоматически меняется скорость приемника?
Каким образом используя библиотеку CDC я могу получить настройки конфигурации VCOM компьютера моей отладочной платой?
Я считал что функции SetLineCoding и GetLineCoding должны помочь, но как то у меня никак не получилось получить настройки :)
Так же, если учесть что в настройках LineCoding у меня стоит скорость 115200, а передача идет, со стороны компьютера на плату, на скорости 921600, и прием происходит без ошибок,возможно реальные настройки VCOM платы хранятся в какой то другой структуре?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-21 08:52 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 415
peter.b
Цитата:
Подскажите, в каком направлении искать причину проблемы.

После отключения кабеля необходимо, чтобы МК сбросил адрес устройства в 0.
Для этого я использовал SOF пакеты. Если приходят (каждую мс счетчик меняется на 1)- устройство подключено, если перестали приходить - устройство отключено - сбрасываем адрес в 0

OrionJM
Если вы не делаете реального переходника USB-UART, то не принципиально на какой скорости идет обмен между ПК и устройством. Эти параметры должны ипользоваться для настройки модуля UART, который будет передавать данные дальше.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-21 09:54 
Не в сети

Зарегистрирован: 2015-ноя-20 14:38
Сообщения: 3
редактор писал(а):
peter.b

OrionJM
Если вы не делаете реального переходника USB-UART, то не принципиально на какой скорости идет обмен между ПК и устройством. Эти параметры должны ипользоваться для настройки модуля UART, который будет передавать данные дальше.

Я не делаю реального переходника, но пытаюсь получить эти параметры, чтобы настроить модуль UART который будет передавать дальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-21 20:15 
Не в сети

Зарегистрирован: 2013-фев-16 18:20
Сообщения: 56
Откуда: РФ, г. Курск
редактор писал(а):
После отключения кабеля необходимо, чтобы МК сбросил адрес устройства в 0.
Для этого я использовал SOF пакеты. Если приходят (каждую мс счетчик меняется на 1)- устройство подключено, если перестали приходить - устройство отключено - сбрасываем адрес в 0


Если перестали приходить SOF-пакеты, то это может говорить также о переводе вашего устройства в suspend mode.
Адрес сбрасывают в 0, как правило, при сбросе на шине.

_________________
"Грабить один банк три раза подряд - я восхищаюсь твоим стилем, Роберто!"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-22 09:47 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 415
Цитата:
Если перестали приходить SOF-пакеты, то это может говорить также о переводе вашего устройства в suspend mode.

suspend mode - как я понимаю, это когда ПК в спячку уходит (я закрыл крышку ноутбука, отключил все и пошел домой - не критично).
Можете предложить другой способ, который позволит определить подключение к шине?

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-апр-28 20:42 
Не в сети

Зарегистрирован: 2013-фев-16 18:20
Сообщения: 56
Откуда: РФ, г. Курск
редактор писал(а):
Цитата:
Если перестали приходить SOF-пакеты, то это может говорить также о переводе вашего устройства в suspend mode.

suspend mode - как я понимаю, это когда ПК в спячку уходит (я закрыл крышку ноутбука, отключил все и пошел домой - не критично).
Можете предложить другой способ, который позволит определить подключение к шине?

В общем случае, если устройство self-powered, то можно попробовать приспособить контрольную точку типа interrupt: есть запросы от хоста, значит подключен. Пропали - значит отключен

_________________
"Грабить один банк три раза подряд - я восхищаюсь твоим стилем, Роберто!"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-май-13 09:26 
Не в сети

Зарегистрирован: 2016-апр-13 14:57
Сообщения: 5
brutal_codemaker писал(а):
редактор писал(а):
Цитата:
Если перестали приходить SOF-пакеты, то это может говорить также о переводе вашего устройства в suspend mode.

suspend mode - как я понимаю, это когда ПК в спячку уходит (я закрыл крышку ноутбука, отключил все и пошел домой - не критично).
Можете предложить другой способ, который позволит определить подключение к шине?

В общем случае, если устройство self-powered, то можно попробовать приспособить контрольную точку типа interrupt: есть запросы от хоста, значит подключен. Пропали - значит отключен


Спасибо за ответы, я что-то даже и забыл что написал здесь.
Все намного проще.
Нужно было включить
#define USB_CDC_CONTROL_LINE_STATE_SUPPORTED
в настройках USB

Для удобства работы с ком портом можно определить коллбэк
-#define USB_CDC_HANDLE_CONTROL_LINE_STATE(wVALUE, wINDEX) USB_SUCCESS
+#define USB_CDC_HANDLE_CONTROL_LINE_STATE(wValue, wIndex) VCOM_Open(wValue, wIndex)

+USB_Result VCOM_Open(uint16_t wValue, uint16_t wIndex) {
+ if (wValue == 0x0003) {
+ VCOMPortOpened= true;
+ } else if (wValue == 0x0002) {
+ VCOMPortOpened= false;
+ }
+ return USB_SUCCESS;
+}

Глобальную переменную VCOMPortOpened можно использовать когда нужно проверить открыт ли порт со стороны ПК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июн-09 22:01 
Не в сети

Зарегистрирован: 2016-мар-20 12:50
Сообщения: 18
Откуда: Москва
Продублирую вопрос в этот раздел.

Использую контроллер 1986BE9x, запустил пример с USB CDC. Эхо работает нормально.
Но вопрос в следующем, как мне правильно написать подобную логику?

Код:
void SomeFunction(void)
{
  USB_CDC_SendData(...);
  /* Здесь нужно проверить какой-то флаг или что? */
  USB_CDC_SendData(...);
}


Как определить когда завершилась передача после вызова USB_CDC_SendData в первый раз и можно вызывать ее снова?
Если вызывать функции подряд - ничего не получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июн-14 13:22 
Не в сети
Аватара пользователя

Зарегистрирован: 2016-май-25 16:21
Сообщения: 11
Откуда: Рязань
А USB host'а приличного никто случаем не реализовал (желательно с реализованной файловой ситемой) ? А то очень хотелось б, инициализировать флешку и записывать файлы на нее (журнал полетов к примеру) прямо со своей платы) проект для отладочной со своим хостом и исползованием фитоновской библеотеки прилагаю) (проект не тестировался с подключенным девайсом)


Вложения:
main three.rar [1.21 МБ]
Скачиваний: 154

_________________
Во славу империи БАНЗАЙ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июн-14 18:39 
Не в сети

Зарегистрирован: 2011-сен-20 11:53
Сообщения: 56
kamikazzze писал(а):
А то очень хотелось б, инициализировать флешку и записывать файлы на нее (журнал полетов к примеру) прямо со своей платы)

Мне кажется проще и надежнее это реализовать через SPI на MicroSD.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июл-06 10:06 
Не в сети

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 59
Добрый день!
Как можно сбросить биты в регистре MDR_USB->USB_SEP[x].STS, записью нулей или единицы? В документации ничего не сказано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июл-07 11:39 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
ElectroAlex писал(а):
Добрый день!
Как можно сбросить биты в регистре MDR_USB->USB_SEP[x].STS, записью нулей или единицы? В документации ничего не сказано.

Никак. Это регистр флагов, он обновляет свое значение после завершения USB транзакции (независимо от результата успешно или с ошибкой).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июл-07 12:57 
Не в сети

Зарегистрирован: 2010-апр-18 12:59
Сообщения: 59
Хорошо. А когда в таком случае сбрасывается флаг SCACKRXED?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB
СообщениеДобавлено: 2016-июл-07 17:17 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
флаги в регистре MDR_USB->USB_SEP[x].STS обновятся после завершения следующей транзакции.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 200 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: DungeonLords и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB