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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-06-17 15:17:55
已绑定手机

37

主题

2221

回帖

2662

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:280
  • 最近打卡:2025-06-17 02:46:22

22

主题

282

回帖

1095

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-06-17 09:09:48
已绑定手机

79

主题

5137

回帖

9134

积分

超级版主

DebugLab

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

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-06-17 01:35:04
已绑定手机

17

主题

714

回帖

1245

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-06-17 01:35:04
已绑定手机

17

主题

714

回帖

1245

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 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));//等待追频校准完成
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6093

回帖

1万

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 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-6-17 20:15 , Processed in 0.130980 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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