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

 
 
> STM32F107 USB-CDC
slavokhire5
сообщение Jul 11 2014, 15:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



Всем приветsm.gif Понадобилось мне поднять USB CDC на STM32F107. С ЮСБ, как и с STM32 опыта практически нет. Работаю в CooCox. Скачал STM32_USB-Host-Device_Lib_V2.1.0, накидал оттуда файлов в проект. кучу ошибок выгреб. сейчас в основном остались такого типа:
D:\code\beer\trunk\stm32f107\usb_otg_lib\usb_hcd.c:101:7: error: 'USB_OTG_CORE_HANDLE' has no member named 'host'
я подозреваю, что где-то не раскомментил какой-то дейфайн. Можете подсказать что не правильно может быть?

Прикрепляю проект
Прикрепленные файлы
Прикрепленный файл  stm32f107.7z ( 356.44 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
slavokhire5
сообщение Jul 15 2014, 07:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



Завел VBus на PA9, ситуация не поменялась. Может что не так в инициализации ног USB на моем 107?
Вот код:
Код
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE);
  RCC_OTGFSCLKConfig(RCC_OTGFSCLKSource_PLLVCO_Div2);
  
  /* Configure SOF VBUS ID DM DP Pins */
  GPIO_InitStructure.GPIO_Pin = /*GPIO_Pin_8  |*/
    GPIO_Pin_9  |
      GPIO_Pin_11 |
        GPIO_Pin_12;
  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  
  /*GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_OTG_FS);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_OTG_FS);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG_FS);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG_FS);*/
  
  /* this for ID line debug */

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_10;
  /*GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; */
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  //GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG_FS);

  //RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  //RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE);

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_OTG_FS, ENABLE);


Закомменченые части остались от F407. Установка частоты. Кварц стоит на 24МГц. Результирующая SysClk меньше 72 МГц, но на USB должно подаваться 48:
Код
static void SetSysClockTo72(void)
{
  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
  
  /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    
  /* Enable HSE */    
  RCC->CR |= ((uint32_t)RCC_CR_HSEON);

  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

  if ((RCC->CR & RCC_CR_HSERDY) != RESET)
  {
    HSEStatus = (uint32_t)0x01;
  }
  else
  {
    HSEStatus = (uint32_t)0x00;
  }  

  if (HSEStatus == (uint32_t)0x01)
  {
    /* Enable Prefetch Buffer */
    FLASH->ACR |= FLASH_ACR_PRFTBE;

    /* Flash 2 wait state */
    FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
    FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;    


    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK2 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
    
    /* PCLK1 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;

#ifdef STM32F10X_CL
    /* Configure PLLs ------------------------------------------------------*/
    /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
    /* PREDIV1 configuration: HSE / 4 = 6 */
        
    RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |
                              RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
    RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
                             RCC_CFGR2_PREDIV1SRC_HSE | RCC_CFGR2_PREDIV1_DIV4);
  
    /* Enable PLL2 */
    RCC->CR |= RCC_CR_PLL2ON;
    /* Wait till PLL2 is ready */
    while((RCC->CR & RCC_CR_PLL2RDY) == 0)
    {
    }
    
  
    /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */
    RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
                            RCC_CFGR_PLLMULL6);
#else    
    /*  PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
#endif /* STM32F10X_CL */

    /* Enable PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }
    
    /* Select PLL as system clock source */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

    /* Wait till PLL is used as system clock source */
    while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
    {
    }
  }
  else
  { /* If HSE fails to start-up, the application will have wrong clock
         configuration. User can add here some code to deal with this error */
  }
}


Ну и еще остается вариант подгоревшего USB на МК sad.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- slavokhire5   STM32F107 USB-CDC   Jul 11 2014, 15:46
- - A. Fig Lee   Цитата(slavokhire5 @ Jul 11 2014, 11:46) ...   Jul 11 2014, 17:37
|- - slavokhire5   Цитата(A. Fig Lee @ Jul 11 2014, 20:37) Н...   Jul 12 2014, 12:26
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 12 2014, 08:26) ...   Jul 12 2014, 13:54
|- - slavokhire5   Цитата(A. Fig Lee @ Jul 12 2014, 16:54) А...   Jul 14 2014, 07:51
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 14 2014, 03:51) ...   Jul 14 2014, 10:47
- - slavokhire5   Собрал проект на основе этой статьи: http://www.pr...   Jul 14 2014, 10:31
- - slavokhire5   *я имел ввиду не usb_config.h/c, a hw_config.h/c. ...   Jul 14 2014, 11:48
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 14 2014, 07:48) ...   Jul 14 2014, 13:31
- - slavokhire5   перевел код на stm32f4discovery, там работает. вид...   Jul 14 2014, 14:11
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 14 2014, 10:11) ...   Jul 14 2014, 14:29
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 15 2014, 03:33) ...   Jul 15 2014, 11:13
|- - slavokhire5   Цитата(A. Fig Lee @ Jul 15 2014, 14:13) Н...   Jul 15 2014, 12:44
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 15 2014, 08:44) ...   Jul 15 2014, 13:18
- - slavokhire5   а у вас объявлен #define VBUS_SENSING_ENABLED? есл...   Jul 15 2014, 14:08
- - A. Fig Lee   usb_conf.h Цитата... /****************** USB OTG ...   Jul 15 2014, 15:08
- - slavokhire5   Были "железные" проблемы в плате. Достал...   Jul 17 2014, 12:52
- - slavokhire5   что-то задержался с выкладыванием ... прикрепляю ...   Jul 30 2014, 10:00
- - slavokhire5   Подскажите пожалуйста, как узнать, отправились ли ...   Aug 7 2014, 06:25


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

 


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


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