打印

请教版主stm32f107,usb在不使用外部上拉电阻时是如何工作的

[复制链接]
6569|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gurong60|  楼主 | 2013-7-1 23:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
*******************************************************************************
* Function Name  : PowerOn
* Description    :
* Input          : None.
* Output         : None.
* Return         : USB_SUCCESS.
*******************************************************************************/
RESULT PowerOn(void)
{
  #ifndef STM32F10X_CL
  uint16_t wRegVal;

  /*** cable plugged-in ? ***/
  USB_Cable_Config(ENABLE);

  /*** CNTR_PWDN = 0 ***/
  wRegVal = CNTR_FRES;
  _SetCNTR(wRegVal);

  /*** CNTR_FRES = 0 ***/
  wInterrupt_Mask = 0;
  _SetCNTR(wInterrupt_Mask);
  /*** Clear pending interrupts ***/
  _SetISTR(0);
  /*** Set interrupt mask ***/
  wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
  _SetCNTR(wInterrupt_Mask);
#endif /* STM32F10X_CL */

  return USB_SUCCESS;
}
在工程预定义 STM32F10X_CL
看着程序只返回一个USB_SUCCESS,非常不解,
沙发
gurong60|  楼主 | 2013-7-2 09:13 | 只看该作者
顶下

使用特权

评论回复
板凳
IJK| | 2013-7-2 09:24 | 只看该作者
stm32f107,usb有CPU可以控制的上拉电阻

使用特权

评论回复
地板
gurong60|  楼主 | 2013-7-2 19:13 | 只看该作者
IJK 发表于 2013-7-2 09:24
stm32f107,usb有CPU可以控制的上拉电阻

在什么地方设置的呢?

使用特权

评论回复
5
trumpxp| | 2013-7-2 19:39 | 只看该作者
不是很了解    楼主   帮你顶一个   很不错

使用特权

评论回复
6
gurong60|  楼主 | 2013-7-3 11:48 | 只看该作者
没有知道的吗

使用特权

评论回复
7
IJK| | 2013-7-3 13:43 | 只看该作者
gurong60 发表于 2013-7-2 19:13
在什么地方设置的呢?

记错了。stm32f107 的OTG CORE根据设置的模式自动会控制上拉电阻:

DP/DM integrated pull-up and pull-down resistors controlled by the OTG_FS core
depending on the current role of the device. As a peripheral, it enables the DP pull-up
resistor to signal full-speed peripheral connections as soon as VBUS is sensed to be at
a valid level (B-session valid).

使用特权

评论回复
8
香水城| | 2013-7-3 17:17 | 只看该作者
LS(7楼)说得对。补充一句,该DP上的上拉电阻还可以通过寄存器设置来断开,即“soft disconnect”

使用特权

评论回复
9
hawksabre| | 2013-7-3 19:11 | 只看该作者
问题解决了吗   楼主   问题解决了就好   顶一个   很不错

使用特权

评论回复
10
gurong60|  楼主 | 2013-7-3 20:55 | 只看该作者
没有,需要我手动添加控制外部上拉电阻电路

使用特权

评论回复
11
gurong60|  楼主 | 2013-7-3 20:56 | 只看该作者
不知道为什么?郁闷

使用特权

评论回复
12
为了思想的飞跃| | 2014-1-14 23:03 | 只看该作者
IJK 发表于 2013-7-3 13:43
记错了。stm32f107 的OTG CORE根据设置的模式自动会控制上拉电阻:

DP/DM integrated pull-up and pull- ...

问题是,VBUS如果不接线内呢?资料上提到NOVBUSSENS,为什么我在器件手册中OTG_FS_GCCFG寄存器中没定义这一位?

使用特权

评论回复
13
IJK| | 2014-1-15 16:16 | 只看该作者
为了思想的飞跃 发表于 2014-1-14 23:03
问题是,VBUS如果不接线内呢?资料上提到NOVBUSSENS,为什么我在器件手册中OTG_FS_GCCFG寄存器中没定义这 ...

"VBUS如果不接线内"
没看明白

使用特权

评论回复
14
为了思想的飞跃| | 2014-1-15 16:41 | 只看该作者
IJK 发表于 2014-1-15 16:16
"VBUS如果不接线内"
没看明白

我的意思是:VBUS没有接,而要作从设备,资料上说配置OTG_FS_GCCFG中的NOVBUSSENS位,这样内核默认VBUS一直有效,而有效的时候,内核会自动设置DP上的上拉电阻,所以不需要外接上拉来通知主机枚举。问题是:我的手册中的“OTG_FS_GCCFG”没“NOVBUSSENS”配置,是怎么回事,所以不接VBUS时,VBUS始终没电,所以不能通知主机。而接上VBUS就可以,咋解决?谢谢

使用特权

评论回复
15
IJK| | 2014-1-16 14:43 | 只看该作者
stm32f107要作从设备,VBUS也必须接上。

使用特权

评论回复
16
3637320230| | 2016-4-12 16:36 | 只看该作者
为了思想的飞跃 发表于 2014-1-15 16:41
我的意思是:VBUS没有接,而要作从设备,资料上说配置OTG_FS_GCCFG中的NOVBUSSENS位,这样内核默认VBUS一 ...

你好,你的VBUS 最后是怎么处理的额

使用特权

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

本版积分规则

个人签名:对手,队友

179

主题

1307

帖子

4

粉丝