查看: 5114|回复: 2

[原创] 从USB0到USB1软件更新方法小结

[复制链接]

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24946
最后登录
2025-7-25
发表于 2022-3-2 14:47:44 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2022-3-2 14:47 编辑

从USB0到USB1软件更新方法小结

    USB是英文Universal Serial Bus(通用串行总线)的缩写。NXP LPC目前集成了全速USB(FS, Full Speed,12Mbps)和高速(HS, High Speed,480Mbps)USB。
    具体来讲,对于LPC系列:
  -   某些LPC如LPC55xx,LPC54xxx的部分芯片同时集成了HS USB和FS USB。 通常USB0 为FS USB, USB1为HS USB。
  -   某些LPC如LPC43xx,LPC18xx 的部分芯片集成了两个HS USB, 那么USB0和USB1均为HS USB。
    NXP为LPC系列推出的软件包最著名的两个软件包是MCUXpresso SDK 和 LPCOpen。MCUXpressoSDK主要面向NXP近几年推出的LPC产品, LPCOpen则用于更早期的LPC芯片。这两种软件包里涉及的USB 例程默认跑在USB0上。 本文推出的目的就是向用户介绍如何将基于USB0的例程切换为USB1的例程。

1  基于MCUXpressoSDKUSB Demo
    (例如LPC54XXXLPC55XX系列)
基于MCUXpresso SDK开发包中的USB演示例程包括
-   USB作为 Device : 例如usb_device_cdc_vcom,usb_device_hid_generic
-   USB 作为 Host:例如usb_host_hid_mouse,usb_host_msd_fatfs
-   基于USB ROM 的demo code:usb_rom_device_audio,usb_rom_device_cdc
  1.1更新USB device例程:USB0->USB1
以usb_device_cdc_vcom为例,要切换到USB1,只需将source\usb_device_config.h文件的对应代码变更如下。
/*! @brief LPC USB IP3511 FS instance count*/
#define USB_DEVICE_CONFIG_LPCIP3511FS (0U)
/*! @brief LPC USB IP3511 HS instance count*/
#defineUSB_DEVICE_CONFIG_LPCIP3511HS (1U)
device前后.png
重新编译运行。程序更新为USB1 device demo
  1.2 更新USB host例程:USB0->USB1
以usb_host_hid_mouse为例,要切换到USB1,将source\usb_host_config.h中宏定义修改如下。
#defineUSB_HOST_CONFIG_KHCI (0U)
#defineUSB_HOST_CONFIG_EHCI (0U)
#define USB_HOST_CONFIG_OHCI (0U)
#define USB_HOST_CONFIG_IP3516HS (1U)
host前后.png
重新编译运行。程序更新为USB1 host demo
  1.3 更新USB ROM例程:USB0->USB1
    ( LPC54XXX系列)
    由于USB ROM例程调用了USB ROM API,所以没有办法通过宏定义来将默认USB0切换为USB1。如果需要更改,推荐的修改步骤如下:
-更改USB HS DEVICE 和USB PHY 时钟配置
-更改使用 USB HS ISR
-将相关缓冲区定位到 USB RAM中
-将 USB ROM 手动设置为 HS模式

    如果自己操作有困难,可以向nxp lpc申请demo code。

2. 基于LPCOpenUSB Demo
    (例如LPC43XXLPC18XX系列)
    某些芯片推荐在LPCOpen软件开发工具包上运行,例如LPC43xx系列、LPC18xx系列,尽管他们的USB0、USB1都是高速,但如果需要切换可在app_usbd_cfg.h中注释 #defineUSE_USB0 后取消注释 #defineUSE_USB1来完成。
// #define USE_USB0
#define USE_USB1

usbd_rom_cdc_uartdemo为例:
LPCOpen前后.png
重新编译运行,程序更新为USB1 demo

3. 注意事项:

    本文的侧重点在于转换USB0到USB1在软件上的修改。硬件上建议客户查阅对应demo板的手册,例如在USB1的情况下,可能需要外加电源,跳线也需要调整,搭建好使用于USB1运行的硬件环境。这里就不一一赘述了。

小结:
      本文总结了常用的几个LPC系列在SDKLPCOpen上将USB0切换为USB1的方法,客户如需USB1例程,可针对自己的软件和芯片在本文中查找到对应修改方法。


回复

使用道具 举报

  • TA的每日心情
    开心
    2025-6-10 23:03
  • 签到天数: 1502 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4688

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10080
    最后登录
    2025-7-2
    发表于 2022-3-2 15:39:15 | 显示全部楼层
    这个,在开发过程中至少要学习一遍USB应用手册吧!
    也不能直接拿demo放到产品里面吧
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24946
    最后登录
    2025-7-25
     楼主| 发表于 2022-3-2 16:21:26 | 显示全部楼层
    本帖最后由 小恩GG 于 2022-3-2 16:25 编辑
    jobszheng5 发表于 2022-3-2 15:39
    这个,在开发过程中至少要学习一遍USB应用手册吧!
    也不能直接拿demo放到产品里面吧 ...

    你说的对。
    我们官方例程仅用demo 板演示和芯片的学习。如果用户有需要,可以参考我们提供的demo,帮助加快学习的速度。
    如果用户用于商业用途,用户要自己深入学习USB并对自己的应用程序负责。USB的学习可不是一日之功。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-26 14:16 , Processed in 0.089706 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表