找回密码
 立即注册
查看: 106|回复: 4

8H8K64U,USB 仿真CDC串口问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-04-11 10:39:10
已绑定手机

14

主题

4

回帖

116

积分

注册会员

积分
116
发表于 2025-3-31 17:00:00 | 显示全部楼层 |阅读模式
8H8K64U 24年的芯片,D版本,USB 仿真CDC串口
IAP_CONTR = 0x60;                //单片机复位后,没有复位USB口动作
请问一下各位大佬是为什么呢

PS:另外还有一个问题,8H8K64U LQFP32的芯片,我用了一些芯片,出现2块单片机有问题:
一片是能下载程序,但不工作。
一片是能工作,但运行时有个功能不正常。(开发说在内存中开了一块区域当做串口缓冲区,这块区域工作不正常)。
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-31 17:03:00 | 显示全部楼层
关于STC8H8K64U芯片的USB仿真CDC串口问题以及LQFP32封装芯片的异常情况,以下是一些专业的分析和建议:

1. USB仿真CDC串口问题
在STC8H8K64U芯片中,USB仿真CDC串口的功能依赖于USB模块的正确初始化和配置。您提到的IAPCONTR = 0x60;语句用于控制单片机的复位行为,但该语句并不会直接复位USB口。USB模块的复位通常需要通过特定的寄存器配置来完成。

可能的原因及解决方案:
USB模块未正确初始化:确保在程序启动时,USB模块已经正确初始化。可以参考STC官方提供的USB初始化代码,确保所有必要的寄存器配置正确。
USB复位问题:如果USB模块未复位,可能会导致通信异常。可以尝试在程序启动时手动复位USB模块,例如通过设置USBCON寄存器中的复位位。
时钟配置问题:USB模块对时钟频率有严格要求,确保系统时钟和USB时钟配置正确。STC8H8K64U的USB模块通常需要48MHz的时钟频率。
固件问题:检查是否有最新的固件或库文件可供使用,有时固件更新可以解决一些已知的问题。

2. LQFP32封装芯片的异常情况
您提到的两块芯片分别出现了不同的异常情况,以下是对这些问题的分析:

芯片1:能下载程序,但不工作
电源问题:检查电源电压是否稳定,确保芯片的供电电压在规定的范围内。
复位电路问题:检查复位电路是否正常工作,确保复位信号在启动时能够正确拉低和释放。
时钟问题:检查外部晶振或内部时钟是否正常工作,确保时钟信号稳定。
程序问题:检查程序是否有逻辑错误,特别是启动代码和初始化部分。

芯片2:能工作,但运行时有个功能不正常
内存问题:如果开发人员在内存中开辟了一块区域作为串口缓冲区,并且该区域工作不正常,可能是内存访问越界或内存初始化问题。建议检查内存分配和访问代码,确保没有越界访问或未初始化的情况。
硬件问题:检查芯片的引脚连接是否正确,特别是与串口相关的引脚。确保没有虚焊或短路现象。
软件问题:检查串口驱动程序和缓冲区管理代码,确保逻辑正确,没有死锁或竞争条件。

总结
对于STC8H8K64U芯片的USB仿真CDC串口问题,建议重点检查USB模块的初始化、复位和时钟配置。对于LQFP32封装芯片的异常情况,建议从电源、复位、时钟、内存管理和程序逻辑等方面进行排查。如果问题依然存在,建议联系STC官方技术支持,获取更详细的帮助和指导。

希望以上分析对您有所帮助。如有进一步的问题,欢迎继续讨论。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2025-3-31 17:55:25 | 显示全部楼层
stc8仿真USB-cdc只能串口仿真。
且切换到非P30/P31串口仿真。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-3-31 22:15:54 | 显示全部楼层
USB仿真占用USB(P30、P31)
CDC就是USB CDC,也占用USB(P30、P31)
USB不能自己仿真自己
不断电复位前,必须关闭USB功能,关闭USB的48M时钟,P30、P31高阻,然后再IAP_CONTR = 0x60,否则复位后又立即运行程序,电脑认为USB没断开
初始化时用memset清空缓冲区,因为SRAM上电是随机数
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2025-4-1 10:26:12 | 显示全部楼层
截图202504011025493771.jpg
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:10 , Processed in 0.119846 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表