daddyk 发表于 2017-1-18 09:06:14

F745+CY7C68003(USB PHY),枚举不到设备问题

使用F745+CY7C68003(USB PHY) ,USB HS通信,单发现枚举不到设备。 请ST的工程师给出帮助。 Thansk
附件是部分原理图和代码。系统晶振26mhz,stm32的vcc1.8v

daddyk 发表于 2017-1-18 09:30:52

下面是部分需改的代码:
void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq)
{
    HAL_StatusTypeDef ret = HAL_OK;
    RCC_OscInitTypeDef RCC_OscInitStructure;
    RCC_ClkInitTypeDef RCC_ClkInitStructure;
          RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
      
    __HAL_RCC_PWR_CLK_ENABLE();

    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
      
    RCC_OscInitStructure.OscillatorType=RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStructure.HSEState=RCC_HSE_ON;
    RCC_OscInitStructure.PLL.PLLState=RCC_PLL_ON;
    RCC_OscInitStructure.PLL.PLLSource=RCC_PLLSOURCE_HSE;
    RCC_OscInitStructure.PLL.PLLM=pllm;
    RCC_OscInitStructure.PLL.PLLN=plln;
    RCC_OscInitStructure.PLL.PLLP=pllp;
    RCC_OscInitStructure.PLL.PLLQ=pllq;
    ret=HAL_RCC_OscConfig(&RCC_OscInitStructure);
    if(ret!=HAL_OK) while(1);
   
    ret=HAL_PWREx_EnableOverDrive(); //¿ªÆôOver-Driver¹¦ÄÜ
    if(ret!=HAL_OK) while(1);
    /* Select PLLSAI output as USB clock source */
                PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CLK48;
                PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48SOURCE_PLLSAIP;
                PeriphClkInitStruct.PLLSAI.PLLSAIN = 432;
                PeriphClkInitStruct.PLLSAI.PLLSAIQ = 9;
                PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV2;
                if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct)!= HAL_OK)
                {
                        while(1) { ; }
                }
    //Ñ¡ÖÐPLL×÷ΪϵͳʱÖÓÔ´²¢ÇÒÅäÖÃHCLK,PCLK1ºÍPCLK2
    RCC_ClkInitStructure.ClockType=(RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2);
    RCC_ClkInitStructure.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;
    RCC_ClkInitStructure.AHBCLKDivider=RCC_SYSCLK_DIV1;
    RCC_ClkInitStructure.APB1CLKDivider=RCC_HCLK_DIV4;
    RCC_ClkInitStructure.APB2CLKDivider=RCC_HCLK_DIV2;
   
    ret=HAL_RCC_ClockConfig(&RCC_ClkInitStructure,FLASH_LATENCY_5);
    if(ret!=HAL_OK) while(1);
               
}
void CY7C68003_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    __HAL_RCC_GPIOA_CLK_ENABLE();
          __HAL_RCC_GPIOF_CLK_ENABLE();
      
          //CY7C68003 NRST
    GPIO_InitStruct.Pin=GPIO_PIN_7; //PA7
    GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);
      
      
          //CY7C68003 NCS
    GPIO_InitStruct.Pin=GPIO_PIN_11; //PF11
    GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    HAL_GPIO_Init(GPIOF,&GPIO_InitStruct);
      
          //RCC_MCO1SOURCE_HSERCC_MCO1SOURCE_PLLCLK
          HAL_RCC_MCOConfig(RCC_MCO1,RCC_MCO1SOURCE_HSE ,RCC_MCODIV_1);                //PA8MCO1
      
   
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOF,GPIO_PIN_11,GPIO_PIN_RESET);


}

void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
{
   GPIO_InitTypeDefGPIO_InitStruct;
    __HAL_RCC_GPIOA_CLK_ENABLE();
          __HAL_RCC_GPIOB_CLK_ENABLE();
          __HAL_RCC_GPIOC_CLK_ENABLE();
      
          __HAL_RCC_USB_OTG_HS_CLK_ENABLE();
          __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE();
         
                // CLK
                GPIO_InitStruct.Pin = GPIO_PIN_5 ;
                GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS ;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
               


                // D0
                GPIO_InitStruct.Pin = GPIO_PIN_3;
                GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS ;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
               

                // D1 D2 D3 D4 D5 D6 D7
                GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1|
                         GPIO_PIN_5 | GPIO_PIN_10 | GPIO_PIN_11| GPIO_PIN_12 |
                         GPIO_PIN_13 ;
    GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS ;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
               

                // STP DIR NXT
                GPIO_InitStruct.Pin = GPIO_PIN_0| GPIO_PIN_2|
                     GPIO_PIN_3 ;
                GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull=GPIO_NOPULL;
    GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS ;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

}
int main(void)
{
Cache_Enable();
    HAL_Init();
    Stm32_Clock_Init(216,26,2,9);
CY7C68003_Init();
USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_MSC_cb,&USR_cb);
      delay_ms(1800);                           
      while(1)
      {
      }                                                                        
}

daddyk 发表于 2017-1-18 09:31:59

除以上需要改的地方,还有什么地方我忽略了么?

无薪税绵 发表于 2017-2-15 08:17:01

没有接触过,只能帮楼主加人气了。

chaplin1999-262 发表于 2017-2-15 09:14:45

不懂帮顶了

boboo-23776 发表于 2017-2-15 10:27:25

不懂路过

cldym 发表于 2017-2-15 13:59:43

没有接触过,只能帮楼主加人气了。

toofree 发表于 2017-2-15 18:17:05

这个太高端,没板子,不会玩:)

zcl201207 发表于 2017-2-15 20:37:26

:o:o:o:o:o
页: [1]
查看完整版本: F745+CY7C68003(USB PHY),枚举不到设备问题