|
STM32 USB_FS HAL |
|
|
|
Oct 11 2017, 05:56
|
Участник

Группа: Участник
Сообщений: 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. Но чегото пошло не так... Аппаратно плата рабочая. Есть прошивка для этой платы, с которой усб работает. Кто сталкивался с подобной проблемой? Куда копать?
|
|
|
|
|
Oct 11 2017, 08:26
|
Участник

Группа: Участник
Сообщений: 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. Сгенерите под гцц будет работать. как в кубе генерить ггц проекты?
|
|
|
|
|
Oct 11 2017, 10:19
|
Участник

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

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

Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 11 2017, 10:53
|
Гуру
     
Группа: Свой
Сообщений: 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 не должен бы появляться, так что вряд ли оно.
|
|
|
|
|
Oct 11 2017, 11:25
|
Участник

Группа: Участник
Сообщений: 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 годах".
|
|
|
|
|
Oct 11 2017, 12:03
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(razrab83 @ Oct 11 2017, 14:25)  чтобы искать что-то в гугле, нужно знать что искать. "вывод процессора" нельзя истолковать однозначно, "пин(нога) процессора" можно. Вы - единственный уникум на этом форуме, который так понимает "вывод процессора". Наверняка найдётся и другой уникум, который "ногу процессора" поймёт по своему. Цитата(razrab83 @ Oct 11 2017, 14:25)  при этом не учат гуглить Здесь вроде форум разработчиков, а не бабушек, осваивающих комп. Приведённая ссылка гуглится по "USB". Вот в случае бабушки ещё можно понять если она не знает как найти информацию по USB...
|
|
|
|
|
Oct 11 2017, 12:25
|
Участник

Группа: Участник
Сообщений: 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 не могу найти
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|