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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> 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
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

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:03
Рейтинг@Mail.ru


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