Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
1

Любимый usb :)

13.03.2014, 21:59. Просмотров 3173. Ответов 12
Метки нет (Все метки)

Здравствуйте форумчане, обращаюсь к вам с проблемой. Зашел буквально в тупик в поисках причин и решений.Может быть есть какие то мысли, подскажите. Ситуация такова, есть устройство которые выглядит и функционирует как обычная usb клавиатура. На борту устройства stm32f107rbt6, почему именно он не важно. Устройство работало практически идеально до того времени , как сделали внутренний usb хаб и с того момента все пошло наперекосяк. Собственно проблема, вот в чем. Выяснилось что при работе именно с хабами, клавиатура внезапно начинает куралесить, по каким причинам не понятно, собственно вот что выходит на usblyzer http://pixs.ru/showymage/errorjpg_6134447_11235720.jpg . Картина такова, что клавиатура может нормально функционировать рендомное количество времени, может сразу выдавать такие сообщения. а может минут 40 проработать без сбоя. Я сломал всю голову, перерыл множество страниц в интернете, но так и не нашел. в чем может быть косяк. Вся прелесть ситуации, что через дебагер, все работает как часы, такая картина, только без дебагга, только при работе через любой хаб. Собственно могу кинуть проект, но он довольно большой, мне бы хотяб узнать что в теории может быть. Так же хочу сказать, что отправка пакета клавиатурой осуществляется ТОЛЬКО по изменению буффера, то есть по факту по нажатию клавиши на клавиатуре. Ошибка же показанная на картинке, возникает в произвольный момент времени, тоесть клава может в этот момент быть не тронутой, но порт заресетится. Собственно, у коллеги, который пишет программу на аналогичном контроллере,а именно мышку, такая же проблема, не работает имеенно с хабами, но у него намертво виснит, после данной ошибки, у меня же ресетит порт, после чего продолжает функционировать.Так же путем проб выяснилось , что у него не работает только при включенном adc и при отправке определенных пакетов. Ошибка 1 в 1 такая же. Надеюсь достаточно ясно объяснил проблему. Если, что прощу извинить, уточню :)
p.s. нубло я, хз как картинку сюда вставлять поэтому ссылочка)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 21:59
Ответы с готовыми решениями:

stm32f107 любимый usb 2
Здравствуйте уважаемые форумчане! У моего коллеги возникли проблемы с работой...

Любимый usb 3 :) Режим сна
Доделываю вроде уже проект, последние штрихи остались.Проект - клавиатура...

USB-HID библиотека с st.com STM32f105 "Устройство USB не .."
Товарищи. Взял USB библиотеку с st.com (On-The-Go host omd divice library), для...

USB Audio + USB CDC на одной STM32F4
Итак, есть ЦАП с входом I2S, есть FMприёмник с выходом I2S, есть STM32F405 с...

STM32 Использование 3G USB модемов (USB Host)
Никому не случалось использовать 3G модемы с библиотекой USB от STM ? С этими...

12
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
14.03.2014, 01:31 2
Надо наверное начать с того, чтобы очень внимательно посмотреть на линии клоков и питания на плате, и на питание и сигнал на шине. Не просто ткнуться осциллографом, а снять реальную картину в тот момент, когда воспроизводится ситуация. Очень неплохо при этом иметь для полноты картины обмен по шине в этот момент, снятый внешним LA.

Особенно интересно именно клоки.

Ну и схематику линии USB тоже желательно проверить. И особенно тщательно проверить схематику питания чипа - есть подозрение, что проблема где-то в этом районе.

Можно взять готовую референсную плату с этим или похожим чипом, и попробовать воспроизвести ситуацию на ней. Там схематика и разводка заведомо правильные, и если ситуация будет воспроизводиться, то надо искать проблему в коде или в эррате. Если же не будет - искать ее в схематике и разводке, а также, возможно, в источнике питания и компонентах типа кварца.

Ну и поддержка производителя существует как раз на этот случай.
0
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
14.03.2014, 02:07 3
к сожалению анализатор юзбы удет только через пару недель, а проект над срочно сдавать. С точки зрения схемоты, по идее не должно быть проблем, так как делал профессионал, высшего класса. Ну с точки зрения схемы, там идет полная аналогия stm3210c-eval, с этим же чипом на борту. То есть в принципе не должно быть проблем, я схемотехнику доверяю на все 100. Проблемы скорее всего на программном уровне. Просто даже предположить не могу, что может происходить. Времянка сбивается если только, но как бы очень врятли, так как ни идет ни обращений ни каких, вообще ничего такого на программном уровне что могло бы сбить таким образом юсб. Проблема именно еще раз повторюсь проявляется , только при работе с хабом... На осциллографе, картина как будто все нормально. Питание есть, обмены все идут когда надо...Да и если бы была проблема с питанием, я думаю она проявлялась бы и без хаба :) Ну подстветка на клаве котрая жрет 300мА горит постоянно :) ( и без подсветки такая же фигня, так что дело не в ней :) ) Походу придется к тех поддержке обращаться.
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
14.03.2014, 02:23 4
Так и попробуйте на stm3210c-eval для очистки совести. И попробуйте заменить кварц - USB чувствителен к клокам.

Вообще странно, у меня USB на этих чипах работал без нареканий. Я использовал RTOS от Keil.
0
otixdos
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 241
14.03.2014, 02:49 5
" как сделали внутренний usb хаб " так может там и проблема засела. Подключите свою клавиатуру через сторонний usb хаб, и возможно прояснится ситуация.
0
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
14.03.2014, 03:13 6
Цитата Сообщение от otixdos
" как сделали внутренний usb хаб " так может там и проблема засела. Подключите свою клавиатуру через сторонний usb хаб, и возможно прояснится ситуация.
Проблема проявляется со всеми usb хабами, вроде как. Ну 3 разных пробовал,так что проблем врятли в этом,общая проблема.
а по воду платки, к сожалению, на работе осталась платка, а я дома нынче, в пн попробую. Вообще грустно, ибо вроде ка кникаких специальных приемов приемов при работе с хабами нету. Ладно спасиб, тем кто отписался, если у кого мысли еще появятся, внимательно слушаю.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
14.03.2014, 13:32 7
Цитата Сообщение от Jim9hko
Да и если бы была проблема с питанием, я думаю она проявлялась бы и без хаба :) Ну подстветка на клаве котрая жрет 300мА горит постоянно :) ( и без подсветки такая же фигня, так что дело не в ней :) )
По поводу питания: какой ток заявлен для этого USB-устройства в дескрипторе? И какой тип питания заявлен - bus powered или self-powered?
Если, например, устройство без подсветки ест (хотя бы иногда) 100 мА и больше, а хаб без внешнего питания (т.е. максимум 100мА/порт), то проблема должна быть.
0
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
14.03.2014, 15:52 8
Цитата Сообщение от OtyxPM
Цитата Сообщение от Jim9hko
Да и если бы была проблема с питанием, я думаю она проявлялась бы и без хаба :) Ну подстветка на клаве котрая жрет 300мА горит постоянно :) ( и без подсветки такая же фигня, так что дело не в ней :) )
По поводу питания: какой ток заявлен для этого USB-устройства в дескрипторе? И какой тип питания заявлен - bus powered или self-powered?
Если, например, устройство без подсветки ест (хотя бы иногда) 100 мА и больше, а хаб без внешнего питания (т.е. максимум 100мА/порт), то проблема должна быть.
Ммм bus powered стоит, и кстати да сегодня ночью копался, короче ситуация такова что хаб с внешним питанием работает нормально, на 2 пробовал, без питания такая канитель. Так что дело в этом... А можно как то это пофиксить программно ? Или никак? Так как устройство функционировать будет через внутренний хаб, который питается через юсб компа.
Если я все правильно понял, то проблема не решаема. Так как у хаба без внешнего питания идет макс 100мА на порт. Тоесть надо решать проблему, через железо. Или я не прав?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
14.03.2014, 21:29 9
Цитата Сообщение от Jim9hko
Так как у хаба без внешнего питания идет макс 100мА на порт. Тоесть надо решать проблему, через железо.
Да, можно так сказать.
Если устройству требуется больше 100 мА (хотя бы кратковременно), то надо дать ему это питание. Будет это self-powered с блоком питания или bus-powered с умощнённым хабом - это уже варианты, выбирайте удобный для себя.
0
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
15.03.2014, 02:58 10
Цитата Сообщение от OtyxPM
Цитата Сообщение от Jim9hko
Так как у хаба без внешнего питания идет макс 100мА на порт. Тоесть надо решать проблему, через железо.
Да, можно так сказать.
Если устройству требуется больше 100 мА (хотя бы кратковременно), то надо дать ему это питание. Будет это self-powered с блоком питания или bus-powered с умощнённым хабом - это уже варианты, выбирайте удобный для себя.
Спасибо, проблема явно в питании. Хотя конечно то все довольно странно. Так как допустим я к внешнему хабу подключаю флешку у которой примерно около 200мА, есть такие которые по 300мА кушают. Все нормально... Ведь по факту то мы ограниченны 500мА с разъема. Почему тогда клава которой нужно ну даже допустим 300мА уже дает сбои... Как то странно. Просто впервые слышу об ограничении на 100мА порт на хабах... Если можно, поподробнее расскажите об этом. Но в любом случаи спасибо.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.03.2014, 14:44 11
Цитата Сообщение от Jim9hko
Просто впервые слышу об ограничении на 100мА порт на хабах... Если можно, поподробнее расскажите об этом.
В двух словах.
Представьте себе пассивный (без своего питания) USB-hub на четыре гнезда, воткнутый в USB-порт компьютера. Порт компьютера отдаёт максимум 500 мА, их получает хаб и делит между своими четырьмя разъёмами. За вычетом тока, потребляемого самим хабом, каждому "вторичному" разъёму достаётся примерно 100мА. Закон сохранения энергии.
0
Jim9hko
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
15.03.2014, 17:16 12
Цитата Сообщение от OtyxPM
Цитата Сообщение от Jim9hko
Просто впервые слышу об ограничении на 100мА порт на хабах... Если можно, поподробнее расскажите об этом.
В двух словах.
Представьте себе пассивный (без своего питания) USB-hub на четыре гнезда, воткнутый в USB-порт компьютера. Порт компьютера отдаёт максимум 500 мА, их получает хаб и делит между своими четырьмя разъёмами. За вычетом тока, потребляемого самим хабом, каждому "вторичному" разъёму достаётся примерно 100мА. Закон сохранения энергии.
Это понятно, но есть вариант, если 3 гнезда пустые и не потребляют ничего, а 4рное потребляет 400мА разве в этом случаи не идет переброса на конкретный порт? Вроде как тоже должно все работать :) Или нет?)
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.03.2014, 19:44 13
Цитата Сообщение от Jim9hko
Это понятно, но есть вариант, если 3 гнезда пустые и не потребляют ничего, а 4рное потребляет 400мА разве в этом случаи не идет переброса на конкретный порт? Вроде как тоже должно все работать :) Или нет?)
"Перебросит" ток или нет - это поведение определяется hardware хаба. Причём чаще всего в недорогих пассивных хабах встречается вариант с равным распределением тока по 100 мА. Другой вариант требует мощных 400мА выходов и логики перераспределения. Плюс к этому логика и hardware токовой защиты выходов: во втором случае реализация гораздо сложнее.
0
15.03.2014, 19:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2014, 19:44

CCID USB,сниффер для USB.
У кого есть пример CCID USB ? Посоветуйте сниффер для USB. Если например...

STM8 USB V-USB
https://github.com/wlianmin/stm8_usb в комплекте пример hid мышки ...

USB->USB переходник :)
В Wymdows все, что связано с USB, работает через дрова. Но написание дров -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru