对 STC8H8K64U 的USB测试昨天没搞定, 判断可能是供电的问题, 直接用5V不行, 从USB2TTL上采电3.3V时存在一个问题, 就是 D-/D+ 在上电前就已经连接了, 不符合 USB 的正常上电流程, 在 MCU 开始工作前接入 D-/D+, 可能会造成host的请求无法响应.
今天用AMS1117做了一个转接板, 把USB的5V转为3.3V给MCU供电. 现在连上USB接口就能正常识别了.
转接板
一边是 MicroUSB 口, 加 AMS1117 3.3V, 在 VCC In 上是 2.5uF + 10nF, VCC Out 上是 2.5uF + 100uF, 空载时测试电压是 5.1V 和 3.27V
接线
转接板 STC8H8K64U
3.3V -> VCC
D- -> P3.0
D+ -> P3.1
GND -> GND
代码
测试代码下载地址 http://www.stcmcudata.com/STC8F-DATASHEET/STC8H8K64U-DEMO-CODE.ZIP , 使用其中的"39-通过USB发送命令读取ADC测试程序", 这个目录下还有一个上位机测试软件 STC USB-HID Demo.exe
测试
正常编译烧录后, 按上面的接线, 连上PC, P3.2 接地时, Win10 无法正常识别, 所以将 P3.2 悬空
ISP模式
上电后, MCU会先进入 ISP 状态, 如果这时候已经打开了 STC-ISP, 会停留在 ISP 状态
设备管理器
STC-ISP
正常模式
如果没打开 STC-ISP, MCU会继续执行用户代码, 因为烧录了HID演示代码, 会识别到新的HID设备
设备管理器
Bus Hound
上位机测试
Bus Hound 捕获的通信