对 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 + 100nF, 空载时测试电压是 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

测试

2022-02-07 更新: 为避免之前的错误误导, 直接替换为正确的操作

正常编译烧录后, 按上面的接线, 连上PC. 连线时VCC和GND与转接板直接连线, 长度要一致, 且不能太长, 控制在20cm以内. 之前出现的问题, 是因为转接板3.3V输出先通过20cm线接了一个排针, 再分别通过20cm线接MCU的VCC和P3.2

上电后, 如果P3.2悬空, STC8H8K64U 的USB状态是不确定的, 有可能进入 ISP 模式, 也可能进入正常模式(运行用户代码)

  • 是否进入ISP模式与是否打开了 STC-ISP 没有关系, 开不开 STC-ISP, 都可能进入 ISP 模式.
  • 因为转接卡有电容, 能保持几秒到十几秒的电量
    • 如果当前是ISP模式, 断开再接入, 不管快速还是慢速, 都很可能还保持在ISP模式
    • 如果当前是正常模式, 断开再接入也大概率保持正常模式
  • 如果P3.2通过200R电阻接地, 会进入 ISP 模式
  • 如果P3.2通过3KR电阻接VCC, 会进入正常模式

ISP模式

ISP模式和正常模式在设备管理器看到的设备是一样的, 要在属性里查看 VIP PID来判断. ISP模式下对应的是 34BF,1001

设备管理器

STC-ISP, 在这个模式下, 如果打开 STC-ISP, 就能看到对应的设备

正常模式

MCU正常模式下执行的是烧录的用户代码, 这个测试中因为烧录了HID演示代码, 会识别到新的HID设备.

设备管理器

Bus Hound

上位机测试

Bus Hound 捕获的通信

结束

以上检测了 STC8H8K64U 上的 USB 基础功能, 后续可能会继续做一些测试. 连线上存在的问题都已经解决并更新.

STC8H8K64U 的 USB 功能测试(续)的更多相关文章

  1. STC8H开发(九): STC8H8K64U模拟USB HID外设

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  2. STC8H开发(十): SPI驱动Nokia5110 LCD(PCD8544)

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  3. STC8H开发(十一): GPIO单线驱动多个DS18B20数字温度计

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  4. STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  5. STC8H开发(十三): I2C驱动DS3231高精度实时时钟芯片

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  6. STC8H开发(十四): I2C驱动RX8025T高精度实时时钟芯片

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  7. STC8H开发(十五): GPIO驱动Ci24R1无线模块

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  8. STC8H开发(十六): GPIO驱动XL2400无线模块

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  9. CI-持续集成(1)-软件工业“流水线”概述

    CI-持续集成(1)-软件工业“流水线”概述 1   概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...

  10. USB封包格式

    1.起始(SOP)封包 根集线器会在每1 ms时,送出SOF封包.这介于2个SOF封包之间的时间,即称为帧(frame).SOF封包虽是属于令牌封包的一种,但却具有独自的PID形态名称SOF.通常目标 ...

随机推荐

  1. DC - 设计和工艺数据

    环境建立命令与变量 综合主要的三部分:RTL\目标工艺库\约束文件 DC综合过程中timing > area,在时序满足的条件下进行面积优化 RTL一般会映射为standcell(与非门),需要 ...

  2. 如何使用Oracle Enterprise Manager Database Express连接到PDB数据库

    1.问题 1.1重复弹出登录框,无法登陆 关闭登录框,显示invalid container name 1.2 重启后PDB数据库处于mounted挂载状态,未打开导致使用 Enterprise 登陆 ...

  3. Kubernerts - 概览

    1. Kubernerts K8s,是用于自动部署.扩容和管理容器化应用程序的开源系统 1.1 特性 自动化上线与回滚 分步骤针对应用或者配置更改上线,监控应用的运行状态同时不会终止所有实例,若出现问 ...

  4. Shell-循环-for-while

  5. 【Kafka系列】(一)Kafka入门

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 系列文章地址 Kafka是什么? 一句话概括:Apache K ...

  6. [转帖]是的你没看错,HTTP3来了

    https://www.jianshu.com/p/288ce6a8ab88 简介 很多小伙伴可能还沉浸在HTTP1.1的世界无法自拔,但是时代的洪流已经带领我们来到了HTTP3的世界了.是的,你在桥 ...

  7. [转帖]/etc/profile 和 /etc/profile.d/ 的区别

    https://my.oschina.net/calmsnow/blog/2989570   /etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面,/etc ...

  8. [转帖]oracle如何删除datafile,误删除Oracle datafile 无法打开数据库

    1.在Oracle open方式下,直接从OS上删除了datafile文件. rm /u02/rmants.dbf 2.数据库关闭后,无法打开数据库,只能到mount状态. SQL> alter ...

  9. nginx 企业版与开源版本的区别

  10. 【JS 逆向百例】WebSocket 协议爬虫,智慧树扫码登录案例分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...