一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-30 18:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

wKgaomUD0hSAQTEAAAGbOuW9Nck634.png

這個中斷 ”感覺好像就是SOF中斷”,似乎只是名字換成了FRAME_INT,在手冊中的描述也和SOF中斷幾乎一樣,但是手冊里就是沒有說它就是SOF中斷。

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

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

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

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

wKgZomUD0hWAdkeaAAIeWz69IlA125.png

這有點奇怪了。。。USB總線上沒有任何包發(fā)過來,但是還是會進FRAME_INT中斷!難道FRAME_INT中斷不是SOF中斷?

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

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

wKgaomUD0heADqkpAAFisCdhq68565.png

代碼如下所示:

wKgaomUD0hiADdzdAARJLrlrPKc409.png

補充:

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

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

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

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

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

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

來源:恩智浦MCU加油站

審核編輯:湯梓紅

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

    關(guān)注

    60

    文章

    8190

    瀏覽量

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

    關(guān)注

    5

    文章

    905

    瀏覽量

    42808
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118960
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

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

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

    恩智浦LPC55S16 MCU獲得了PSA 2級和SESIP 2級保證認證

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

    LPC55S69 Flashmagic不編程的原因?

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

    LPC5500 Flash過度編程是否可行?

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

    INT0中斷實驗

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

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

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

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

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

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

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

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

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

    單片機實驗INT0及INT1中斷計數(shù)的程序和仿真資料免費下載。

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

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

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

    LPC5500USBFRAME_INT中斷問題

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

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

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

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

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