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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-15 22:45:37

12

主题

96

回帖

604

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

907

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-15 22:45:37

12

主题

96

回帖

604

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

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

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-05-03 11:16:14

16

主题

702

回帖

2478

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-05-03 11:16:14

16

主题

702

回帖

2478

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-15 22:45:37

12

主题

96

回帖

604

积分

高级会员

积分
604
发表于 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
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-15 22:45:37

12

主题

96

回帖

604

积分

高级会员

积分
604
发表于 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-5-3 12:46 , Processed in 0.195225 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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