Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F373 - проблемы с USB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
styuf
Доброе время суток, форумчане!

Разобравшись с прошлой проблемой, связанной с прошивкой МК (https://electronix.ru/forum/index.php?showtopic=139692), решил освоить ввод и вывод информации стандартным USB. Воспользовался стандартными библиотеками от STM. Поправил их под свой камень. Но вот беда - при подключении usb-устройство опредеяется с ошибкой (Device Descriptor Request Failed). Использую внешний источник тактового сигнала с частотой 4194398 Гц. Возможно проблема тут.

Есть подозрения на тактирование USB-шины, но я нигде не могу найти, как правильно её настроить и откуда она берет клок.

Разобрался я со схемой тактирования для данного МК. В итоге переписал инициализирование тактового сигнала:

CODE
/* rcc init start */
RCC_DeInit(); //reset all rcc settings
RCC_HSEConfig(RCC_HSE_ON); //hse on
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); //HSE like system clk source
RCC_HSICmd(ENABLE); //HSI 8 MHz on
RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_12); //pll work with (hsi/2)*12=48MHz
RCC_PLLCmd(ENABLE); // pll enable
/* rcc init end */
/* usb init start*/
Set_System();
Set_USBClock();
USB_Interrupts_Config();
USB_Init();
/* usb init end */


Так выглядит Set_USBClock():

CODE
void Set_USBClock(void)
{
/* Select USBCLK source */
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);

/* Enable the USB clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);
}


Насоклько я понял, необходимо, что бы USB тактировалась частотой 48 МГц. Её я беру от внутренних 8 МГц, путем деления и умножения. В итоге на выходе PLL у меня стоит 48 МГц (теоритически). Их на прямую я пуская на USB модуль. Но по прежнему не работает. Если кто-то реализовывал USB на этом камне, поделитесь,пожалуста проектом на попробовать для keil.

Удивительно, что в интернетах у людей получается это с наскока. Видимо я что-то не учел, раз отхватил пролем и тут.

Если меня направите на нужную информацию или подскажите что сделать - огромное человеческое спасибо!

Понимаю, что информация не полная, так что буду пополнять необходимую информацию по мере поступления вопросов.
styuf
Обновил информацию по мере осознания матчасти.
styuf
Спасибо всем за поддрежку моей решительности разобраться с usb! )
В итоге я все-таки решил проблему. Оказалось, что МК не дает подключить внутренний источник к шине USB, что соответствует написаному в даташите. Перепаяв внешний источник с 4,194304 Мгц на 8 МГц и проблема решилась. Параллельно я разобрался с устройством тактирования данного МК, так что если у кого-то возникнут вопросы - обращайтесь, я постараюсь помочь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.