16076|13

1366

帖子

6

TA的资源

版主

楼主
 

ESP32-S2开发之坑(4)--USB挖坑 [复制链接]

 

tinyusb获取 按以下readme说明进行获取

https://github.com/hathach/tinyusb

esp32s2移植

 tinyusb已经支持esp32s2,主要有设备端hid.msc,cdc。主机端目前并未做支持。

 了解一个开源库,绝多数库都会有debug  log打印,我们需要对齐debug打印,了解下tinyusb的运行情况.

实际调试中,建议配合源码,tinyusb作为小型USB协议栈,我觉得还是可以学习下。

可以看到tusb_common.h中,有对log打印的宏定义,这里0代表不需要打印,1代表出错时候打印,2代表打印debug日志。

  而打印输出函数,可以自定义也可以直接使用C库的Printf,但是前提你需要重定向,这里esp32s2都是printf重定向了串口0,我们这里就不需要自定义了。而官方默认的是1,则是出错的时候才打印,我们这里改为2,全部打印日志。然后进行编译烧写

这样打印的时候就会有出现相关初始化,以及相关枚举过程,对于要深入了解tinyusb库,是有必要开启这个debug来进行跟踪。

最新回复

gtq
经验之谈 受益匪浅 楼主厉害 经验之谈 受益匪浅 楼主厉害   详情 回复 发表于 2024-7-12 11:02
点赞(4) 关注
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 

回复
举报

1366

帖子

6

TA的资源

版主

沙发
 

目前tingusb基本移植好了cdc,msc,hid三个设备到esp32s2上,这里使用的例子是cdc_msc_freertos例子,如下已经宏使能了cdcmsc

 main函数里面首先需要适配初始化板子,这里tinyusb初始化了乐鑫的esp32s2_saola板,而楼主的板子相关外设与乐鑫不同,比如LED所用不同

需要自己在bsp上新建一个port,以便适配调用相关接口。主要是board_init以及board_led_writeboard_button_read。其中board_init里面也初始化了USB,这里乐鑫对于usb外设上的并没有相关文档说明,这里先不细说。Tinyusb也是基于stm32USB外设来猜测esp32s2,具体说明可以参考tinyusbpull

https://github.com/hathach/tinyusb/pull/319

个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

1366

帖子

6

TA的资源

版主

板凳
 

例子在linuxwindow下可用,不过需要注意的点有以下:

       在判断是否串口连接与断开的时候,是以判断DTR的状态作为判断,所以不管是利用别人的串口助手,还是自己做的上位机,在打开串口的时候,需要开启DTR,tinyusb才能以此判断是否连接,关闭的时候可以关闭DTR

Cdc可以自适应波特率相关属性,在这里如果需要自己固定死波特率,可以通过以下进行改变。

  MSC上,也可以在disk文件上改变磁盘名字,以及写入相关文件。但是由于映射的是内部flash,尚未对外部flash进行映射,对于msc这块尚不清楚,楼主需要进一步搜索。

    在这里楼主验证cdc,在收发一个多小时100ms定时没出现问题,目前来说,对于esp32只有两个串口,并且还要有一个串口当debug,如此紧张的串口资源,有cdc进行补充,也是一件好事。

个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 
 

回复

1366

帖子

6

TA的资源

版主

4
 

CDC收发效果:

个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 
 

回复

6040

帖子

205

TA的资源

版主

5
 

不错不错,感谢楼主分享!

 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

6
 

这个要是做成uvc,用处就大了。

 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

7
 
RCSN 发表于 2020-5-17 22:26 例子在linux和window下可用,不过需要注意的点有以下:        在判断是 ...

楼主,MSC映射外部flash的有头绪了没

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 

我弄了一两个星期没搞出来,楼主可以求一份源码学习一下吗?1412134399@qq.com,感激不尽

 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

9
 

感谢楼主,很不错的分享,正好不会,闲暇时来学习一下。

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

10
 

感谢分享,很不错的分享,正想学习,闲暇的时候来看看,学习一下!

 
 
 

回复

186

帖子

0

TA的资源

一粒金砂(高级)

11
 

这个要是做成uvc,用处就大了。

 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

12
 
路过学习一下路过学习一下路过学习一下路过学习一下
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

13
 

IDF用的什么版本,是不是只有4.4可以用tinyusb


 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

14
 

经验之谈 受益匪浅 楼主厉害 经验之谈 受益匪浅 楼主厉害

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表