Доброе время суток, форумчане!
Разобравшись с прошлой проблемой, связанной с прошивкой МК (
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