历史上的今天
返回首页

历史上的今天

今天是: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就能够正常通信。


推荐阅读

史海拾趣

贝特莱公司的发展小趣事

贝特莱在电子行业中以其创新产品而闻名。例如,作为国内首家推出生物传感技术的厂商,其研发的BL1860心率心电芯片在智能可穿戴设备市场占据了重要地位。此外,贝特莱还推出了国内首款无袖带血压监测方案,这些创新产品的推出无疑引爆了智能可穿戴设备市场的热点,也为贝特莱带来了可观的市场份额。

Blue Sky Research公司的发展小趣事

作为一家有社会责任感的企业,Blue Sky Research始终关注环境保护和可持续发展。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出贡献。通过践行社会责任,Blue Sky Research不仅赢得了社会的尊重和认可,也为企业的可持续发展注入了新的动力。

这些故事虽然基于假设和一般情况构建,但它们反映了Blue Sky Research在电子行业里可能的发展路径和战略选择。当然,实际的发展过程可能更加复杂和多元,需要更多的数据和细节来揭示。

AMICC [AMIC TECHNOLOGY]公司的发展小趣事

在电子行业发展日新月异的背景下,AMICC始终坚持技术创新。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型半导体产品。这些产品不仅提高了性能,还降低了成本,为公司在市场竞争中赢得了优势。同时,AMICC还积极与国内外高校和研究机构合作,推动产学研深度融合,为公司的持续发展注入新的活力。

FIDELIX公司的发展小趣事

在东芯半导体的支持下,FIDELIX开始将其一部分技术团队迁移到国内,加速了存储芯片的国产替代进程。这些技术团队的加入,不仅提升了国内半导体产业的技术水平,也促进了FIDELIX与国内企业的深度融合和协同发展。

Ethertronics公司的发展小趣事

2015年,中国半导体企业东芯半导体有限公司看中了FIDELIX在存储芯片领域的优势,决定对其进行收购。经过多轮谈判和协商,东芯半导体成功收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这次收购不仅加强了东芯半导体在存储芯片领域的技术实力,也为FIDELIX提供了更广阔的市场和发展空间。

Herotek Inc公司的发展小趣事

为了更好地服务中国及亚太地区的电子产业集群,Henkel在东莞市投建了汉高电子粘合剂华南应用技术中心。该中心不仅具备先进的研发设备和测试能力,还拥有一支专业的技术团队。通过模拟仿真和数字化手段,该中心能够快速响应客户需求,提供定制化的粘合剂解决方案。自启用以来,该中心已帮助众多电子企业实现了技术创新和产品升级。

问答坊 | AI 解惑

[原创]EDA 资料分享

为了总结 Ministatus 的核心编程思想,写了这个 Hello World 。; 程序很简单,较为完整的实现了 Ministatus 面板跟 SPB 交互的过程,; 希望这段程序能够把 Ministatus 的核心编程思想表达清楚,欢迎高手拍砖。; 不过为了突出重点省去了 axlMiniSta ...…

查看全部问答>

菜鸟参加电子设计大赛感悟!

本帖最后由 paulhyde 于 2014-9-15 08:54 编辑 今年暑假,我有幸参加了全国大学生电子设计大赛的培训.在学校提供的实验室里,我度过了紧张而又刺激的两个月时间.在有限的时间里,我学到了无穷的知识, 仿佛胜过两年的大学学业.在实验室,我感受到了前所 ...…

查看全部问答>

学习ARM嵌入式方向是什么?

    想学ARM嵌入式,但是不知道要怎么学,最近一直在看关于这方面的书,但是和看天书一样,都看不懂。也不知道看了那些东西有什么用。看完一遍都不知道到底看了什么。请高手指教一下,要真正学好它,我要怎么做。要看些什么书?先谢谢了 ...…

查看全部问答>

EVC OnRButtonUp

各位大大 为什么我在EVC中添加 OnRButtonUp 和 OnRButtonDown 会提示 error LNK2019: unresolved external symbol \"protected: void __cdecl CWnd::OnRButtonUp(unsigned int,class CPoint)\" (?OnRButtonUp@CWnd@@IAAXIVCPoint@@@Z) referenced ...…

查看全部问答>

怎样利用数据分级来提高存储的准确率?

一、利用离线存储来提高设备的使用寿命。    存储在磁带设备上的数据一般可能很少用到。如企业需要对数据库等应用软件的数据进行备份。此时可以将数据备份到磁带设备上。根据惯例,一般一天24个小时这个磁带设备可能就只需要半个小时。 ...…

查看全部问答>

请教一个关于stm32用JLINK烧写的问题

keil MDK V3.7+JLINK V8,cpu为STM32F103ZE,程序下载时提示: Flash download failed-"Cortex-M3"。 这是什么原因呢?…

查看全部问答>

求助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处理 ...…

查看全部问答>