历史上的今天
今天是:2024年12月20日(星期五)
2018年12月20日 | STM32F401 USB VBUS 设置引起的一些问题
2018-12-20 来源:eefocus
在开发板上调试代码,开发板上的PA9是floating input 。 然后贴片的时候我们的板子应用了这个引脚并且设置为GPIO_MODE_OUTPUT_PP。
最后引起的问题是USB不能正常通信。

最后查看手册看到如下描述:
Note: When VBUS sensing feature is enabled, PA9 should be left at their default state (floating
input), not as alternate function. A typical 200 μA current consumption of the embedded
sensing block (current to voltage conversion to determine the different sessions) can be
observed on PA9 when the feature is enabled.
最后不得不修改代码如下:
USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
{
/* Init USB_IP */
if (pdev->id == DEVICE_FS) {
/* Link The driver to the stack */
hpcd_USB_OTG_FS.pData = pdev;
pdev->pData = &hpcd_USB_OTG_FS;
hpcd_USB_OTG_FS.Instance = USB_OTG_FS;
hpcd_USB_OTG_FS.Init.dev_endpoints = 4;
hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL;
hpcd_USB_OTG_FS.Init.dma_enable = DISABLE;
hpcd_USB_OTG_FS.Init.ep0_mps = DEP0CTL_MPS_64;
hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED;
hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE;
hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE;
hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE;
//hpcd_USB_OTG_FS.Init.vbus_sensing_enable = ENABLE;
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK)
{
Error_Handler();
}
HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_FS, 0x80);
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 0, 0x40);
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 1, 0x80);
}
return USBD_OK;
}
屏蔽标红部分,USB就能够正常通信。
史海拾趣
|
为了总结 Ministatus 的核心编程思想,写了这个 Hello World 。; 程序很简单,较为完整的实现了 Ministatus 面板跟 SPB 交互的过程,; 希望这段程序能够把 Ministatus 的核心编程思想表达清楚,欢迎高手拍砖。; 不过为了突出重点省去了 axlMiniSta ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 08:54 编辑 今年暑假,我有幸参加了全国大学生电子设计大赛的培训.在学校提供的实验室里,我度过了紧张而又刺激的两个月时间.在有限的时间里,我学到了无穷的知识, 仿佛胜过两年的大学学业.在实验室,我感受到了前所 ...… 查看全部问答> |
|
想学ARM嵌入式,但是不知道要怎么学,最近一直在看关于这方面的书,但是和看天书一样,都看不懂。也不知道看了那些东西有什么用。看完一遍都不知道到底看了什么。请高手指教一下,要真正学好它,我要怎么做。要看些什么书?先谢谢了 ...… 查看全部问答> |
|
各位大大 为什么我在EVC中添加 OnRButtonUp 和 OnRButtonDown 会提示 error LNK2019: unresolved external symbol \"protected: void __cdecl CWnd::OnRButtonUp(unsigned int,class CPoint)\" (?OnRButtonUp@CWnd@@IAAXIVCPoint@@@Z) referenced ...… 查看全部问答> |
|
一、利用离线存储来提高设备的使用寿命。 存储在磁带设备上的数据一般可能很少用到。如企业需要对数据库等应用软件的数据进行备份。此时可以将数据备份到磁带设备上。根据惯例,一般一天24个小时这个磁带设备可能就只需要半个小时。 ...… 查看全部问答> |
|
keil MDK V3.7+JLINK V8,cpu为STM32F103ZE,程序下载时提示: Flash download failed-"Cortex-M3"。 这是什么原因呢?… 查看全部问答> |
|
M3没法下载程序了 显示 Could not initialize target device!Please power cycle the board and try again! 哪位朋友知道为什么啊?非常感谢… 查看全部问答> |
|
Sitara AM335x通用EVM硬件用户指南 CN_PDF 介绍 本文档介绍了AM335x评估模块(EVM)(TMDXEVM3358)这是基于德州仪器AM335x处理器的硬件体系结构。该EVM通常也被称为AM335x通用(GP)EVM。描述 AM335x通用EVM是一个独立的测试,开发和评估模块系统,它使开发人员能够编写周围的AM335x处理 ...… 查看全部问答> |




