打印

F7上移植OTG_HS没有反应

[复制链接]
647|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3月的尾巴|  楼主 | 2018-8-16 14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[size=15.555556297302246px]OTG_HS的移植在原子F7的  实验56 USB读卡器(Slave)  的基础上做的修改,因为原子的是没有外接PHY芯片的,我自己的[size=15.555556297302246px]开发板[size=15.555556297302246px]上现在是有接一个USB3300的芯片
[size=15.555556297302246px]这个是USB3300芯片。



[size=15.555556297302246px]我现在这端的接口都是直接接在F7上的。宏定义在工程中添加了USE_ULPI_PHY,USE_USB_OTG_HS这两个。在usb.bsp.c中做了相关初始化如下

//USB OTG 底层IO初始化
//pdev:USB OTG内核结构体指针
void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
{
     GPIO_InitTypeDef  GPIO_InitStruct;
    __HAL_RCC_GPIOA_CLK_ENABLE();                   //使能GPIOA时钟
        __HAL_RCC_GPIOB_CLK_ENABLE();
        __HAL_RCC_GPIOC_CLK_ENABLE();
        __HAL_RCC_GPIOH_CLK_ENABLE();
        __HAL_RCC_GPIOI_CLK_ENABLE();
    __HAL_RCC_USB_OTG_FS_CLK_ENABLE();              //使能OTG FS时钟
        
        
        //D0
    GPIO_InitStruct.Pin=GPIO_PIN_3;    //PA3
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);         //初始化
        
        
        //D1-D7   //PB0,1,5,10,11,12,13
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);         //初始化
        
        
        //CLK
    GPIO_InitStruct.Pin=GPIO_PIN_5;    //PA5
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);         //初始化
        
    //STP
    GPIO_InitStruct.Pin=GPIO_PIN_0;    //PC0
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);         //初始化
        
        //NXT
    GPIO_InitStruct.Pin=GPIO_PIN_4;    //PH4
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);         //初始化
        
         //DIR
    GPIO_InitStruct.Pin=GPIO_PIN_11;    //PI11
    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;     //复用为OTG FS
    HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);         //初始化

}

//USB OTG 中断设置,开启USB HS中断
//pdev:USB OTG内核结构体指针
void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev)
{         
    HAL_NVIC_SetPriority(OTG_HS_IRQn,0,0);          //抢占优先级0,子优先级3
    HAL_NVIC_EnableIRQ(OTG_HS_IRQn);                //使能OTG USB FS中断
}

//USB OTG 中断设置,开启USB FS中断
//pdev:USB OTG内核结构体指针
void USB_OTG_BSP_DisableInterrupt(void)
{
}
//USB OTG 端口供电设置(本例程未用到)
//pdev:USB OTG内核结构体指针
//state:0,断电;1,上电
void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev, uint8_t state)
{
}
//USB_OTG 端口供电IO配置(本例程未用到)
//pdev:USB OTG内核结构体指针
void  USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev)
{
}
//USB_OTG us级延时函数
//本例程采用SYSTEM文件夹的delay.c里面的delay_us函数实现
//官方例程采用的是定时器2来实现的.
//usec:要延时的us数.
void USB_OTG_BSP_uDelay (const uint32_t usec)
{
           delay_us(usec);
}
//USB_OTG ms级延时函数
//本例程采用SYSTEM文件夹的delay.c里面的delay_ms函数实现
//官方例程采用的是定时器2来实现的.
//msec:要延时的ms数.
void USB_OTG_BSP_mDelay (const uint32_t msec)
{  
        delay_ms(msec);
}

使用特权

评论回复

相关帖子

沙发
LYHYYDS| | 2022-4-26 15:10 | 只看该作者
楼主有有没有用STM32F系列单片机芯片驱动TUSB1210、USB3320、CH132这类ULPI接口芯片的代码?现在在学习相关知识想看看代码了解得更快一些,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

433

帖子

0

粉丝