3638|5

1136

帖子

6

资源

版主

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日志。

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

image-20200517222319-2.png

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

image-20200517222319-3.png

个人签名

加油,一切皆有可能。


回复

1136

帖子

6

资源

版主

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

image-20200517222458-1.png

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

image-20200517222458-2.png

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

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

image-20200517222458-3.png

个人签名

加油,一切皆有可能。


回复

1136

帖子

6

资源

版主

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

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

image-20200517222553-1.png

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

image-20200517222553-2.png

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

image-20200517222553-3.png

image-20200517222553-4.png

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

image-20200517222553-5.png

个人签名

加油,一切皆有可能。


回复

1136

帖子

6

资源

版主

CDC收发效果:

TIM图片20200517222727.gif

个人签名

加油,一切皆有可能。


回复

5920

帖子

209

资源

版主

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

个人签名

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,上班摸鱼场,释放压力好地方!商家勿入!加群暗号:喵


回复

7

帖子

0

资源

一粒金砂(初级)

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


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

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

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

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

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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