9802|10

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32的USB设备拔出时,能否产生一个中断? [复制链接]

                                 STM32的USB设备拔出时,能否产生一个中断?
此帖出自stm32/stm8论坛

最新回复

                                 加2个电阻分压,使用一个外部中断口的下降沿产生中断,很容易实现。用电阻分压有两个目的:1)产生3.3V的电平;2)更重要的是在USB 5V消失后外部中断口被下拉到地,不至于浮空,保证稳定的输入电平。   详情 回复 发表于 2008-10-10 11:10
点赞 关注
 

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

不好意思,我没说清楚,不是这个意思

谢谢!

我的意思是,STM32作为usb设备,PC作为usb主机,当STM32 usb设备和PC断开连接时,STM32能否产生一个中断?
就类似,STM32 usb设备和PC连接时,STM32方面可以产生一个 reset中断一样。
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

PC的USB是有正5V的

                                 你检测这个正5V就行啦,当和PC断开后,这个正5V肯定是消失的
此帖出自stm32/stm8论坛
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 

USB设备拔出时产生中断:2楼和4楼的方法是最简单和最直接的

STM32没有为检测设备拔出而直接设置的中断源,但是如果你对USB协议很熟,可以考虑尝试使用以下2种方法:

1 - 使用Suspend中断得知设备拔出
2 - 使用SOF或ESOF中断间接地得知设备拔出

由于种种原因,我们没有试过这么做,这2种方法有可能不可靠;如果方法1能够实现,则这是一个不错的选择。


需要强调的是,最好使用监视USB电源的方法,因为这是最简单和最可靠的方法,更重要的是USB D+的上拉电压也需要通过检测USB电源来控制。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 

使用Suspend中断得知设备拔出

谢谢!
已验证:设备拔出时,可以产生suspend中断。
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

6
 

请注意:真正的Suspend条件也会产生Suspend中断

我又考虑了一下:5楼的2种变通方法都会有副作用,最好的方法还是检测USB电源!
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 

STM32你的好帮手

我们是ST的代理,已与多家STM32客人在合作,经验丰富,可以提供你需要的帮助,需要在STM32上了解的请与我联系,谢谢!

邓世宏 
Simon Deng
  文晔集团/庆成企业有限公司
*************************************************************************************
地址:深圳南山区科技园高新区南区南一道创维大厦C区3楼
TEL:0755-2674 3880 转6139   FAX:0755-2674 4053
M/P:13602587155
E-mail: simon.deng@wtmec.com
Http: www.qce.co.hk    www.wtmec.com
MSN: Sac87155@hotmail.com
Skype: pcicsz
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 

有什么副作用呢?

会有什么副作用啊?

另:“真正的Suspend条件也会产生Suspend中断”,按照手册介绍,3ms没有收到数据,就会suspend,但是现在我这里只是在设备拔出时产生suspend中断。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 

真正的Suspend条件是:3ms中没有检测到总线上有信号变化

你的理解不准确,总线上没有数据时并不一定没有信号变化,SOF是最基本的总线活动。

使用Suspend中断检测USB设备拔出的副作用是:当主机进入休眠时,USB总线会进入Suspend状态,这时STM32将产生Suspend中断;如果你只用Suspend中断检测USB设备是否拔出,你的程序将不知道这个中断是因为设备拔出还是主机休眠,造成判断错误。即使主机不进入休眠状态,有些USB Hub为了省电也可能进入休眠状态,此时与该Hub相连的STM32设备也将产生Suspend中断。

还是那句话,最好的方法还是检测USB电源!不要因为偷懒为你的产品留下隐患!!
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 

是,suspend的条件应该是总线上没有信号,而不是没有数据

是,suspend的条件应该是总线上没有信号,而不是没有数据

检测5V USB电源,要轮询查询该电源是否有效,会比较浪费CPU资源
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 

检测5V USB电源,不需要轮询查询,使用一个外部中断口即可

加2个电阻分压,使用一个外部中断口的下降沿产生中断,很容易实现。

用电阻分压有两个目的:1)产生3.3V的电平;2)更重要的是在USB 5V消失后外部中断口被下拉到地,不至于浮空,保证稳定的输入电平。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表