明 CH375 未工作或者未收到 CMD_SET_USB_MODE 命令,只有模 式 1 和 2 会导致 UD+上拉到 3V 电压以上。 * 连接到计算机,无法安装驱动,提示未知设备 1、 CH375 的 GND 以及单片机的 GND 必须与 USB 的 GND 可靠地连接, USB 的
VBUS/+5V 可以不连接。 2、USB 的 D+和 D-信号线接反,导致通讯失败,USB 线 4 个,分别是+5V, D-,D+,GND,顺序不能错。 3、USB 信号线必须用标准的 USB 线,不能用普通排线等代替,D+和 D-布线 要平行,附近铺地减少干扰。 4、由于 CH37X 内置了 USB 电阻,所以外部电路中 D+和 D-不需要串电阻, 如果一定要串也不能大于 5 欧姆。 5、如果是 5V 工作电压,CH37X 的 V3 引脚必须与 VCC 断开,如果是 3.3V 工作电压,那么 V3 应该连接 VCC。 6、建议调试初期不要设置 USB-ID,也就是单片机不要执行 CMD_SET_USB_ID 命令,等调通后再尝试修改。 如果单片机执行 CMD_SET_USB_ID 命令,那么必须在 CMD_SET_USB_MODE 之前执行。如果单片机执行 CMD_SET_USB_ID 命令修 改了 USB-ID,那么必须同步修改驱动程序 INF 中的 ID 才能安装驱动。 * 计算机成功安装驱动程序,但是无法进行任何 USB 通讯 通常是单片机未收到或者未处理 USB 中断,驱动的安装与初始化是由 CH372 和 CH375 内置 USB 固件实现的,不需要单片机的任何干预,而 USB 数据通讯 需要由单片机收到 USB 中断并由程序实现 * 在与计算机连接时,为什么不能对单片机进行程序单步调试 标准的 USB 传输都是时间限制,单步调试容易导致 USB 超时,尤其在外置固
件模式下,更容易超时。 解决方法是, CH375 作为 USB-HOST, 用 代替计算机单步调试您的 USB 设备, CH375 可以不超时。 * 如何用一个 CH375 实现 USB-HOST 和 USB-DEVICE CH375 的串口连接只支持 USB-HOST,所以必须通过 8 位并口与单片机连接。 由于 CH375 自身没有主导权,只能在单片机的控制下,切换为主机或者设备模 式,所以单片机应该决定是主机还是设备,具体可以参考 USB 电路及 PCB
设计 注意事项 README 中的说明,在 CH375 评估板资料中,EXAM0 是主从切换应 用的例子。 * 关于应用层 USB 中断服务的特点 CH372 的动态锭接库 DLL 提供了伪中断服务,实际的中断服务仍然是在驱动
程序库完成的,只是在完成后向 DLL 发了个通知,由 DLL 再调用伪中断服务子 程序。由于涉及到
系统层与应用层切换以及线程切换,所以中断频率不能太高, 如果太高,虽然驱动程序能够收到中断,但是等到通知到应用层,再调用客户的 伪中断服务程序,最慢可能需要 10 毫秒,从而在应用层丢失中断。自己写驱动 可以提高响应速度。 * 关于 USB 传输速度 CH372/CH375 与计算机通讯时,默认的 CH37X 驱动程序和 DLL 提供的 API 是同步 I/O 而非异步 I/O, 所以 API 返回就说明该 API 执行完成, 由于 WINDOWS 要提前安排 USB 帧调度,所以两次 USB 传输之间的间隔总是会大于 1mS,例如 传两个 64 字节的包可能需要 2mS,而传一个 256 字节的包可能只需要 1mS。这 种情况可以通过修改驱动程序在驱动程序层传输数据或者用异步 I/O 解决, 注意 异步 I/O 在 API 返回时不代表该 API 完成。 计算机单次收发的数据块越大平均速度越快(单次最大 4KB),CH372/CH375 实测传输速度最高为 400K 字节每秒(在 10 秒内连续测试的平均值),但是实 际应用考虑到留些余量,考虑到应用程序在收发数据之外还要分析处理数据,通 常应该按 200K 计算。USB 作为串行总线,采用包传输的方法,实时性不如 PCI 总线,PCI 能达到微秒级,而 USB 的响应时间只有几百微秒到几毫秒,在驱动 程序中实现的性能要好些。 * 如何做 WINDOWS 驱动程序,WINDOWS DDK 如何获得 我们的驱动程序全部使用 WINDOWS 98/2000/XP DDK 编译,同时支持 WINDOWS 98/ME/2000/XP。DDK 可以从微软官方网站
免费下载(订购芯片时 如果需要我们也可以提供刻录光盘),除此之外,只需 VC 5.0 或者 VC