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

 
 
> STM32 USB_FS HAL
razrab83
сообщение Oct 11 2017, 05:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Не могу поднять usb device на stm32f401 с помощью CubeMX.

Сделал в Cube простенький проект. Подключил только JTAG, USB-Device и указал VCP. настроил клоки. На USB 48 МГц, на шину AHB 24 MГц. Vbus - Разрешил.
Сгенерировал проект (IAR) запустил. подключил к ПК. На этом этапе я должен увидеть в диспетчере устройств свой девайс (STM32 Virtual ComPort).
В реале вижу Unknown device. Стал дебажить.
все прерывания от USB вызывают один обработчик в котором ведётся разбор.
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd);

Код
/**
  * @brief  Handles PCD interrupt request.
  * @param  hpcd: PCD handle
  * @retval HAL status
  */
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)
{
  USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
  uint32_t i = 0U, ep_intr = 0U, epint = 0U, epnum = 0U;
  uint32_t fifoemptymsk = 0U, temp = 0U;
  USB_OTG_EPTypeDef *ep;
  uint32_t hclk = 180000000;


Первое, что мне не понравилось, это uint32_t hclk = 180000000; это частота hclk на AHB. Почему в коде 180 МГц? Исправил на 24.
Всё равно вижу Unknown device. Что-то идет не так.

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

1) Handle Connection event Interrupt
2) Handle Suspend Interrupt
3) Handle Reset Interrupt
4) Handle Enumeration done Interrupt

всё! в другие ветки обработчика прерывания не попадаю. ПК не может вычитать PID/VID.

В инете полно статей по быстрому запуску USB. Они не рассматривают все внутренние механизмы USB, а только поверхностно настройка в CubeMX. Но чегото пошло не так... Аппаратно плата рабочая. Есть прошивка для этой платы, с которой усб работает.

Кто сталкивался с подобной проблемой? Куда копать?




Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 33)
aaarrr
сообщение Oct 11 2017, 07:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 08:56) *
...Но чегото пошло не так...

Например, нулевой уровень на ID даст такую картину, если нет обработчика ID line status change interrupt.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 11 2017, 07:45
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Сталкивался. Что-то сломали в st cube. Сгенерите под гцц будет работать.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 08:26
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(aaarrr @ Oct 11 2017, 07:33) *
Например, нулевой уровень на ID даст такую картину, если нет обработчика ID line status change interrupt.

что-то в кубе не донастроил? как исправить?

Цитата(Genadi Zawidowski @ Oct 11 2017, 07:45) *
Сталкивался. Что-то сломали в st cube. Сгенерите под гцц будет работать.
как в кубе генерить ггц проекты?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 09:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 11:26) *
что-то в кубе не донастроил? как исправить?

Проверьте состояние вывода ID. Про куб ничего не подскажу, не использовал никогда.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 10:19
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(aaarrr @ Oct 11 2017, 09:30) *
Проверьте состояние вывода ID. Про куб ничего не подскажу, не использовал никогда.

что такое вывод ID?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 10:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 13:19) *
что такое вывод ID?

Вывод процессора, подключенный к одноименному сигналу в USB разъеме.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 10:41
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(aaarrr @ Oct 11 2017, 10:24) *
Вывод процессора, подключенный к одноименному сигналу в USB разъеме.

не понимаю..... "Вывод процессора" можно понять как "Вывод процессора в консоль. Т.е. информацию, которую процессор выводит куда-то...", или вывод процессора - это ножка(pin) процессора?
если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID?

Сообщение отредактировал razrab83 - Oct 11 2017, 10:43
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 11 2017, 10:44
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(razrab83 @ Oct 11 2017, 13:41) *
если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID?

Если не можете отличить ногу процессора от "вывода в консоль", то хотя-бы научитесь пользоваться гуглом!
https://ru.wikipedia.org/wiki/USB#USB_3.0
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 10:53
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 13:41) *
не понимаю..... "Вывод процессора" можно понять как "Вывод процессора в консоль. Т.е. информацию, которую процессор выводит куда-то...", или вывод процессора - это ножка(pin) процессора?

Если подключается к линии разъема, то уж наверное речь идет о выводе в смысле pin.

Цитата(razrab83 @ Oct 11 2017, 13:41) *
если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID?

У OTG их пять - к перечисленным добавляется ID. У процессора есть соответствующий вывод. Если на нем лог. 0, то USB перейдет в режим хоста.

Хотя в этом случае Unknown device не должен бы появляться, так что вряд ли оно.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 11:25
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



нашел ID пин, нужен для OTG. PA10 в моём процессоре. У меня only usb-device. ID не задействована. Да и куб её не задействует

Цитата(jcxz @ Oct 11 2017, 10:44) *
Если не можете отличить ногу процессора от "вывода в консоль", то хотя-бы научитесь пользоваться гуглом!
https://ru.wikipedia.org/wiki/USB#USB_3.0

чтобы искать что-то в гугле, нужно знать что искать. "вывод процессора" нельзя истолковать однозначно, "пин(нога) процессора" можно. Забавно, что тычут носом "учитесь гуглить" и при этом не учат гуглить, и не дают ссылку типа такой, а дают на уже найденную информацию. Причем не на конкретный пин ID, а на исторический 4-х томник, в котором аж сказано "Первые спецификации для USB 1.0 были представлены в 1994—1995 годах".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 11 2017, 12:03
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(razrab83 @ Oct 11 2017, 14:25) *
чтобы искать что-то в гугле, нужно знать что искать. "вывод процессора" нельзя истолковать однозначно, "пин(нога) процессора" можно.

Вы - единственный уникум на этом форуме, который так понимает "вывод процессора". Наверняка найдётся и другой уникум, который "ногу процессора" поймёт по своему. laughing.gif

Цитата(razrab83 @ Oct 11 2017, 14:25) *
при этом не учат гуглить

Здесь вроде форум разработчиков, а не бабушек, осваивающих комп. Приведённая ссылка гуглится по "USB". Вот в случае бабушки ещё можно понять если она не знает как найти информацию по USB...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 12:06
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 14:25) *
У меня only usb-device. ID не задействована. Да и куб её не задействует

Не знаю, как в 401, а в 407 выбор режима Peripheral only (т.е. установка бита FDMOD в регистре OTG_FS_GUSBCFG) никак не мешает USB пребрасываться в режим хоста по состоянию ID, хотя мануал и обещает обратное.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 12:25
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(jcxz @ Oct 11 2017, 12:03) *
Здесь вроде форум разработчиков, а не бабушек.... Приведённая ссылка гуглится по "USB"....
Так вы походу бабушка и есть, раз "Вывод процессора" гуглите по "USB" и даете ссылки не по теме... а на какие-то исторические справки развития электроники. Если помочь не можете, если по теме не чего сказать, так хоть холивар не устраивайте, проходите мимо.
ps так ещё и ссылка не просто на USB, а на USB 3.0. При чем тут 3.0?

Цитата
никак не мешает USB пребрасываться в режим хоста по состоянию ID
нога id у меня работает как выход GPIO который управляет светодиодом.
похоже придётся отказаться от куба и опять писать свой драйвер.

И примеров то нет.... для stmf4 сгенерированный проект из куба.... есть куча примеров у st для другой переферии.... для USB не могу найти
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 11 2017, 12:36
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(razrab83 @ Oct 11 2017, 15:19) *
что такое вывод ID?
Согласен. Не совсем понятно что за вывод айди. Вроде речь о USB-Device, там ID не задействован.

2razrab83
столкнулся с подобной проблемой. Свой драйвер (сделанный из stm usb host library) работает, а кубовский нет.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 12:43
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(juvf @ Oct 11 2017, 15:36) *
Согласен. Не совсем понятно что за вывод айди. Вроде речь о USB-Device, там ID не задействован.

А мне вот кажется, что надо представлять себе устройство интерфейса и соответствующего периферийного блока процессора, если уж предполагается работать с ним на достаточно низком уровне. Тогда и вопросов не будет.

"Незадействованность" этого вывода весьма условная, см. сообщение выше.
Go to the top of the page
 
+Quote Post
juvf
сообщение Oct 11 2017, 12:54
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(aaarrr @ Oct 11 2017, 17:43) *
А мне вот кажется, что надо представлять себе устройство интерфейса и соответствующего периферийного блока процессора, если уж предполагается работать с ним на достаточно низком уровне. Тогда и вопросов не будет.

Я писал свой драйвер для разных процессоров), на низком уровне. выводов id для усб-девайс-онли не встречал. А вот всякие id (identification number) вшитые в чипы - это сплошь и рядом. и "вывод id" не совсем понятно.... пояснили, что это ножка, так ножка.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 12:58
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



2aaarrr если будет время/желание.... соберите под 407 кубовский проект там делов на 5 минут. Интересно, заработает или нет
Go to the top of the page
 
+Quote Post
A.Lex
сообщение Oct 11 2017, 13:01
Сообщение #19


Частый гость
**

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



Примеры есть. Вот http://www.mcu.by/старт-arm-поднимаем-usb-cdc/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 13:03
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(juvf @ Oct 11 2017, 15:54) *
"вывод id" не совсем понятно.... пояснили, что это ножка, так ножка.

Сообщение №2: "нулевой уровень на ID". Господа, вы издеваетесь?
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 11 2017, 13:08
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(A.Lex @ Oct 11 2017, 13:01) *

по вашей ссылке
Цитата
Не найдено

По данному адресу ничего не найдено.


нашел, спс


Сообщение отредактировал razrab83 - Oct 11 2017, 13:15
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 11 2017, 13:11
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 11 2017, 15:58) *
2aaarrr если будет время/желание.... соберите под 407 кубовский проект там делов на 5 минут. Интересно, заработает или нет

Собрать вряд ли, а вот прошить и посмотреть работу могу.
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Oct 11 2017, 16:43
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



razrab83, попробуйте увеличить размер стека и кучи в ассемблерном файле.
Генерил как-то usb-device (виртуальный com-порт) для f407 discovery, тоже
не заработало, а потом на одном из форумов посоветовали увеличить размер стека и кучи - все заработало.
Плюс ко всему надо было "правильно" устанавливать драйвер от ST, так он сначала извлекается в целевую папку,
а устанавливать его уже вручную приходилось в зависимости от разрядности винды.

Сообщение отредактировал ivan24190 - Oct 11 2017, 16:47
Go to the top of the page
 
+Quote Post
EmbedElektrik
сообщение Oct 11 2017, 18:42
Сообщение #24


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 30-07-08
Из: Тверь, Россия
Пользователь №: 39 321



а че за борда то? пулл-ап включается куда надо?
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 12 2017, 04:17
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(ivan24190 @ Oct 11 2017, 16:43) *
Плюс ко всему надо было "правильно" устанавливать драйвер от ST, так он сначала извлекается в целевую папку,
а устанавливать его уже вручную приходилось в зависимости от разрядности винды.
Спасибо за совет про стек и кучу, попробую. Про драйвер.... винда берёться за драйвер только после того, как pid/vid считает. У меня этого не происходит.


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

Цитата
Собрать вряд ли, а вот прошить и посмотреть работу могу.
Хорошо, соберу. Какой процессор (все буковки)? Какой кварц/генератор на HSE? Сделаю hex. Могу проект для иара.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 12 2017, 08:50
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 12 2017, 07:17) *
Хорошо, соберу. Какой процессор (все буковки)? Какой кварц/генератор на HSE? Сделаю hex. Могу проект для иара.

F407VET6, кварц 25MHz
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 12 2017, 11:37
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(aaarrr @ Oct 12 2017, 08:50) *
F407VET6, кварц 25MHz


Прикрепленные файлы
Прикрепленный файл  stm407.7z ( 354.15 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 12 2017, 13:29
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Определяется:
Цитата
Bus 001 Device 006: ID 0483:5740 STMicroelectronics STM32F407

Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 13 2017, 03:50
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(aaarrr @ Oct 12 2017, 13:29) *
Определяется:

Да ладно!!! А что за борда?

не понятно.... почему в исходниках для 407 в прерывании усб
uint32_t hclk = 180000000U;

Спасибо за тест.... возможно всё таки не правильно аппаратная часть. буду перепроверять.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Oct 13 2017, 07:47
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



взал для испытаний кит дискавери на 401-ом. сгенерил для дискавери 401.
залил - анкноун девайс. пробовал стек увеличить (стек с00, куча а00) - анкноун девайс, пробовал vcp и hid - unknown device!!!

странно...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 13 2017, 12:05
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(razrab83 @ Oct 13 2017, 06:50) *
Да ладно!!! А что за борда?

Просто одно из моих изделий. Никаких особенностей, относящихся к USB, не имеет, все штатно.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Oct 16 2017, 12:09
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(aaarrr @ Oct 11 2017, 15:06) *
Не знаю, как в 401, а в 407 выбор режима Peripheral only (т.е. установка бита FDMOD в регистре OTG_FS_GUSBCFG) никак не мешает USB пребрасываться в режим хоста по состоянию ID, хотя мануал и обещает обратное.

Риторический вопрос, но для ясности задам.
Ремап этой ноги указывает на что-то, отличное от USB OTG ?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 16 2017, 12:55
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(esaulenka @ Oct 16 2017, 15:09) *
Ремап этой ноги указывает на что-то, отличное от USB OTG ?

Нет: PA10 AF10, т.е. OTG_FS_ID.
Go to the top of the page
 
+Quote Post
dimone
сообщение Oct 31 2017, 09:33
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



USBD_MAX_STR_DESC_SIZ если 256 поменяйте на 512
Go to the top of the page
 
+Quote Post

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

 


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


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