社区导航

 

搜索
查看: 760|回复: 4

[原创] ESP32-S2开发之坑(4)--USB挖坑

[复制链接]

1021

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

发表于 2020-5-17 22:24 | 显示全部楼层 |阅读模式

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



回复

使用道具 举报

1021

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2020-5-17 22:25 | 显示全部楼层

目前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



回复

使用道具 举报

1021

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2020-5-17 22:26 | 显示全部楼层

例子在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



回复

使用道具 举报

1021

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2020-5-17 22:27 | 显示全部楼层

CDC收发效果:

TIM图片20200517222727.gif



回复

使用道具 举报

5784

TA的帖子

209

TA的资源

版主

Rank: 6Rank: 6

发表于 2020-5-18 08:27 | 显示全部楼层

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

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



回复

使用道具 举报

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

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-29 12:24 , Processed in 0.194789 second(s), 25 queries , Gzip On, MemCache On.

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