找回密码
 立即注册
查看: 266|回复: 14

调用usb_init();函数后就死机问题

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-3-18 20:53:55 | 显示全部楼层 |阅读模式
程序里配置内部PLL时钟作为主时钟后,调用了usb_init();函数后就死机了??时钟配置流程如下
时钟配置输入24M,PLL输入2分频为12MHz,PLL后12*12=144MHz,选择主时钟为PLL,CLKDIV为4分频,得到SysClock为36MHz
USB时钟使用了内部的IRC48MHz。
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-18 20:58:00 | 显示全部楼层
在您描述的场景中,调用usbinit();函数后出现死机问题,可能与时钟配置或USB时钟源的稳定性有关。以下是一些可能的原因及建议的排查步骤:<br><br>1. 时钟配置冲突:确保PLL和USB时钟的配置没有冲突。PLL输出为144MHz,经过4分频后系统时钟为36MHz,而USB时钟使用的是内部IRC48MHz。请检查这两个时钟是否在硬件上能够共存,且不会相互干扰。<br><br>2. USB时钟源稳定性:内部IRC48MHz时钟的精度和稳定性可能不足,导致USB初始化失败。建议检查IRC48MHz的校准和稳定性,或考虑使用外部晶振作为USB时钟源。<br><br>3. 时钟分频设置:确认CLKDIV分频设置是否正确,确保系统时钟和USB时钟的配置符合硬件要求。错误的时钟分频可能导致系统无法正常运行。<br><br>4. 电源和复位:检查电源电压是否稳定,复位电路是否正常工作。不稳定的电源或复位信号可能导致系统在初始化过程中死机。<br><br>5. 调试信息:通过调试器或日志输出,查看死机前的寄存器状态和程序执行路径,以便更精确地定位问题。<br><br>建议逐一排查上述可能的原因,确保时钟配置和硬件环境符合设计要求。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

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

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2025-3-18 21:03:06 | 显示全部楼层
你可以把你的程序晒出来让大家看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-3-18 21:03:10 | 显示全部楼层
国芯人*** 发表于 2025-3-18 20:58
在您描述的场景中,调用usbinit();函数后出现死机问题,可能与时钟配置或USB时钟源的稳定性有关。以下是一 ...

AI8051U单片机,内部IRC48M和PLL可以同时开启嘛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-3-18 21:06:25 | 显示全部楼层
jw*** 发表于 2025-3-18 21:03
你可以把你的程序晒出来让大家看看

//IRCBAND  
//选择USB时钟为IRC48M   
USBCKS = 1;
USBCKS2 = 0;
IRC48MCR = 0x80;
while (!(IRC48MCR & 1)); //等待时钟稳定

CLKSEL |= 0x80;
USBCLK &= 0x60;
USBCLK |= 0x20;
USBCLK |= 0x80;
delay();
CLKDIV = 0x04;
CLKSEL &= 0xF0;
CLKSEL |= 0x04;
usb_init();

点评

USBCLK &= 0x60; USBCLK |= 0x20; 这两句也有问题 你没配置 IRCBAND.SEL [attachimg]88510[/attachimg] [attachimg]88511[/attachimg] 默认6M的话,二分频变3M了,达不到输入PLL要求的8M~16M 参考: CLKDIV =  详情 回复 发表于 2025-3-19 08:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2025-3-18 21:15:41 | 显示全部楼层
完整工程发一下,哪个版本的usb库?
自己画的板子还是官方实验板?自己画的原理图也可以贴一下
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-3-18 21:42:52 | 显示全部楼层
erci*** 发表于 2025-3-18 21:15
完整工程发一下,哪个版本的usb库?
自己画的板子还是官方实验板?自己画的原理图也可以贴一下
...

综合程序.zip (1.81 MB, 下载次数: 2)

就是用的官网的库函数模版。板子是擎天柱的最小系统板。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-3-18 21:48:11 | 显示全部楼层
hhhh*** 发表于 2025-3-18 21:42
就是用的官网的库函数模版。板子是擎天柱的最小系统板。

综合程序.zip (1.82 MB, 下载次数: 6)


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2025-3-18 22:03:54 | 显示全部楼层


卡死和usb库内部也操作了寄存器有关
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2025-3-18 22:21:17 | 显示全部楼层
推荐使用这个小工具配置时钟树

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11513
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:32 , Processed in 0.171606 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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