razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Не могу поднять 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. Но чегото пошло не так... Аппаратно плата рабочая. Есть прошивка для этой платы, с которой усб работает. Кто сталкивался с подобной проблемой? Куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба ...Но чегото пошло не так... Например, нулевой уровень на ID даст такую картину, если нет обработчика ID line status change interrupt. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Сталкивался. Что-то сломали в st cube. Сгенерите под гцц будет работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Например, нулевой уровень на ID даст такую картину, если нет обработчика ID line status change interrupt. что-то в кубе не донастроил? как исправить? Сталкивался. Что-то сломали в st cube. Сгенерите под гцц будет работать.как в кубе генерить ггц проекты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба что-то в кубе не донастроил? как исправить? Проверьте состояние вывода ID. Про куб ничего не подскажу, не использовал никогда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Проверьте состояние вывода ID. Про куб ничего не подскажу, не использовал никогда. что такое вывод ID? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба что такое вывод ID? Вывод процессора, подключенный к одноименному сигналу в USB разъеме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 (изменено) · Жалоба Вывод процессора, подключенный к одноименному сигналу в USB разъеме. не понимаю..... "Вывод процессора" можно понять как "Вывод процессора в консоль. Т.е. информацию, которую процессор выводит куда-то...", или вывод процессора - это ножка(pin) процессора? если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID? Изменено 11 октября, 2017 пользователем razrab83 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID? Если не можете отличить ногу процессора от "вывода в консоль", то хотя-бы научитесь пользоваться гуглом! https://ru.wikipedia.org/wiki/USB#USB_3.0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба не понимаю..... "Вывод процессора" можно понять как "Вывод процессора в консоль. Т.е. информацию, которую процессор выводит куда-то...", или вывод процессора - это ножка(pin) процессора? Если подключается к линии разъема, то уж наверное речь идет о выводе в смысле pin. если это ножка процессора - то что за ножка? в разъеме USB есть 4 сигнала (даже 2 сигнала + 2 контакта питания) +5V, DP, DM, GND (+ экран). Какой из этих сигналов является ID? У OTG их пять - к перечисленным добавляется ID. У процессора есть соответствующий вывод. Если на нем лог. 0, то USB перейдет в режим хоста. Хотя в этом случае Unknown device не должен бы появляться, так что вряд ли оно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба нашел ID пин, нужен для OTG. PA10 в моём процессоре. У меня only usb-device. ID не задействована. Да и куб её не задействует Если не можете отличить ногу процессора от "вывода в консоль", то хотя-бы научитесь пользоваться гуглом! https://ru.wikipedia.org/wiki/USB#USB_3.0 чтобы искать что-то в гугле, нужно знать что искать. "вывод процессора" нельзя истолковать однозначно, "пин(нога) процессора" можно. Забавно, что тычут носом "учитесь гуглить" и при этом не учат гуглить, и не дают ссылку типа такой, а дают на уже найденную информацию. Причем не на конкретный пин ID, а на исторический 4-х томник, в котором аж сказано "Первые спецификации для USB 1.0 были представлены в 1994—1995 годах". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба чтобы искать что-то в гугле, нужно знать что искать. "вывод процессора" нельзя истолковать однозначно, "пин(нога) процессора" можно. Вы - единственный уникум на этом форуме, который так понимает "вывод процессора". Наверняка найдётся и другой уникум, который "ногу процессора" поймёт по своему. :laughing: при этом не учат гуглить Здесь вроде форум разработчиков, а не бабушек, осваивающих комп. Приведённая ссылка гуглится по "USB". Вот в случае бабушки ещё можно понять если она не знает как найти информацию по USB... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба У меня only usb-device. ID не задействована. Да и куб её не задействует Не знаю, как в 401, а в 407 выбор режима Peripheral only (т.е. установка бита FDMOD в регистре OTG_FS_GUSBCFG) никак не мешает USB пребрасываться в режим хоста по состоянию ID, хотя мануал и обещает обратное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Здесь вроде форум разработчиков, а не бабушек.... Приведённая ссылка гуглится по "USB".... Так вы походу бабушка и есть, раз "Вывод процессора" гуглите по "USB" и даете ссылки не по теме... а на какие-то исторические справки развития электроники. Если помочь не можете, если по теме не чего сказать, так хоть холивар не устраивайте, проходите мимо. ps так ещё и ссылка не просто на USB, а на USB 3.0. При чем тут 3.0? никак не мешает USB пребрасываться в режим хоста по состоянию IDнога id у меня работает как выход GPIO который управляет светодиодом. похоже придётся отказаться от куба и опять писать свой драйвер. И примеров то нет.... для stmf4 сгенерированный проект из куба.... есть куча примеров у st для другой переферии.... для USB не могу найти Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба что такое вывод ID? Согласен. Не совсем понятно что за вывод айди. Вроде речь о USB-Device, там ID не задействован. 2razrab83 столкнулся с подобной проблемой. Свой драйвер (сделанный из stm usb host library) работает, а кубовский нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться