找回密码
 立即注册
查看: 1180|回复: 12

请教一下AI8051U的外部32.768晶振问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-29 16:00:02

14

主题

98

回帖

636

积分

高级会员

积分
636
发表于 2024-10-15 15:54:30 | 显示全部楼层 |阅读模式
新打的一块测试板,用的是AI8051U芯片,QFP48脚封装,外部接的是32.768K的晶振,负载电容20P,程序是按照官方的例程来写的,程序中只写了一个串口打印输出监测程序,上电后无反应,如果用示波器去测量晶振脚,波形是稳定的32.768,此时又有输出,但是输出是乱码,如果用默认的时钟,是能够正常输出串口信息的,这个会是哪里的问题?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:474
  • 最近打卡:2025-07-01 00:17:28
已绑定手机

38

主题

2251

回帖

2801

积分

荣誉版主

积分
2801
发表于 2024-10-15 16:00:35 | 显示全部楼层
只用32.768时钟的时候,需要按照这个时钟作为时基来配置串口波特率
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-07-02 00:29:00

22

主题

282

回帖

1161

积分

金牌会员

积分
1161
发表于 2024-10-15 16:38:43 来自手机 | 显示全部楼层
波特率计算错了
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-29 16:00:02

14

主题

98

回帖

636

积分

高级会员

积分
636
发表于 2024-10-15 16:41:02 | 显示全部楼层
邮*** 发表于 2024-10-15 16:38
波特率计算错了

不是的,就算波特率错了,肯定也是输出错的,可是却没有输出
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:483
  • 最近打卡:2025-07-01 00:06:00
已绑定手机

81

主题

5249

回帖

9391

积分

超级版主

DebugLab

积分
9391
发表于 2024-10-15 16:46:53 | 显示全部楼层
截图202410151646268712.jpg
截图202410151646473361.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-07-02 02:44:02
已绑定手机

17

主题

713

回帖

1403

积分

金牌会员

积分
1403
发表于 2024-10-15 16:51:11 | 显示全部楼层
有可能晶振没启动成功,接上示波器晶振就启动了,可以换换电容试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-07-02 02:44:02
已绑定手机

17

主题

713

回帖

1403

积分

金牌会员

积分
1403
发表于 2024-10-15 16:52:00 | 显示全部楼层
仔细看看晶振的数据手册,匹配多大的负载电容
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-29 16:00:02

14

主题

98

回帖

636

积分

高级会员

积分
636
发表于 2024-10-15 18:25:07 | 显示全部楼层


/*
设置系统工作频率为40.0900M,
CREHF设置为0,CRECNT设置为:(16*40090000)/32768=19575.19,取值为19575(4C770H)
即CRECNTH设置为4CH,CRECNTL设置为77H,CRERSE设置为:19575*0.5%=98(62H)
*/

        X32KCR  = 0xc0;                     //启动外部32.768K晶振
        while(!(X32KCR&0x01));
        IRCBAND = 0x04;//选择内部高速HIRC频段为44M段
        CLKSEL  = 0x40;//选择内部高速HIRC为系统时钟源 P216
        CRECNTH = 0x4c;//设置目标频率高8位
        CRECNTL = 0x77;//设置目标频率低8位
        CRERES  = 0x62;//设置追频误差
        CRECR   = 0x90;//设置追频速度 P235
//        while(!(CRECR&0x01));//等待追频校准完成
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-07-01 11:02:39

75

主题

6171

回帖

1万

积分

超级版主

积分
12988
发表于 2024-10-19 11:44:05 | 显示全部楼层
让主频10分频输出一个时钟,看看主频频率是多少。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-29 16:00:02

14

主题

98

回帖

636

积分

高级会员

积分
636
发表于 2024-10-19 17:29:21 | 显示全部楼层
本帖最后由 深山老妖 于 2024-10-19 18:18 编辑
梁*** 发表于 2024-10-19 11:44
让主频10分频输出一个时钟,看看主频频率是多少。
MCLKOCR = 0x0a;//P4.7 10分频输出
结果如下:
626.jpg


MCLKOCR = 0x64;//P4.7 100分频输出
结果如下:
625.png

每次上电后,必须要先用示波器探头探一下晶振的引脚,不然不起振,同样的晶振,同样的电容,在32F的板子上工作的好好的。


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-2 03:00 , Processed in 0.185893 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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