0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于LPC5500中USB的FRAME_INT中斷

jf_pJlTbmA9 ? 來(lái)源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-30 18:26 ? 次閱讀

USB中的SOF(Start Of Frame)包是USB開(kāi)發(fā)中,經(jīng)常接觸也是很簡(jiǎn)單的一個(gè)概念:SOF由USB主機(jī)每1ms定時(shí)發(fā)出(FS),作用很多,相當(dāng)于是一個(gè)時(shí)鐘節(jié)拍基準(zhǔn),如果暫時(shí)用不到,就忽略也沒(méi)有關(guān)系。LPC5528的USB模塊中,有一個(gè)FRAME_INT中斷描述如下:

wKgaomUD0hSAQTEAAAGbOuW9Nck634.png

這個(gè)中斷 ”感覺(jué)好像就是SOF中斷”,似乎只是名字換成了FRAME_INT,在手冊(cè)中的描述也和SOF中斷幾乎一樣,但是手冊(cè)里就是沒(méi)有說(shuō)它就是SOF中斷。

經(jīng)過(guò)小編實(shí)測(cè)和向同事確認(rèn),發(fā)現(xiàn)這個(gè)中斷實(shí)際上并不完全等同于SOF中斷,兩者還是有一定區(qū)別的。本文就來(lái)探討一下這個(gè)問(wèn)題:

事情是這樣的: 小編最近支持一個(gè)客戶,客戶的代碼中涉及低功耗按鍵喚醒,USB Remote wakeup, 也需要用到SOF中斷做為定時(shí)器來(lái)驅(qū)動(dòng)上層app事件。

客戶發(fā)現(xiàn):當(dāng)PC關(guān)機(jī)的時(shí)候,LPC5528被按鍵喚醒,喚醒后執(zhí)行Remote Wakeup(實(shí)際就是MCU將USB總線設(shè)置為K states),因?yàn)檫@時(shí)候主機(jī)Host已經(jīng)關(guān)機(jī),USB總線上沒(méi)有任何信號(hào),永遠(yuǎn)維持的K states上,但是MCU卻莫名其妙的進(jìn)入了FRAME_INT中斷,而且還是1ms的周期!

測(cè)試使用一個(gè)GPIO引腳——GPIO_SOF_EVT,每當(dāng)進(jìn)入FRAME_INT中斷后,Toggle一次;測(cè)試波形如下圖:

wKgZomUD0hWAdkeaAAIeWz69IlA125.png

這有點(diǎn)奇怪了。。。USB總線上沒(méi)有任何包發(fā)過(guò)來(lái),但是還是會(huì)進(jìn)FRAME_INT中斷!難道FRAME_INT中斷不是SOF中斷?

結(jié)果確實(shí)是這樣。。經(jīng)過(guò)和同事確認(rèn),F(xiàn)RAME_INT中斷確實(shí)不是SOF中斷,它只是和SOF中斷有點(diǎn)像而已。當(dāng)VBUS沒(méi)有掉電且MCU執(zhí)行Remote wakeup(Resume)的時(shí)候, FEAME_INT還是會(huì)”如期而至”。。他和SOF包沒(méi)有必然聯(lián)系。。。疑惑中

那么如果想用SOF中斷咋辦呢?有一個(gè)簡(jiǎn)單的辦法:USB->INFO寄存器中的前11位為FRAME_NR,它記錄了正確解碼SOF的幀號(hào),每當(dāng)收到一個(gè)真正的SOF幀,F(xiàn)RAME_NR都會(huì)自加,所以在FRAME_INT中斷中可以讀入FRAME_NR來(lái)輔助判斷,這次FRAME_INT到底是不是真正的SOF包到來(lái):

wKgaomUD0heADqkpAAFisCdhq68565.png

代碼如下所示:

wKgaomUD0hiADdzdAARJLrlrPKc409.png

補(bǔ)充:

小編同時(shí)也測(cè)試了HS-USB的FRAME_INT中斷,其結(jié)論和FS是一樣的,只不過(guò)HS的FRAME_INT中斷是微幀,125us一次。

FRAME_INT中斷在SDK中默認(rèn)是關(guān)閉的,需要在INTEN寄存器中打開(kāi)對(duì)應(yīng)的標(biāo)志位才可以使用。

到此為止,有必要進(jìn)一步地思考一下,為什么這個(gè)USB的內(nèi)部模塊中,沒(méi)有專門的SOF中斷,卻出現(xiàn)了這個(gè)與SOF有關(guān),又不來(lái)源于SOF的FRAME_INT中斷。

盡管沒(méi)有與芯片設(shè)計(jì)人員溝通,但可以合理地推論,這個(gè)FRAME_INT中斷是為SOF相關(guān)應(yīng)用而設(shè)計(jì)的,之所以沒(méi)有直接使用SOF作為觸發(fā)源,是因?yàn)樵赨SB主機(jī)休眠時(shí),不再有SOF信號(hào),而對(duì)于在主機(jī)休眠時(shí)仍需要周期中斷源的USB應(yīng)用而言,則需要使用其它定時(shí)器資源來(lái)實(shí)現(xiàn)相應(yīng)功能,這樣就會(huì)占用其它片上資源,又會(huì)增加軟件調(diào)度的負(fù)擔(dān)。

而在片內(nèi)USB模塊中,設(shè)計(jì)這樣的機(jī)制,即可以在沒(méi)有外部SOF信號(hào)時(shí),繼續(xù)維持周期性的中斷,也可以在SOF信號(hào)恢復(fù)后,保持這個(gè)周期中斷與SOF同步,即實(shí)現(xiàn)了SOF中斷的功能,又兼顧了軟件的實(shí)現(xiàn)與層次劃分。

最后,這樣的設(shè)計(jì)并不增加硬件的成本。

來(lái)源:恩智浦MCU加油站

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7772

    瀏覽量

    262370
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41219
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113676
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于恩智浦LPC5500系列MCU的OKDO E1開(kāi)發(fā)板詳解

    OKDO E1 開(kāi)發(fā)板作為恩智浦 LPC5500 系列開(kāi)發(fā)平臺(tái)中獨(dú)特的一員,以其小巧的尺寸,高易用性收獲了許多用戶的高度關(guān)注。開(kāi)發(fā)板僅 2 枚硬幣大小,卻集成了 LPC55S69 主芯片
    發(fā)表于 11-13 15:20 ?1516次閱讀

    基于Cortex M33的LPC5500系列MCU主要功能特性介紹

    (內(nèi)置閃存)進(jìn)行實(shí)時(shí)執(zhí)行,并通過(guò)Arm TrustZone-M保護(hù)資產(chǎn)。此外,LPC5500系列MCU共有7個(gè)可擴(kuò)展的家族,提供多種封裝和內(nèi)存選項(xiàng),還具有全面的MCUXpresso軟件和工具生態(tài)系統(tǒng)
    發(fā)表于 11-13 16:06 ?2307次閱讀
    基于Cortex M33的<b class='flag-5'>LPC5500</b>系列MCU主要功能特性介紹

    恩智浦LPC55S16 MCU獲得了PSA 2級(jí)和SESIP 2級(jí)保證認(rèn)證

    LPC55S16 MCU屬于恩智浦EdgeVerse?計(jì)算和安全產(chǎn)品組合,是基于Arm? Cortex?-M33內(nèi)核的通用LPC5500 MCU系列的成員。
    發(fā)表于 11-21 09:28 ?1706次閱讀

    LPC55S69 Flashmagic不編程的原因?

    到我的主板。(這也為我的 PCB 供電)我遵循了 flashmagic 的設(shè)置:選擇 USB LPC55S69。十六進(jìn)制文件。設(shè)備 LPC55S69(USB
    發(fā)表于 03-15 07:54

    LPC5500 Flash過(guò)度編程是否可行?

    我了解 LPC5500 處理器具有帶 ECC 的閃存,頁(yè)面大小為 512 字節(jié),用于擦除和編程。 在 LPC55S6x/LPC55S2x 用戶手冊(cè)的 5.7.13 ECC 部分,我發(fā)現(xiàn)它說(shuō) 由于
    發(fā)表于 06-01 06:56

    INT0中斷實(shí)驗(yàn)

    INT0中斷實(shí)驗(yàn)。 1、按鍵中斷實(shí)驗(yàn)。低電平中斷,在中斷改變PB1電平狀態(tài)。&nbs
    發(fā)表于 06-30 11:22 ?3005次閱讀

    基于8051的Proteus仿真-INT0及INT1中斷計(jì)數(shù)

    基于8051的Proteus仿真-INT0及INT1中斷計(jì)數(shù)
    發(fā)表于 09-01 23:29 ?33次下載

    基于8051的Proteus仿真-INT0中斷計(jì)數(shù)

    基于8051的Proteus仿真-INT0中斷計(jì)數(shù)
    發(fā)表于 09-01 23:29 ?12次下載

    使用51單片機(jī)的INT 0及INT 1中斷計(jì)數(shù)的資料和程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)的INT 0及INT 1中斷計(jì)數(shù)的資料和程序免費(fèi)下載。
    發(fā)表于 09-02 17:28 ?0次下載
    使用51單片機(jī)的<b class='flag-5'>INT</b> 0及<b class='flag-5'>INT</b> 1<b class='flag-5'>中斷</b>計(jì)數(shù)的資料和程序免費(fèi)下載

    安全、高能、低耗!NXP正式開(kāi)始量產(chǎn)LPC551x

    LPC551x/S1x作為系列的入門級(jí)產(chǎn)品,提供出色的能效比的同時(shí),依然繼承了LPC5500系列的諸多安全功能。使其除了在物聯(lián)網(wǎng)應(yīng)用中游刃有余,還能擴(kuò)展應(yīng)用到消費(fèi)類及工業(yè)自動(dòng)化領(lǐng)域。
    的頭像 發(fā)表于 06-03 11:25 ?4676次閱讀

    單片機(jī)實(shí)驗(yàn)INT0及INT1中斷計(jì)數(shù)的程序和仿真資料免費(fèi)下載。

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)實(shí)驗(yàn)INT0及INT1中斷計(jì)數(shù)的程序和仿真資料免費(fèi)下載。
    發(fā)表于 06-05 16:55 ?4次下載
    單片機(jī)實(shí)驗(yàn)<b class='flag-5'>INT</b>0及<b class='flag-5'>INT</b>1<b class='flag-5'>中斷</b>計(jì)數(shù)的程序和仿真資料免費(fèi)下載。

    串口DMA發(fā)送+中斷接收的例程

    LPC5500的SDK中提供了非常豐富的串口例程(如下圖所示)。
    的頭像 發(fā)表于 07-21 09:14 ?2525次閱讀

    LPC5500USBFRAME_INT中斷問(wèn)題

    這個(gè)中斷 ”感覺(jué)好像就是SOF中斷”,似乎只是名字換成了FRAME_INT,在手冊(cè)的描述也和SOF中斷幾乎一樣,但是手冊(cè)里就是沒(méi)有說(shuō)它就是
    發(fā)表于 12-15 10:38 ?426次閱讀

    基于AT89C51單片機(jī)INT0及INT1中斷計(jì)數(shù)仿真及代碼

    基于AT89C51單片機(jī)INT0及INT1中斷計(jì)數(shù)仿真及代碼
    發(fā)表于 05-04 14:53 ?0次下載

    LPC5500_SDK例程:串口DMA發(fā)送+中斷接收

    LPC5500_SDK例程:串口DMA發(fā)送+中斷接收
    的頭像 發(fā)表于 10-30 16:59 ?893次閱讀
    <b class='flag-5'>LPC5500</b>_SDK例程:串口DMA發(fā)送+<b class='flag-5'>中斷</b>接收