LPC5500中USB的FRAME_INT中断问题

发布者:温暖拥抱最新更新时间:2023-03-21 来源: elecfans关键字:USB  中断问题 手机看文章 扫描二维码
随时随地手机看文章

USB中的SOF(Start Of Frame)包是USB开发中,经常接触也是很简单的一个概念: SOF由USB主机每1ms定时发出(FS),作用很多,相当于是一个时钟节拍基准,如果暂时用不到,就忽略也没有关系。 LPC5528的USB模块中,有一个FRAME_INT中断描述如下:

6a6fea60-7c10-11ed-8abf-dac502259ad0.png

这个中断 ”感觉好像就是SOF中断”,似乎只是名字换成了FRAME_INT,在手册中的描述也和SOF中断几乎一样,但是手册里就是没有说它就是SOF中断。


经过小编实测和向同事确认,发现这个中断实际上并不完全等同于SOF中断,两者还是有一定区别的。本文就来探讨一下这个问题:

事情是这样的: 小编最近支持一个客户,客户的代码中涉及低功耗按键唤醒,USB Remote wakeup, 也需要用到SOF中断做为定时器来驱动上层app事件。


客户发现:当PC关机的时候,LPC5528被按键唤醒,唤醒后执行Remote Wakeup(实际就是MCU将USB总线设置为K states),因为这时候主机Host已经关机,USB总线上没有任何信号,永远维持的K states上,但是MCU却莫名其妙的进入了FRAME_INT中断,而且还是1ms的周期!


测试使用一个GPIO引脚——GPIO_SOF_EVT,每当进入FRAME_INT中断后,Toggle一次;测试波形如下图:

6a88113a-7c10-11ed-8abf-dac502259ad0.png

这有点奇怪了。。。USB总线上没有任何包发过来,但是还是会进FRAME_INT中断!难道FRAME_INT中断不是SOF中断?


结果确实是这样。。经过和同事确认,FRAME_INT中断确实不是SOF中断,它只是和SOF中断有点像而已。当VBUS没有掉电且MCU执行Remote wakeup(Resume)的时候, FEAME_INT还是会”如期而至”。。他和SOF包没有必然联系。。。 疑惑中 

那么如果想用SOF中断咋办呢?有一个简单的办法:USB->INFO寄存器中的前11位为FRAME_NR,它记录了正确解码SOF的帧号,每当收到一个真正的SOF帧,FRAME_NR都会自加,所以在FRAME_INT中断中可以读入FRAME_NR来辅助判断,这次FRAME_INT到底是不是真正的SOF包到来:

6acc3c70-7c10-11ed-8abf-dac502259ad0.png

代码如下所示:

6b0ad7f0-7c10-11ed-8abf-dac502259ad0.png

补充:

小编同时也测试了HS-USB的FRAME_INT中断,其结论和FS是一样的,只不过HS的FRAME_INT中断是微帧,125us一次。


FRAME_INT中断在SDK中默认是关闭的,需要在INTEN寄存器中打开对应的标志位才可以使用。


到此为止,有必要进一步地思考一下,为什么这个USB的内部模块中,没有专门的SOF中断,却出现了这个与SOF有关,又不来源于SOF的FRAME_INT中断。


尽管没有与芯片设计人员沟通,但可以合理地推论,这个FRAME_INT中断是为SOF相关应用而设计的,之所以没有直接使用SOF作为触发源,是因为在USB主机休眠时,不再有SOF信号,而对于在主机休眠时仍需要周期中断源的USB应用而言,则需要使用其它定时器资源来实现相应功能,这样就会占用其它片上资源,又会增加软件调度的负担。


而在片内USB模块中,设计这样的机制,即可以在没有外部SOF信号时,继续维持周期性的中断,也可以在SOF信号恢复后,保持这个周期中断与SOF同步,即实现了SOF中断的功能,又兼顾了软件的实现与层次划分。

最后,这样的设计并不增加硬件的成本。


关键字:USB  中断问题 引用地址:LPC5500中USB的FRAME_INT中断问题

上一篇:利用SAU和安全AHB控制器调查HardFault的方法
下一篇:基于LPC3250的智能电子血压计设计

推荐阅读最新更新时间:2024-11-12 21:46

USB Type-C会成为显示行业的下个风口吗
相对于手机来说,显示器的更新换代一直以来较为缓慢。一方面,是由于手机相对于显示器而言耗损速度较快,另一方面,手机技术革新较快,更有0LED这种全新的屏幕技术吸引用户的体验,而显示器仅仅是通过一味地提升屏幕尺寸和分辨率,显然无法真正刺激到消费者的痛点。   USB Type-C 会成为显示行业的下个风口吗? 两年前“曲面”、“电竞”刚刚火爆的时候,这些前所未见的新鲜名词刺激了一波显示器的更换热潮,而到了现在,这两者对于消费者的刺激已经趋于平缓。尤其是在进入数字生活的时代之后,传统显示器的交互方式就显得太过于单一了,仅仅能够与用户产生视觉交互已经不能满足大家日益增加的需求。 于是,我们看到,在近两年的显示器行业中,出
[手机便携]
拆解无线USB打印服务器,评估可能的错误源
我要拆解的是一台无法完全上电的打印服务器,其型号为Linksys WPS54G(图1)。在几周前的一次旅途中,我的Mac OS X打印机清单上的名目显示WPS54G处于离线状态,我也无法通过网络浏览器将其连通。我认为原因是其断开了无线连接,需要我回家后将其重启才能再次联网。但回家后我却发现,WPS54G的顶部电源LED指示灯以及以太网、无线网和USB LED之间交替闪烁,其中几个LED指示灯的颜色在绿色和橘黄色之间不断变换。重启打印服务器未能使其恢复正常运行,也无法使其从无线连接切换到有线以太网连接状态。恢复为出厂设置,但也毫无作用。 图1:Linksys WPS54G打印服务器。 我决定对这台阵亡的打印服务器进行拆解。
[嵌入式]
iPhone 12将延续闪电接口:苹果最快明年换成USB-C
不支持5G几乎成了现款iPhone最大短板,这样的遗憾必将在今年秋季的新品上得到弥补。   关于所谓的“iPhone 12”,一位可靠爆料人日前指出,尽管苹果制作了USB-C接口的iPhone 12原型机,但并未将其投入量产,换言之,用户还需要至少停留在Lightning闪电接口上一年时间。   对于存量iPhone用户,这种做法意味着,之前购买的大量接口外设均可继续使用,无需花钱升级。不过,考虑到iPad Pro早已换用USB-C,且因为安卓的推动,围绕USB-C的扩展产品、规范生态异常丰富,苹果依然“特立独行”也让人感到有些遗憾。   特别是,相当一部分用户是安卓、iPhone“双枪”加持,要是都能统一接口
[手机便携]
高效USB端口电池充电设计方案
  USB为多种便携设备提供了通过单个“通用”电源充电的手段,从而更加方便。但是这方面也存在着许多挑战。以前的USB充电能力相当有限;标准USB主机端口的电流确实只适合为计算机外设(比如键盘,鼠标和读卡器)进行供电。USB2.0支持的供电电流可达500mA,可以为电池缓慢充电。与此同时,大家期待的是如何大幅缩短充电时间。   在这个环境下,2011年初推出的1.2版USB充电规范,提出了新的供电模式,增加了为设备电池充电的灵活性。本文将介绍可支持最大1.8A电流的专用充电接口(DCP)的概念。这几乎是标准下行端口(SDP)USB2.0连接承载电流的4倍,从而能够极大加快充电时间。   关于DCP   USB接口有4条屏
[嵌入式]
美国欲出手统一接口!苹果真是要全面启用USB-C了?
不知不觉, iPhone使用Lightning接口也有10年多的时间了,期间虽然对充电功率、传输速率进行了升级,但相较于如今的USB-C接口而言,仍显得十分落伍。按照苹果以往的做法来看,Lightning接口肯定是不会换的,起码还能再用5年,不过近期的消息来看,苹果不得不在后续的机型上采用全新的USB-C接口。 据了解, 一组参议院民主党人呼吁美国商务部效仿欧洲的做法,迫使所有智能手机制造商制造遵守通用充电标准的设备。简单来说就是,美国也有可能效仿欧洲的做法,将统一智能设备的接口、充电标准。 对于目前的情况而言,苹果真的是要全面启用USB-C了,因为美国本土也在效仿欧盟统一接口。 一组参议院民主党人呼吁美国商务部效仿欧
[嵌入式]
USB-IF:USB 3.1规范现已发表
    USB相信对于许多消费者而言是再普及不过的通用传输连接埠,随著有越来越多行动装置设备的推出,引爆使用者对于高速传输以及影音串流的需求,也连带使得USB 2.0的传输速度更显得捉襟见肘。为了能够让使用者拥有更快速的传输速度,USB-IF协会正式对外宣布,USB 3.1规范已制定完成,传输速度也将从原先USB 3.0的5Gbps一口气提升到10Gbps。 USB-IF协会表示,由于全新USB 3.1规范采用了效能较高的资料编码技术,因此得以让传输速度能够从原有USB3.0的5 Gbps进而提升至10Gbps。此外,在产品相容度部分,全新USB 3.1规范是构筑在原有的USB 3.0软体堆叠以及设备级协定架构之下,能够完全向下
[手机便携]
STM32 usb_pwr.c文件分析
usb_pwr.c 这个文件看文件名就知道跟功耗有关了,有很多的状态:上电、掉电、挂起、恢复。 当首先是usb的上电和断电函数的定义了。 usb上电函数如下: /******************************************************************************* * Function Name : PowerOn * Description : 上电 * Input : None. * Output : None. * Return : USB_SUCCESS. ***************************************
[单片机]
CS8.1 TYPEC拓展坞USB2.0HUB芯片方案|CS8.1可完全替代FE8.1S
CS8.1是一款USB 2.0高速4端口集线器控制器,具有支持GSMA“通用充电解决方案”(UCS)的特殊功能。它是 完全符合USB-IF“通用串行总线规范修订版2.0”和“电池充电规范修订版1.1/1.2”。 CS8.1是用于USB 2.0 4端口集线器的高度集成、高质量和高性能解决方案。其占地面积小,功耗极低,是嵌入式应用程序和独立集线器的最佳选择。 CS8.1的高质量由具有全面扫描链的测试设计和内置自检模式保证,该模式可在封装和测试阶段使用所有高速、全速和低速模拟前端(AFE)组件。 CS8.1可选择性配置为支持USB-IF电池充电规范定义的下游端口充电。具有此功能 启用后,USB集线器可以轻松转换为充电
[嵌入式]
CS8.1 TYPEC拓展坞<font color='red'>USB</font>2.0HUB芯片方案|CS8.1可完全替代FE8.1S
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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