a-styuf 0 7 января, 2017 Опубликовано 7 января, 2017 (изменено) · Жалоба Доброе время суток, форумчане! Разобравшись с прошлой проблемой, связанной с прошивкой МК (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. Удивительно, что в интернетах у людей получается это с наскока. Видимо я что-то не учел, раз отхватил пролем и тут. Если меня направите на нужную информацию или подскажите что сделать - огромное человеческое спасибо! Понимаю, что информация не полная, так что буду пополнять необходимую информацию по мере поступления вопросов. Изменено 7 января, 2017 пользователем styuf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a-styuf 0 7 января, 2017 Опубликовано 7 января, 2017 · Жалоба Обновил информацию по мере осознания матчасти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a-styuf 0 9 января, 2017 Опубликовано 9 января, 2017 · Жалоба Спасибо всем за поддрежку моей решительности разобраться с usb! ) В итоге я все-таки решил проблему. Оказалось, что МК не дает подключить внутренний источник к шине USB, что соответствует написаному в даташите. Перепаяв внешний источник с 4,194304 Мгц на 8 МГц и проблема решилась. Параллельно я разобрался с устройством тактирования данного МК, так что если у кого-то возникнут вопросы - обращайтесь, я постараюсь помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться