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

 
 
> STM32F373 - проблемы с USB, компьютер определяет устройство с ошибкой
styuf
сообщение Jan 7 2017, 12:41
Сообщение #1


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

Группа: Участник
Сообщений: 77
Регистрация: 4-02-10
Пользователь №: 55 287



Доброе время суток, форумчане!

Разобравшись с прошлой проблемой, связанной с прошивкой МК (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 - Jan 7 2017, 16:31
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 09:23
Рейтинг@Mail.ru


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