91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

如何用MCUXpresso Config Tools來快速生成一個可用的USB

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2021-10-28 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

本文介紹了如何使用MCUXpresso Config Tools來快速生成一個可用的USB composite device的demo,以便節省時間直接進行USB應用層的開發,而不必關注USB協議棧及底層的配置。文詳細介紹了如何利用Config Tools生成USB Composite Device工程的全部步驟,并且還會介紹,如何將這些代碼porting到IAR等不同IDE中進行開發。

組合設備介紹

USB的composite類是指在一個USB設備中,實現多個不同功能的特殊USB類,如一個設備實現鼠標加鍵盤或者U盤加鍵盤的功能。

實際上,USB composite類幾乎可以將任意的USB功能進行組合,并且組合的數量也不局限于兩個,只要端點資源夠多,可以組合三個或多個功能于一個設備上。

在USB中,還存在有一種compound device的概念,它與composite device都可以譯作復合設備或組合設備,但是它們是兩個完全不同的概念。

USB compound device(USB復合設備)中內嵌Hub和多個功能,每個功能都是獨立的USB設備,有獨立的VID與PID,從實現層面上講就是一個物理設備實現了一個Hub和多個物理設備。

USB composite device(USB組合設備)中只有一套VID與PID,通過不同的接口將這同一個設備定義為不同的功能的組合。而不同功能的實現依賴于不同的類接口的合并。

環境搭建

本文使用i.MX RT1060-EVK板作為演示對象,所使用的MCUXpresso IDE(以下簡稱MCUX)版本為v11.4.0,其中內置了v10.0.0版本的Config Tools,使用內置的Config Tools所生成的工程,可以直接在MCUXpresso IDE內編譯下載,下一章將會介紹如何將生成的代碼集成到IAR中進行編譯下載運行。

在使用MCUXpresso生成工程時需要加載SDK到MCUXpresso環境中,本文使用的SDK版本為2.10.0。

以下例子是生成了一個包含CDC VCOM、MSC、HID Mouse三個類功能的組合設備。

配置工程

首先需要創建工程。

進入MCUXpresso IDE界面后,點擊New project進入創建工程界面,選擇evkmimxrt1060板,點擊next,進入config界面,點擊middleware選項卡,選中USB Device和USB PHY選項, USB Common Header會被自動勾選,最后點擊Finish完成工程創建。

具體步驟如下圖:

44512c88-378b-11ec-82a8-dac502259ad0.png

完成工程的創建后,選擇ConfigTools選項卡下的Peripherals,進入工程配置界面,在左側Components窗口下,點擊Middleware右側的加號,彈出選擇界面,在選擇界面中選中USB,點擊OK。操作步驟如下圖所示。

44a32362-378b-11ec-82a8-dac502259ad0.png

此時,我們已經將USB中間件添加進入配置,剛添加進入后會發現右下角的Problems界面內會報兩條錯誤,為了解決其中的時鐘錯誤,首先還是在ConfigTools選項卡內,選擇Clocks,進入Clock配置界面,選擇Clock Outputs界面中的USBPHY1 PLLclock,然后在右側的Details界面內Enable USBPHY1 clock output,具體步驟如下圖所示。

450ced60-378b-11ec-82a8-dac502259ad0.png

返回Peripherals界面,時鐘的錯誤已經消除,下面開始添加USB的功能接口,在剛才添加的USB1的主界面內根據自己的需求修改device的VID及PID。點擊Supported interfaces選項旁邊的加號,添加一個interface,會生成一個interface0,默認新添加的interface的類都是DFU,在右側Class下拉菜單中選擇想要實現的組合設備中的第一個類。

此處需要注意的是,CDC VCOM的實現需要用到兩個子類interface,分別是用于管理和控制的通信類接口CIC與用于傳輸數據的數據接口類DIC,在Config Tools中需要分別添加兩個interface組成來一個CDC VCOM的功能。添加兩個interfaces,分別設置類為CIC VCOM及DIC VCOM。Config Tools添加interfaces時,是按照順序使用端點號及interface號,這里我們不修改任何參數,直接使用默認的數據,如果應用層有特殊需要的,也可以修改端點的相關參數來滿足需求。

第一個CDC VCOM類的功能添加完成后,開始添加第二個MSC類的interface,仍然是點擊加號,修改Class為MSC,其余的配置都保持默認。最后進行HID類的配置,仍然是點擊加號,添加新的interface,修改Class為HID,在右側的Present下拉框內選擇Mouse,需要使用自定義HID報告的應用可以選擇None,并且自己進行Endpoints和report的配置。所有配置過程如下圖所示:

4575eb4e-378b-11ec-82a8-dac502259ad0.png

在所有類的interfaces添加完成后,點擊上方菜單中的UpdateCode,在彈出的對話框中,可以看到本次配置對哪些文件產生了影響,此處需要注意的是,需要前兩個board文件夾下的4個文件的默認勾選去除掉,然后點擊OK,完成代碼的生成。具體步驟如下圖所示。

45cac6aa-378b-11ec-82a8-dac502259ad0.png

在生成完成代碼后,MCUX會自動跳轉回工程開發界面,打開source目錄下的與工程同名的.c文件,在頭文件處添加’ #include “usb_device_composite.h”’,并且將主循環里的內容替換為USB_DeviceTasks();。

修改的步驟如下圖所示。

46133f66-378b-11ec-82a8-dac502259ad0.png

完成上述修改后即可編譯下載到RT1060-EVK板上進行測試。下載完成后按下EVK板的reset鍵,連接USB1口到PC的USB口,打開設備管理器可以看到生成了一個新的composite device,并且同時,還可以在各個設備類下面查找到實現的相應的設備,并且這些設備的PIDVID相同,都是在配置界面內所配置的PIDVID,如下圖所示。

4655fa04-378b-11ec-82a8-dac502259ad0.png

移植到IAR環境

先要準備一個IAR的工程。

在SDK生成器中下載一個帶有完整的USB stack的SDK包,然后在同樣的頁面內下載一個Standalone的示例工程,如下圖所示。

466af7c4-378b-11ec-82a8-dac502259ad0.png

根據所要生成的Composite Device所含的類的種類,選擇SDK中的某單一類的工程,例如,本應用筆記中的Composite Device包含了三個類,在生成單獨的工程時,選擇dev_hid_mouse_bm的工程。

接下來需要添加和刪除一些文件

上一節中生成的工程中,只包含了HID類的相關文件,所以我們需要朝工程內添加兩部分的文件,以實現composite device的功能。

第一部分的文件是USB stack相關的文件,這也是為什么我們需要一個完整的SDK包的原因,從SDK包的middlewareusboutputsourcedeviceclass目錄中將MSC類及CDC類相關的文件添加到工程中。如下圖所示。

46d5831e-378b-11ec-82a8-dac502259ad0.png

第二部分文件是由Config Tools生成的文件,這部分文件在MCUX的工程目錄下能夠找到,將Config Tools生成的文件復制到IAR工程目錄下,并且如下圖所示將它們添加進工程。

470d7602-378b-11ec-82a8-dac502259ad0.png

在完成文件的添加后還需要把原本source目錄下的文件從工程中去除,以免除本來工程里的文件與工具所生成的文件產生的沖突。由于使用的基工程是HID Mouse的demo工程,還需要將usb目錄下的dcd目錄下的文件從工程中去除,否則工程會報錯。

需要注意的是,在把所有的文件添加進工程以后,需要在配置里將保存相應頭文件的目錄添加到include directories中。

完成上述工作后,即可編譯下載,運行效果與前一章的效果一致。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17981

    瀏覽量

    366805
  • usb
    usb
    +關注

    關注

    60

    文章

    8184

    瀏覽量

    272864
  • CDC
    CDC
    +關注

    關注

    0

    文章

    57

    瀏覽量

    18216
  • 編譯
    +關注

    關注

    0

    文章

    679

    瀏覽量

    33982
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1077

    瀏覽量

    49086

原文標題:手把手帶您使用MCUXpresso Config Tools生成USB組合設備

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    恩智浦MCU MCXN947 基于MCUXpresso Config tools創建IIC的教程步驟

    MCXN947是NXP推出的高性能微控制器,支持豐富的通信接口,如I2C。借助MCUXpresso Config Tools,開發者可快速配置I2C外設,
    的頭像 發表于 05-22 09:40 ?1160次閱讀
    恩智浦MCU MCXN947 基于<b class='flag-5'>MCUXpresso</b> <b class='flag-5'>Config</b> <b class='flag-5'>tools</b>創建IIC的教程步驟

    何用QT開發USB3.0上位機?

    何用QT開發USB3.0上位機
    發表于 05-21 06:54

    如何在不使用USB控制器的情況下對CYPD2119-24LQXI自定義配置進行編程?

    我想要編程(如果可能的話通過 SWD)自定義但相當基本的“Type-C 到 DP”AltMode 適配器功能,到安裝在自定義 PCB 上的CYPD2119-24LQXI設備上。 我已經下載了
    發表于 05-13 06:35

    為什么找不到MCUXpresso的SDK?

    我有LPC1769的 LPCXpresso 板,現在我需要 SDK,但我找不到 MCUXpresso 的 SDK,并且 LPCExpresso v2.07 的鏈接不起作用,“系統當前不可用”。
    發表于 04-03 08:17

    MCUXpresso_24.12.148/FRDM-K22F調試會話啟動速度非常慢,怎么解決?

    任何錯誤消息。加載速度非常慢。加載 Debug 會話后,調試似乎以正常的響應速度進行。 如果我構建并調試 NXP 示例項目,則 Debug 會話幾乎立即出現 - 只需幾秒鐘。 我在 Ubuntu 22.04 上構建。 請問我該如何加
    發表于 04-02 08:26

    FRDM-MCXN947為什么無法使用配置工具修改示例項目中使用的led_blinky LED?

    配置工具。 4. 旦打開,Config 工具就會報告 Clocks 和 Pin 中的許多錯誤。(大約 20 錯誤)。我是 NXP、MCUXpresso 和 VSCode 的新手,所
    發表于 03-24 07:59

    MCUxpresso IDE中收到錯誤:檢測到0可用的SWD設備,怎么解決?

    中收到以下錯誤: 錯誤:檢測到 0 可用的 SWD 設備。 我可以通過什么方式從這個階段恢復 MCU ?
    發表于 03-21 07:22

    用hal庫通過usb做了hid復合設備,想問問怎么才能通過藍牙實現hid設備?

    新手剛剛接觸stm32,想請教大佬, 最近用hal庫通過usb做了hid復合設備,想問問怎么才能通過藍牙實現hid設備 我用cubemx直接就給我
    發表于 03-11 08:16

    恩智浦發布新版MCUXpresso SDK

    對于使用恩智浦無線微控制器 (如RW61x和MCX W) 及軟件平臺的開發人員,在GitHub發布的MCUXpresso SDK 24.12.00是向前邁出的重要步。最新的SDK版本得到了顯著的改進,旨在加速產品開發,增強代碼的可視化,并通過現代開源工具提高效率。
    的頭像 發表于 02-21 14:20 ?2034次閱讀
    恩智浦發布新版<b class='flag-5'>MCUXpresso</b> SDK

    用Reality AI Tools創建模型

    在第二步采集到的數據基礎之上,用Reality AI Tools創建模型。
    的頭像 發表于 01-22 14:23 ?2290次閱讀
    用Reality AI <b class='flag-5'>Tools</b>創建模型

    MCUXPresso for VS Code插件 從0開始打造HelloWorld

    篇中Zephyr的Hello 2025,Hello World,小編為大家介紹了使用MCUXPresso for VS Code插件導入
    的頭像 發表于 01-16 09:20 ?1236次閱讀
    用<b class='flag-5'>MCUXPresso</b> for VS Code插件 從0開始打造HelloWorld

    使用MCUXpresso for VS Code插件開發Zephyr的hello world

    本期來到Zephyr實戰經驗演練,小編帶著大家起使用MCUXpresso for VS Code插件開發屬于Zephyr的hello
    的頭像 發表于 01-03 09:21 ?1256次閱讀
    使用<b class='flag-5'>MCUXpresso</b> for VS Code插件開發Zephyr的hello world

    使用MCUXPresso插件開發Zephyr

    應廣大讀者朋友的熱情邀請,我們特別策劃了“Zephyr領進門”系列介紹(共十篇),旨在為大家深度剖析Zephyr OS——這備受矚目的開源實時操作系統。從使用MCUXPresso插件進行開發
    的頭像 發表于 11-28 09:41 ?882次閱讀

    在macOS Sierra上安裝Pro Tools 10

    在 macOS Sierra 上安裝 Pro Tools 10?
    發表于 11-25 14:48 ?0次下載

    在DRA7xx器件上使用CONFIG-FS的USB復合小工具

    電子發燒友網站提供《在DRA7xx器件上使用CONFIG-FS的USB復合小工具.pdf》資料免費下載
    發表于 10-10 09:26 ?0次下載
    在DRA7xx器件上使用<b class='flag-5'>CONFIG</b>-FS的<b class='flag-5'>USB</b>復合小工具
    主站蜘蛛池模板: 欧美性黑人极品1819hd | 国产一级又色又爽又黄大片 | 天天射天天射天天射 | 日本黄色片在线播放 | 久久www免费人成高清 | 成人欧美一区二区三区视频不卡 | jzzjlzz亚洲乱熟在线播放 | 99久久国产免费福利 | 一区二区三区影院 | 一区二区三区免费在线 | 激情开心婷婷 | 特黄a大片免费视频 | 六月丁香深爱六月综合激情 | aaaa级毛片| 精品伊人久久大线蕉地址 | 免费色黄网站 | 欧美第四色| 色图视频 | 男人的天堂视频网站清风阁 | 韩国三级理在线视频观看 | 国产国语videosex另类 | h免费在线观看 | 黄视频免费网站 | 国模伊人 | 欧美性猛交xxx嘿人猛交 | 加勒比精品久久一区二区三区 | bt天堂中文在线 | 久草毛片 | 天天干天天色综合网 | 成人影院在线观看 | 国产伦精品一区二区三区在线观看 | 亚洲va久久久噜噜噜久久天堂 | 日本免费一区二区在线观看 | 国模吧一区二区三区精品视频 | 性欧美大战久久久久久久 | 五月天精品在线 | 西西人体大胆高清啪啪欧洲 | 91啦中文在线观看 | 亚洲色图吧 | 亚洲福利午夜 | sss欧美一区二区三区 |