CH559 HOST 模式 操作USB标签打印机问题

通过CH559连接USB打印机,如果打印机带有串口,通过USB口操作标签打印机,正常;如果打印机本身不带串口只有USB口,无法操作标签打印机通过调试发现

UINT8   USBHostTransact( UINT8 endp_pid, UINT8 tog, UINT16 timeout )

里面

            if ( U_TOG_OK )

            {

                return( ERR_SUCCESS );

            }

U_TOG_OK 的问题



sbit U_TOG_OK      = USB_INT_FG^6; // ReadOnly: indicate current USB transfer toggle is OK


为什么559 只能操作带有串口的usb标签打印机  ,而只有USB口的标签打印机却不行

这个toggle是USB数据包的一个简单的校验机制,在物理层中是按照一定的逻辑进行DATA0和DATA1的交换,这个是和传输过程紧密相关的。

打印机带串口和不带串口,那显然的就是不同的打印机,可能在USB通讯的整个过程中会有不同,这时候可以对USB底层进行抓包,看一下DATAX到底是多少,定位一下是设备传输错误还是芯片判断错误。还有我们在初始化USB的时候通常会打开AUTO_TOGGLE同步标志自动翻转功能,检查一下发送接收控制寄存器的自动翻转功能是否打开。


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