1 【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

泰凌微电子 来源:未知 2023-07-19 08:40 次阅读

本文主要简单介绍USB HID Vendor Defined设备的应用和调试方法,结合Telink 8355 Dongle做简要说明。

1

USB HID Vendor Defined 设备概述

1、hid设备类型是由hid报告描述符中的用途页(USAGE PAGE)决定的,常见的有Generic Desktop Controls ,Keyboard/Keypad ,还有有厂商自定义(Vendor Defined Page)选项。常用的用途表如下:

382f2352-25cc-11ee-962d-dac502259ad0.png

2、借助USB HID Vendor Defined设备可以实现USB设备与上位机间的双向通信

2

新增一个USB HID Vendor Defined设备

1、修复报告描述符

开发者可以在已有的usb interface中新增一个vendor defined设备,也可以新增一个interface,把这个vendor defined设备挂在新增的接口下面。

38451d7e-25cc-11ee-962d-dac502259ad0.png

采用在一个单独的接口中添加Vendor Defined设备,report 描述符如下:

38507f8e-25cc-11ee-962d-dac502259ad0.png

通过上面的修改,usb设备枚举完成后,在bus hound中可以查看到两个Vendor Defined设备已经枚举成功。

386bec4c-25cc-11ee-962d-dac502259ad0.png

3

USB HID Vendor Defined设备的调试

1、Vendor Defined设备调试方法

根据第二章中的报告描述符,设置了两个usage page 并开辟了两个集合,分别对应两个Vendor Defined设备。第一个设备的usage page为0xFFEF,用来给dongle 升级使用。Report ID为6,既有输入也有输出,report长度都为63。第二个设备开发者可以自由决定他的用途,可以跟上位机做自定义的数据通信。设备2的Report ID,9,Report length为32。这两个设备都使用相同的输入输出端点,他们的数据通过不同的报告ID来进行区分。

38788f9c-25cc-11ee-962d-dac502259ad0.png

2、利用bus houndvwin 上位机下发数据

对于上位机一般是通过指定的usage page来打开usb设备,然后进行数据读取和写入。使用bus hound可以简单的模拟上位机进行数据发送。

特别在发送数据的时候,要严格按照报告描述符中定义的report ID 和Report Length来发,否则可能出错。

双击上图中的USB Input Device,可以选Control Out 和 interrupt Out进行发送数据测试。如果接口里面有OUT端点,则set report命令下发数据和write file命令数据都是通过out端点下来,如果没有OUT端点,则set report命令数据是通过控制端点下发的。

01

通过Set report命令下发数据

Set report命令格式如下:

388c0c5c-25cc-11ee-962d-dac502259ad0.png

389fc8c8-25cc-11ee-962d-dac502259ad0.png

02

通过write file下发数据

38c0be7a-25cc-11ee-962d-dac502259ad0.png

03

MCU读取上位机发送的数据

  • 读取上位机set report命令数据

38d25784-25cc-11ee-962d-dac502259ad0.png

  • MCU读取上位机write file数据

38e4b91a-25cc-11ee-962d-dac502259ad0.png

04

Vendor Defined设备发送数据

上报数据就是通过往Vendor Defined设备所在接口的in端点里面写数据。

特别的,第一个字节需要为报告描述符指定的Report ID,数据长度需要为报告描述符指定的长度。

38f06102-25cc-11ee-962d-dac502259ad0.png

4

总结

USB HID Vendor Defined设备是一种非常常见的人机交互接口,可以方便的实现用户各种定制化的与上位机交互需求,广泛应用于固件升级、参数设置、命令收发等定制化场景。目前Telink 键鼠领域的各SDK均支持USB HID Vendor Defined 设备,用户只需简单调用接口便可以实现与上位机交互功能。

关 于 泰 凌

泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接SoC芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有协议等低功耗2.4GHz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。

官网:www.telink-semi.com

微信公众号:telink-semi

泰凌开发者论坛

https://developers.telink-semi.cn/

销售接洽:

中国大陆(华东、华北) :

+86-21-20281118-8213

中国大陆(华南、香港、音频) :

+86-0755-26614003

telinksales@telink-semi.com

390ec732-25cc-11ee-962d-dac502259ad0.gif


原文标题:【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 泰凌微
    +关注

    关注

    7

    文章

    147

    浏览量

    10806

原文标题:【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    微电子获蓝牙 6.0 认证,助力蓝牙技术拓展与应用升级

    。尤为值得一提的是,微电子是全球范围内首个获得该认证的非手机芯片公司,也是中国第一家获得蓝牙6.0认证的芯片公司。这一标志性成果,再次有力地彰显了
    发表于 11-26 14:07 208次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>获蓝牙 6.0 认证,助力蓝牙<b class='flag-5'>技术</b>拓展与应用升级

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    微电子推出Wi-Fi 6多协议TLSR9118 SoC

    微电子(股票代码:688591.SH),作为无线连接解决方案领域的创新先锋,近日正式宣布其突破性成果——TLSR9118 SoC的问世。这款里程碑式的芯片不仅标志着
    的头像 发表于 08-30 16:29 1840次阅读

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划。
    的头像 发表于 08-15 11:49 621次阅读
    EtherCAT运动控制器PT/PVT实现<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>轨迹规划

    esp32s2如何自定义HIDUSB开发?

    请问一下,想自定义HIDUSB开发,对于底层的操作如中断、上位机发送的请求、回复上位机请求等这些底层操作有示例吗?通过ESP-IDF、Arduino或者Rust的方式。
    发表于 06-17 07:18

    一图读懂微电子2023年年度报告

    一图读懂微电子2023年年度报告
    的头像 发表于 05-22 10:30 449次阅读
    一图读懂<b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>2023年年度报告

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1353次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 656次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    微电子B91模组组合板Matter演示固件介绍

    B91模组组合板(TLSR921x Module kit)是微电子专为智能家居设计的子母开发板。本篇文章将重点介绍基于Matter开
    的头像 发表于 04-17 10:08 1067次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>B91模组组合板Matter演示固件介绍

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 995次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 631次阅读

    STM32F401VC USB枚举成自定义HID,为什么每台设备连接到同一台电脑上都要有一个加载驱动的过程?

    我的项目用的是STM32[i]F401VC,USB枚举成自定义HID.生产过程中每台设备都要连接电脑下载数据.现在的问题是每台设备连接到同一
    发表于 04-01 06:17

    微电子产测工具使用—如何增加GPIO测试功能

    微电子的产测工具默认提供了多个产测固件,比如测试射频RF,测试低功耗电流,这些属于前置测试,即测试PCBA硬件是否存在异常。
    的头像 发表于 01-03 09:04 827次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>产测工具使用—如何增加GPIO测试功能

    技术专栏微电子JTAG工具使用教程(二)

    继上一篇为大家介绍了《微电子JTAG工具使用教程(一)》 ,本篇将继续为大家介绍JTAG相关工具命令行的使用和常见问题及解决方法。 1 GDB常用命令的使用 正常debug的时候,可以在
    的头像 发表于 12-27 08:55 1353次阅读
    【<b class='flag-5'>技术</b><b class='flag-5'>专栏</b>】<b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>JTAG工具使用教程(二)

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 914次阅读
    博途<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>库的使用