CH573使用TMOS执行USB HOST循环,需要设置多少周期不会卡顿

CH573使用TMOS执行USB HOST循环,需要设置多少周期不会卡顿

例程USB HOST调用周期是全速,使用TMOS时需要最慢多少周期,过快会不会影响无线功能

您好,根据BLE的连接间隔,建议应用层的TMOS逻辑加起来,不要超过连接间隔的50%。

跑USB主机时,最后一个参数是配置20us为单位的重试超时时间,注意不要给太大,可能会影响BLE的运行。


@TECH_JW

USB键鼠例程中SETorOFFNumLock函数是怎么使用的,只看到有数据操作,怎么判断并点亮Cabs Lock、Num Lock的LED灯的


还有上面说的配置20us单位超时重试,是指USB轮询周期最快20us吗,tmos_start_task函数最后一个参数是指下一次运行该任务的时间吧,最低1ms对不对,现在用了10的周期,偶尔会卡一下USB掉线

image.png


现在打印15,16,20错误码了,不知道是什么原因

USB dev in

Reset host port

GetDevDescr: InitRootDev Err = 20

EnumAllRootDev err = 20

USB dev in

Reset host port

Disable host port because of disconnect

EnumAllRootDev err = 16

USB dev in

Reset host port

GetDevDescr: InitRootDev Err = 20

EnumAllRootDev err = 20

USB dev out

USB dev in

Reset host port

GetDevDescr: InitRootDev Err = 15

EnumAllRootDev err = 15

USB dev out



查看错误码的时候发现了初始化的时候库函数也有不少delay,这么看是不是不适合放到TMOS执行,最低也有1mS的执行时间,远超过TMOS最小周期了,是不是会影响BLE运行

image.png


是的,上图里占用时间太长了,考虑在BLE已连接的情况下枚举设备,要拆分枚举流程和借助TMOS定时来实现了。

错误代码见下。

image.png

关于键盘指示灯的问题,USB主机会分析键盘上传的键值,8字节报表中,如果是数组下标是[2]的字节为0x39(大小写切换键)或者0x53(数字小键盘使能键),其他字节为全0的报表,则表示键盘上按下了需要亮灯的键;USB主机需要走端点0下发set report命令,再走端点0下发一个字节,按位表示键盘灯光是否点亮的OUT包。


这套USB解析流程太复杂了,拆分的时候可能还得添加很多定时变量和状态标记,还需要按需清除什么的,估计自己改不好,官方有考虑适配在TMOS下运行嘛,有的话到时候通知我一下,太难了


只有登录才能回复,可以选择微信账号登录