Перейти к содержанию
    

STM32F373 - проблемы с USB

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

 

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

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

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

 

/* 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():

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за поддрежку моей решительности разобраться с usb! )

В итоге я все-таки решил проблему. Оказалось, что МК не дает подключить внутренний источник к шине USB, что соответствует написаному в даташите. Перепаяв внешний источник с 4,194304 Мгц на 8 МГц и проблема решилась. Параллельно я разобрался с устройством тактирования данного МК, так что если у кого-то возникнут вопросы - обращайтесь, я постараюсь помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...