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

 
 
> 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
 
Start new topic
Ответов (1 - 2)
styuf
сообщение Jan 7 2017, 16:31
Сообщение #2


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

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



Обновил информацию по мере осознания матчасти.
Go to the top of the page
 
+Quote Post
styuf
сообщение Jan 9 2017, 14:50
Сообщение #3


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

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



Спасибо всем за поддрежку моей решительности разобраться с usb! )
В итоге я все-таки решил проблему. Оказалось, что МК не дает подключить внутренний источник к шине USB, что соответствует написаному в даташите. Перепаяв внешний источник с 4,194304 Мгц на 8 МГц и проблема решилась. Параллельно я разобрался с устройством тактирования данного МК, так что если у кого-то возникнут вопросы - обращайтесь, я постараюсь помочь.
Go to the top of the page
 
+Quote Post

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

 


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


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