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

 
 
> USB на STM32F105VC, Нет отклика
Still Enemy
сообщение Feb 26 2015, 19:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-01-15
Из: Нижний Новгород
Пользователь №: 84 817



Проблема такая. Создана ПЛИС на база МК stm32f105, в stm32cube сгенерирован код для device only usb CDC. Как я и думал, после прошивки(отдельно распаянный J-TAG) ничего не заработало. Смотрел осциллографом на дифференциальные выходы возле распайки разъема USB, никаких сигналов(по идее на PA12 должно быть 3.3~3.8В). Как пример есть платка STM32VlDiscovery: там на D+ 3.3В.
Инженеры изготовившие платку говорят, что сопротивление на D+ подтянуто как надо. Я смотрел по схеме VBUS отсутствует.
Я заранее извиняюсь за свою глупость, я не схемотехник, я программист, схемы читаю со словарём и с знающим инженером, да и вообще мк программирую впервые. И понимаю, что на форуме прорицателей нет. Но Вопрос такой: в чём может быть дело? куда копать? нужен ли VBUS(плата самозапитывающаяся)? может я конешно грешу на схемарей, может в библиотеках stm чего не так. какие-нибудь советы попрошу озвучить у мудрой аудитории этого форума.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kan35
сообщение Feb 28 2015, 16:26
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Если не знаете что еще и делать, то подскажу. Есть еще swd дебаггер, который часто помогает понять в чем дело...
Ну и в кубе надо верно выстроить систему тактирования, чтобы на USB подавалась кварцованные 48МГц, ядро и шины чтобы работали на скорости не менее 24МГц. Если соблюсти эти простые формальности, то USB CDC device стартует как часы, не сомневайтесь в кубе.
Go to the top of the page
 
+Quote Post
Still Enemy
сообщение Mar 2 2015, 09:59
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-01-15
Из: Нижний Новгород
Пользователь №: 84 817



Цитата(kan35 @ Feb 28 2015, 19:26) *
Если не знаете что еще и делать, то подскажу. Есть еще swd дебаггер, который часто помогает понять в чем дело...
Ну и в кубе надо верно выстроить систему тактирования, чтобы на USB подавалась кварцованные 48МГц, ядро и шины чтобы работали на скорости не менее 24МГц. Если соблюсти эти простые формальности, то USB CDC device стартует как часы, не сомневайтесь в кубе.

Ну я шьюсь через SWD интерфейс J-Link-ARM. Дело в том, что я прогонял в дебаге код сгенерированный в Кубе. Нашел пару ошибок(возможно и не ошибки, а просто костыли-среди них есть такое действие, как запись числа в поле reserved). Тактирование в Кубе выставлено правильно, конешно я код не проверял на наличие ошибок по этой теме, но USB тактируется, иначе бы оно не определилось совсем. В подтверждение сего могу сказать одно: был не рабочий кварц сначала запаян и через Куб сгерен код-естественно ничего не определилось, а после перепайки, устройство определилось как неизвестное.
Попробую весь код прошерстить, возможно поможет.

Цитата(aaarrr @ Feb 28 2015, 01:25) *
Скорее всего, хост "почуял" резистор на D+ и только. То есть устройство не ответило на запрос дескрипторов. Если Вы заливаете заведомо рабочую прошивку, я бы советовал еще раз проверить соблюдение полярности D+/D- и соответствие номинала кварца.

На самом деле, прошивка вероятнее всего рабочая, по крайней мере, я ничего не изменял в сгенерированном коде из Куба и у многих она пашет. У меня пока ниразу не заработала.
С кварцем мне кажется, всё норм. А можно поподробней, в паре предложений разъяснить, как это проверить соблюдение полярности D+/D-?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 2 2015, 10:29
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Still Enemy @ Mar 2 2015, 11:59) *
а после перепайки, устройство определилось как неизвестное.
Для этого достаточно, чтобы код на любой частоте доковылял до включения подтяжки. Когда кварца не было он просто циклился в ожидании готовности кварца. Так что частоту проверить стоить - вывести на MCO и посмотреть осциллографом/частотомером. Если совсем тяжко с приборами - вывести строку в УАПП и попытаться ее принять на компе, хотя бы о попадании в +-5% можно будет быть уверенным.

Цитата(Still Enemy @ Mar 2 2015, 11:59) *
как это проверить соблюдение полярности D+/D-?
Видимо имелось ввиду "убедиться, что эти провода не перепутаны".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Still Enemy   USB на STM32F105VC   Feb 26 2015, 19:36
- - Still Enemy   Доп. информация: Взял электрическую схему. Оказало...   Feb 27 2015, 06:39
- - Сергей Борщ   Картинку вижу только одну, криминала на ней не вид...   Feb 27 2015, 08:24
- - Still Enemy   ЦитатаКартинку вижу только одну, криминала на ней ...   Feb 27 2015, 08:40
- - diwil   Vbus нужен чтобы автоматически подтянуть DP и сген...   Feb 27 2015, 09:03
- - Still Enemy   Всем спасибо, на данный момент ясность пришла ко м...   Feb 27 2015, 10:33
- - Still Enemy   Рано обрадовался. Устройство не определяется. Я т...   Feb 27 2015, 21:40
- - aaarrr   Скорее всего, хост "почуял" резистор на ...   Feb 27 2015, 22:25
- - Still Enemy   Я не знаю как, но всё решилось само собой. И это д...   Mar 3 2015, 07:51
- - Still Enemy   Кому интересно, последняя загвоздка решилась скачи...   Mar 12 2015, 07:41


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

 


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


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