Страница 1 из 1

STM32L100C6U6 тактирование USB

Добавлено: Пн апр 07, 2014 22:57:46
sx386
Я тактирую USB от HSI ?
Но при этом код выполнялся на частоте 16 MHz.
Можно ли сделать чтобы он выполнялся на 2 MHz ?

Код: Выделить всё

  /* Start HSI and connect SysClk to HSI. HSI = 16 MHz */
	RCC_HSICmd( ENABLE );	   
	while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);		 				 
	RCC_SYSCLKConfig (RCC_SYSCLKSource_HSI); 	
  while (RCC_GetSYSCLKSource() != 0x04 );	
	/* PLL Config */

	RCC_PLLConfig(RCC_PLLSource_HSI,  
                 RCC_PLLMul_6,  
                 RCC_PLLDiv_4  
                                );	
	RCC_PLLCmd  ( ENABLE );	  	
	while (RCC_GetFlagStatus( RCC_FLAG_PLLRDY ) == RESET);	  	
	/* Enable Clock to GPIO A (USB is connected here)*/ 
  RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, 
                     		 ENABLE  
                                       ) ;
   /* USB clock enable */
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); 
	 /* Enable clock to SYSCFG */ 
	 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);	  

Re: STM32L100C6U6 тактирование USB

Добавлено: Ср апр 09, 2014 00:45:39
sx386
Согласно рисунку, ставлю деление AHB делителя.

Код: Выделить всё

RCC->CFGR |= (uint32_t) RCC_CFGR_HPRE_DIV2;
Но USB перестаёт определятся.
Непойму почему, ведь делитель стоит после ответвления тактирования USB

Изображение

Re: STM32L100C6U6 тактирование USB

Добавлено: Пн апр 14, 2014 11:36:59
slavokhire5
А в серии STM32L1 достаточно точный источник HSI, чтобы тактировать USB? мне казалось это можно только в STM32F0, а другим нужен HSE. Или я не прав?

Re: STM32L100C6U6 тактирование USB

Добавлено: Пн апр 14, 2014 15:58:50
sx386
HSI достаточно точный !
Питаю контроллер от 2.2В.
Думал что напряжения на линиях не хватит, но всё работает отлично.
Это ещё при том, что соеденён через 2х метровый провод.