|
|
  |
STM32 USB Device example, не могу запустить |
|
|
|
Sep 3 2013, 14:31
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(ADA007 @ Sep 1 2013, 15:47)  Аппаратная платформа своя...собственно сам контроллер подключенный к usb и стабилизатор питания, больше ничего нет. А кварц на 8 Мгц есть? С конденсаторами 27 pf и резистором 1М, как в схеме на Olimex-овскую борду. В примере-то наверняка настройки PLL приведены для кварца из отладочной платы. А если кварц другой - то дела не будет. Цитата(ADA007 @ Sep 3 2013, 15:15)  Попутно еще вопрос...сопротивление на DP 1,5к сигнализирует о том, что устройство готово принимать данные от хоста. Похоже, что у меня устройство не готово принимать данные? или как? Не. Резистор только сигнализирует о наличии устройства на шине USB. А готовность/неготовность к приёму данных устройство сообщает по шине (пакетами ACK или NACK). Обнаружив резистор на шине, Хост выдаёт состояние RESET, потом состояние SUSPEND, потом снова RESET, и только после этого присылает первый SETUP-дескриптор. Если Хост не получит подтверждения приёма дескриптора (пакет ACK) - то повторит RESET и SETUP-пакет ещё два раза и отключится от шины несмотря на резистор. Чтоб снова активизировать Хост - нужно резистор отключить и снова подключить (типа вынули флешку и снова вставили). В некоторых USB-девайсах резистор 1,5к наглухо впаян между 3,3в и DP, но это требует от устройства быть готовым к запросам Хоста немедленно сразу-же после установки в разъём. Отключаемый резистор позволяет контроллеру: не спеша настроить внутренние регистры, подождать пока стабилизируется PLL, и только по готовности включить резистор и ждать от Хоста команд. Просто Хост обнаружив резистор, делает только три попытки связаться с девайсом, и если девайс не успел ответить - Хост отключается от шины.
|
|
|
|
|
Sep 3 2013, 15:07
|

Местный
  
Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266

|
Цитата(controller_m30 @ Sep 3 2013, 17:31)  А кварц на 8 Мгц есть? С конденсаторами 27 pf и резистором 1М, как в схеме на Olimex-овскую борду... Да....кварц именно 8 MHz,а вот обвязки не было... (вот это я совсем уже  ). Повесил 1М и 2х20пФ - все стало работать,как часы. До этого, когда девайсы на AVR-ках лепил на скорую руку и так катило 16МГц ставил просто на пины и работало... Спасибо за помощь, всем участникам!Кстати, уже не первый раз встречаю схемное решение с 1М между ногами кварца, но ни как не могу понять тайного смысла этого резюка.Может кто объяснит? С кондерами-то все понятно, но 1М зачем?
|
|
|
|
|
Sep 5 2013, 17:24
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(ADA007 @ Sep 3 2013, 18:07)  Повесил 1М и 2х20пФ - все стало работать,как часы. До этого, когда девайсы на AVR-ках лепил на скорую руку и так катило 16МГц ставил просто на пины и работало... Оно может и в данном случае работать без обвязки, но тогда настройки PLL пришлось бы подобрать индивидуально, под уникальные параметры такой схемы включения кварца. А раз настройки PLL берутся в готовом виде - то и обвязку кварца (и сам кварц), лучше всего повторить один-к-одному с проектом-исходником. А также и напряжение питания процессора - именно 3.3v, а не, допустим, 3.0v или 2.8v.
|
|
|
|
|
Sep 9 2013, 15:25
|
Знающий
   
Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454

|
Цитата(ADA007 @ Sep 3 2013, 15:15)  Попутно еще вопрос...сопротивление на DP 1,5к сигнализирует о том, что устройство готово принимать данные от хоста. В хосте DP и DМ притянуты к земле резисторами 15К. Присоединение к DP/DМ резистора 1,5К говорит о том, что на шине появилось устройство FULL/LOW Speed готовое работать. При отладке, нужно в начале отсоединить резистор, сделать паузу порядка секунды па потом присоединятся.
|
|
|
|
|
Sep 19 2013, 07:43
|
Частый гость
 
Группа: Участник
Сообщений: 138
Регистрация: 27-12-11
Пользователь №: 69 107

|
Чтобы не плодить тем: контроллер STM32F207, пытаюсь запустить USB FS (сигналы DM, DP, VBUS), VCP. USB инициализацию типа проходит, но USART1 не инициализирован, на DP и DM 4,5В. Попытка найти причину привела к открытию, что файл инициализации СОМ-порта usbd_cdc_vcp.c в проекте есть, но нигде нет ссылок на его функции. В доке CD00289278.pdf на библиотеку STM32_USB-Host-Device_Lib_V2.1.0, вообще описаны usbd_cdc_xxx_if (.c, .h): (i.e. usbd_cdc_vcp_if (.c, .h)) которых нет.
Если есть рабочий проект или опыт, пните меня в нужном направлении.
Сообщение отредактировал A.Lex - Sep 19 2013, 07:54
|
|
|
|
|
Sep 19 2013, 09:32
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(A.Lex @ Sep 19 2013, 10:43)  Если есть рабочий проект или опыт, пните меня в нужном направлении. Лично использовал проект Mass-Storage для этого МК, взятый с сайта ST. Все работает. Только прошлось подправить GPIO, ибо их проект был рассчитан на МК в корпусе "X", а у меня был МК в корпусе "Y". Вообще, подозревать выкладываемые на сайтах разработчиков примеры в неработоспособности надо в самую последнюю очередь. Если с готовым проектом что-то не так, то почти наверняка дело не в проекте, а в том, что вы упустили из виду какую-то мелкую особенность ...
|
|
|
|
|
Sep 19 2013, 11:48
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(A.Lex @ Sep 19 2013, 03:43)  Чтобы не плодить тем: контроллер STM32F207, пытаюсь запустить USB FS (сигналы DM, DP, VBUS), VCP. USB инициализацию типа проходит, но USART1 не инициализирован, на DP и DM 4,5В. Попытка найти причину привела к открытию, что файл инициализации СОМ-порта usbd_cdc_vcp.c в проекте есть, но нигде нет ссылок на его функции. В доке CD00289278.pdf на библиотеку STM32_USB-Host-Device_Lib_V2.1.0, вообще описаны usbd_cdc_xxx_if (.c, .h): (i.e. usbd_cdc_vcp_if (.c, .h)) которых нет.
Если есть рабочий проект или опыт, пните меня в нужном направлении. Есть там ссылки. Непрямые. Там несколько структур с каллбэками, заполняются в USB_Init() в app.c в примере. Как раз сейчас его усиленно копаю.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Sep 24 2013, 20:11
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 19-06-10
Пользователь №: 58 021

|
Я запускал USB na stm32f103 за основу взят Кеил HIDUSB примеp. Для дебага я использовал Линух хост и hidtool утилиту из V-USB проэкта. Я переделал утилиту под свои задачи. Все работает.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|