0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

hpm5361在rtthread轻松搞起USB转换器

RTThread物联网操作系统 来源:未知 2023-11-21 20:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、概述

在半个月前,先楫发布了rtthread bsp 1.3.0版本,该版本其中一个功能就是加入了hpm5300的支持,对应的板型是hpm5300evk,对应的芯片型号是hpm5361。从先楫官方的数据手册可知,除了丰富的电机外设,也有对应的丰富通讯外设接口。这里只截图了通讯接口部分,其他功能可以详情看对应的数据手册。

wKgaomVcoaCANagWAACdNBh4Q6g723.png

对应的rtthread设备驱动框架中,先楫也做好了不少外设,其中包括了gpio, uart, spi, timer, i2c, usb, canfd等。

wKgaomVcoaCAP5riAABxEq14BJ0474.png

本来主要着重于利用rtthread的芯片设备驱动,制作一个USB转换器,USB CDC转换SPI、IIC、CAN这三个设备,方便用户可以简单验证外设功能以及调试需要。

本文的code例子,找到usb_converter链接:

https://gitee.com/RCSN/hpmicro_rtthread_demo

二、开发流程

(一)链接

1、rtthread的bsp包安装教程详看先楫官方公众号发布的文章:【重磅来袭】RT-Thread BSP v1.3.0 发布

2、既然是USB转换器,那就需要一个PC端的上位机进行数据简易转换收发,主要实现了USB转SPI/IIC/CAN,使用QT开发,code仓库也提供代码盒可执行文件。

wKgaomVcoaCAeVKAAABjAB5gZTM403.png

(二)新建工程

这里使用模板工程进行新建,调试器选择FT2232。

wKgaomVcoaCAJckMAACRpJInkEU656.png

(三)外设驱动加入

这里使用到了USB、SPI、I2C、CAN,故在硬件的芯片设备驱动中需要选择以下:

wKgaomVcoaGAHGpqAADYzLqzS3U799.png

组件中,确保CAN、I2C、SPI的设备驱动程序对应使能

wKgaomVcoaGATz7LAAFs3NV1Rec303.png

(四)添加软件包(cherryusb加入和配置)

在软件包中搜索cherryusb,进行添加。

wKgaomVcoaGAABL4AAE386QtC4c708.png

点击右键选择配置项

wKgaomVcoaGAEF4DAAAi9Db4OZM953.png

分别使能USB device模式,速度选择HS,USB IP选择HPM,并使能usb cdc设备类型。

wKgaomVcoaKAeK5AAAFoc7Mzq5Y186.png

(五)加入应用

1、以上配置完成后,进行编译下,发现会报错提示没有usb_config.h这个头文件

wKgaomVcoaSAGFjoAAFHmjX_mvo624.png

该头文件主要是需要用户自行配置USB相关参数,cherryusb也提供了该模板文件,在仓库的主目录中cherryusb_config_template.h

wKgaomVcoaSAUgBKAAB3w0KtyGI799.png

2、由此我们可以在工程下右键新建一个文件夹,可叫usb2xxx,里面再新建一个inc和src文件夹,以及再新建个SConscript文件

wKgaomVcoaSAS54TAABv5I26VVQ235.png

wKgaomVcoaWAUp23AAAacJ5Ickc441.png

SConscript文件中写入添加Inc包含,以及src下的所有文件加入。

wKgaomVcoaWAC3m6AAFBGf46vjE981.png

cherryusb_config_template.h改名为usb_config.h,并放在usb2xxx的inc中

需要注意配置的是,USB的printf和malloc free需要切换为rtthread的对应API

wKgaomVcoaWAMbODAACBY2zPh9A128.png

先楫有自身的usb vid参数,可以在config中加入。

wKgaomVcoaaAJ37ZAABfUdfJVMw462.png

3、USB打开与关闭设备操作流程

这里以SPI设备作为例子

USB tools的设备打开和关闭操作主要通过转换cdc的配置参数进行,比如设置波特率、parity和stop位来表示SPI的数据模式和传输模式。在QT的源码中可以看到:

wKgaomVcoaeAY1DUAAScsB7XgIA902.png

下位机中, cherryusb的串口配置同样提供了回调 usbd_cdc_acm_set_line_coding这个API,我们需要把对应的串口配置保存起来,在一个线程里面进行处理判断USB设备的打开和关闭。

wKgaomVcoaeAOHeJAAHZw2AFBBA062.png

这些串口参数根据上位机进行解析判断打开或者关闭的是哪个设备,比如SPI。

wKgaomVcoamADAF0AAUj_7k63b8538.png

验证打开下SPI。

wKgaomVcoamAYk0-AAE-8JZLTWE307.png

通过msh打印可知道,下位机解析设备完成,同样I2C和CAN也是如此

wKgaomVcoamALM3pAAA5rq8jHD8612.png

4、外设收发与初始化

在设备框架中,rtthread对于设备的操作无非就是open, close, config, write, read等操作,同样先楫也对应做好了适配

(1)SPI

在rtthread官方文档中

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/spi/spi

配置SPI设备使用的是rt_spi_configure这个API

wKgaomVcoamAJkR2AAC9FDQZ2es849.png

对于config参数如下解释

wKgaomVcoamAGjs-AABbKHL54eU997.png

如此一来可以封装如下:

wKgaomVcoaqANo3IAAQrJQ81oHw174.png

对于SPI的收发,rtthread同样也提供了对应接口

wKgaomVcoaqARKPDAAEPE2F-V00484.png

同样进行封装

wKgaomVcoaqAH7omAAByixbbXTA772.png

(2)I2C

在rtthread官方文档中

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c

对于I2C的数据收发,提供了rt_i2c_master_send和rt_i2c_master_recv两个API,以此可以进行封装

wKgaomVcoaqAcT_RAAEdRTmCnAs941.png

(3)CAN

同样rtthread也有对应的文档说明

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/can/can

先楫在适配CAN设备的时候,支持了硬件滤波组

wKgaomVcoaqATzpzAAGfuKL0lSM950.png

在接收上,可以设置接收回调函数,该函数可以发送一个事件或者信号量通知CAN数据处理线程有数据到达,可以进行接收。

wKgaomVcoaqAIEg3AADF9jUT_lg780.png

wKgaomVcoauAbuEPAAGtLzCGTaA524.png

5、USB数据转换

通过以上的外设数据收发API封装,可以在USB的接收中,也类似做个回调,发送信号量通知处理

wKgaomVcoauAMOptAATp8zXHzxU013.png

三、验证

在I2C中,另外一块HPM5300EVK烧录hpm_sdk的从机例子,读取地址为0x16,读取8字节,接收消息中可以显示到

wKgaomVcoauAbGyHAAFzSPl-Hac104.png

在SPI中,另外一块HPM5300EVK烧录hpm_sdk的从机例子,进行数据收发,USB转换器可以正常显示收发

wKgaomVcoauAA-TsAAKxgbwGZkY385.png

在CAN中,使用CAN盒进行收发,也可正常显示收发。

wKgaomVcoauAChT8AAKNE8zFbGU721.png

四、结论

1、先楫对接rtthread的设备驱动丰富,基本的通讯外设都可以使用rtthread的外设设备框架,保证项目的无缝切换。

2、使用rtthread的设备驱动框架,可以无需太多理解底层,只需关注应用开发,实现快速开发。

3、rtthread的文档相对丰富,从快速上手到内核、设备驱动、组件、软件包等都有对应的说明。

链接:https://www.rt-thread.org/document/site/#/

———————End——————

新生态,创未来 | 2023RT-Thread 开发者大会开启报名

邀请你参加 2023 RT-Thread 开发者大会的大理由

1、刷新RT-Thread最新技术动态和产业服务能力

2、聆听行业大咖分享,洞察产业趋势

3、丰富的技术和产品展示,前沿技术发展和应用

4、绝佳的实践机会:AIOT、MPU、RISC-V...

5、精美伴手礼人手一份开发板盲盒和免费午餐

6、黑科技满点~滴水湖地铁口安排无人车接送至会场

立刻扫码报名吧

wKgaomVcoauAXb2PAAAGEVCsn_o382.png

点击阅读原文报名


原文标题:hpm5361在rtthread轻松搞起USB转换器

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。


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

    关注

    32

    文章

    1541

    浏览量

    44289

原文标题:hpm5361在rtthread轻松搞起USB转换器

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    422/BISS/SSI转485/232模拟防真信号转换器

    信号转换器
    IBF贝福
    发布于 :2025年12月06日 15:22:38

    意法半导体50W GaN反激式转换器简化应用设计

    ‍‍‍‍‍‍‍‍意法半导体推出一系列GaN反激式转换器,帮助开发者轻松研发和生产体积紧凑的高能效USB-PD充电器、快充和辅助电源。新系列转换器
    的头像 发表于 11-24 10:03 218次阅读

    测量DC/DC转换器输入端的传导EMI

    如果DC/DC转换器供电时产生噪声,是不太理想的。但噪声多大算大,我们又如何测量?与AC/DC转换器不同,现在还没有针对DC/DC转换器可接受噪声水平或测量方式的法定标准。而且,噪声
    的头像 发表于 10-18 09:24 2445次阅读
    测量DC/DC<b class='flag-5'>转换器</b>输入端的传导EMI

    CherryUSB和RTThread自带的USB如何合理使用?

    RTThread自带了很多的USB的功能,但是我在想如果使用CherryUSB是否比使用 自带的更好。 所以我的操作一开始是这样的 1、RTThread使能自带的USB,使能了大容量设
    发表于 10-13 07:52

    Texas Instruments TPS56837H 8 A同步降压转换器数据手册

    Texas Instruments TPS56837H 8A同步降压转换器是一款易于使用的高效降压转换器,具有4.5V至28V的宽输入电压范围。4V至22V的输出电压范围内,该器件支持高达8A
    的头像 发表于 08-03 16:49 926次阅读
    Texas Instruments TPS56837H 8 A同步降压<b class='flag-5'>转换器</b>数据手册

    工业级USB转RS-485/422转换器DAM-3238的功能特性与应用解析

    阿尔泰科技DAM-3238是一款通用的USB转8路隔离RS-485/422转换器,1U机架式结构。
    的头像 发表于 07-07 13:59 431次阅读
    工业级<b class='flag-5'>USB</b>转RS-485/422<b class='flag-5'>转换器</b>DAM-3238的功能特性与应用解析

    环网式CANFD转光纤转换器配置流程#三格电子

    光纤转换器
    三格电子科技
    发布于 :2025年07月03日 14:23:30

    USB协议转换器USB转TTL/232/485,光电隔离

    USB协议转换器是一种将USB接口转换为其他通信协议接口的硬件设备,主要用于解决不同接口设备之间的兼容性问题,实现数据通信或设备控制。 一、产品特点
    的头像 发表于 05-29 14:59 1162次阅读

    如何使用 miniProg4 作为 USB-I2C 转换器

    我想用 miniProg4 作为 USB-I2C 转换器。 但是我找不到一个例子(最好是 Python 中)。 有人能引导我找到正确的资源吗?
    发表于 05-28 07:56

    USB转485/422转换器拆解

    前两天群里的好大哥给我寄了两个他设计的USB转485/422转换器,制作的初衷也很简单,就是消耗一下他手头的物料,设计的关键就是电子丐帮,面向库存设计,探索低成本!在这里先感谢胡博设计的转换器
    的头像 发表于 04-10 10:33 2431次阅读
    <b class='flag-5'>USB</b>转485/422<b class='flag-5'>转换器</b>拆解

    离线烧录来啦!HPM OBOX发布

    亲爱的伙伴们,感谢大家的耐心等待!HPMOBOX离线烧录正式发布啦!量产烧录终于可以摆脱上位机的束缚!离线OBOX在手,量产轻松搞定!HPMOBOX是先楫半导体推出的,基于HPM5361MCU开发
    的头像 发表于 02-08 13:38 1273次阅读
    离线烧录<b class='flag-5'>器</b>来啦!<b class='flag-5'>HPM</b> OBOX发布

    RS232接口与USB转换器使用指南

    RS232接口与USB转换器使用指南主要包括以下几个步骤和注意事项: 一、转换器选择与购买 品牌与质量 :选择知名品牌的USB-RS232串口转换
    的头像 发表于 12-18 17:58 5846次阅读

    USB ACDC转换器使用指南

    USB ACDC转换器是一种将交流电(AC)转换为直流电(DC)的设备,广泛应用于笔记本电脑、手机、平板电脑等电子设备的充电。本文将详细介绍USB ACDC
    的头像 发表于 12-09 10:55 3000次阅读

    不同类型ACDC转换器优缺点 ACDC转换器负载能力分析

    ACDC转换器是将交流电(AC)转换为直流电(DC)的设备,电力电子领域具有广泛的应用。以下是不同类型ACDC转换器的优缺点以及ACDC转换器
    的头像 发表于 12-09 10:53 4294次阅读

    ACDC转换器应用领域 ACDC转换器如何工作

    的直流电。 计算机和通信设备 计算机、手机、路由等通信设备都需要直流电源来运行。ACDC转换器将交流电源转换为直流电源,为这些设备提供稳定的电力。 工业自动化 工业自动化领域,AC
    的头像 发表于 12-09 10:43 3440次阅读