CH573使用TMOS執(zhí)行USB HOST循環(huán),需要設(shè)置多少周期不會(huì)卡頓
例程USB HOST調(diào)用周期是全速,使用TMOS時(shí)需要最慢多少周期,過快會(huì)不會(huì)影響無(wú)線功能
CH573使用TMOS執(zhí)行USB HOST循環(huán),需要設(shè)置多少周期不會(huì)卡頓
例程USB HOST調(diào)用周期是全速,使用TMOS時(shí)需要最慢多少周期,過快會(huì)不會(huì)影響無(wú)線功能
您好,根據(jù)BLE的連接間隔,建議應(yīng)用層的TMOS邏輯加起來(lái),不要超過連接間隔的50%。
跑USB主機(jī)時(shí),最后一個(gè)參數(shù)是配置20us為單位的重試超時(shí)時(shí)間,注意不要給太大,可能會(huì)影響B(tài)LE的運(yùn)行。
USB鍵鼠例程中SETorOFFNumLock函數(shù)是怎么使用的,只看到有數(shù)據(jù)操作,怎么判斷并點(diǎn)亮Cabs Lock、Num Lock的LED燈的
還有上面說(shuō)的配置20us單位超時(shí)重試,是指USB輪詢周期最快20us嗎,tmos_start_task函數(shù)最后一個(gè)參數(shù)是指下一次運(yùn)行該任務(wù)的時(shí)間吧,最低1ms對(duì)不對(duì),現(xiàn)在用了10的周期,偶爾會(huì)卡一下USB掉線
現(xiàn)在打印15,16,20錯(cuò)誤碼了,不知道是什么原因
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
查看錯(cuò)誤碼的時(shí)候發(fā)現(xiàn)了初始化的時(shí)候庫(kù)函數(shù)也有不少delay,這么看是不是不適合放到TMOS執(zhí)行,最低也有1mS的執(zhí)行時(shí)間,遠(yuǎn)超過TMOS最小周期了,是不是會(huì)影響B(tài)LE運(yùn)行
是的,上圖里占用時(shí)間太長(zhǎng)了,考慮在BLE已連接的情況下枚舉設(shè)備,要拆分枚舉流程和借助TMOS定時(shí)來(lái)實(shí)現(xiàn)了。
錯(cuò)誤代碼見下。
關(guān)于鍵盤指示燈的問題,USB主機(jī)會(huì)分析鍵盤上傳的鍵值,8字節(jié)報(bào)表中,如果是數(shù)組下標(biāo)是[2]的字節(jié)為0x39(大小寫切換鍵)或者0x53(數(shù)字小鍵盤使能鍵),其他字節(jié)為全0的報(bào)表,則表示鍵盤上按下了需要亮燈的鍵;USB主機(jī)需要走端點(diǎn)0下發(fā)set report命令,再走端點(diǎn)0下發(fā)一個(gè)字節(jié),按位表示鍵盤燈光是否點(diǎn)亮的OUT包。
這套USB解析流程太復(fù)雜了,拆分的時(shí)候可能還得添加很多定時(shí)變量和狀態(tài)標(biāo)記,還需要按需清除什么的,估計(jì)自己改不好,官方有考慮適配在TMOS下運(yùn)行嘛,有的話到時(shí)候通知我一下,太難了