丽江春水 发表于 2022-12-28 15:48:07

新人求教:stc32g12k128接外晶振问题

我的stc32g12k128想使用外部晶振,但反复试验总不能成功,换了很多晶振,结果都一样,从程序上看是卡在等待频率稳定语句上了,把该语句去掉,程序就正常运行,但运行频率不是外晶振的频率。晶振电路采用的是数据手册上的电路。开启外晶振语句也是数据手册上范例中的。开始以为是买的晶振是坏的,另找了两家买了还是不行,晶振频率从11M到32M试过多款。用万用表测量时晶振两脚的电压都是VCC值。所以判断不是晶振问题。我使用的是降龙棍核心板,不知是哪个环节出的问题,求大神们指点一下。


#include "mcu_initial.h"
#include "STC32G.H"
#include "tft089_driver.h"
void mcu_initial()
{
EAXFR = 1; //使能访问 XFR
CKCON = 0x00; //设置外部数据总线速度为最快
WTST = 0x00; //设置程序代码等待参数,
//赋值为 0 可将 CPU 执行程序的速度设置为最快

P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//        XOSCCR |= 0xe0; //启动外部晶振

        XOSCCR=0xfe; //启动外部晶振
//delay(22);
while (!(XOSCCR&1));//等待时钟稳定
CLKDIV = 0x02; //时钟不分频
CLKSEL = 0x01;

MCLKOCR=0x0a;//P5.4输出10分频的系统时钟,供测量用
        P_SW1=0x04;
HSSPI_CFG2=0x20;//启动高速模式
        SPCTL = 0xd2; //使能 SPI 主机模式 .用较高速度
SPSTAT = 0xc0; //清中断标志
//ESPI = 1; //使能 SPI 中断
EA = 1;
BL=1;

}

神农鼎 发表于 2022-12-28 16:00:10

我使用的是降龙棍核心板,不知是哪个环节出的问题====分析问题,你要贴上原理图的



深圳国芯人工智能有限公司-核心功能实验板 (stcai.com)

神农鼎 发表于 2022-12-28 16:03:04



https://www.stcai.com/filedownload/618414

神农鼎 发表于 2022-12-28 16:05:39

P1.6/P1.7可以外接晶振,那 P1.6/P1.7上的外围其他电路要去掉

神农鼎 发表于 2022-12-28 16:07:22


如焊接了这部分电路,则必须去除 R24/R25

zhp 发表于 2022-12-28 16:24:43

特殊功能寄存器不要随意设置
参考数据手册上的范例就可成功


丽江春水 发表于 2022-12-28 19:44:01

zhp 发表于 2022-12-28 16:24
特殊功能寄存器不要随意设置
参考数据手册上的范例就可成功

谢谢大神回复,我考虑到外围元件会影响起振,所以把对应的LED(LED8和LED9)拆掉了,但没起到预期效果,我明天再拆R24和R25试试

丽江春水 发表于 2023-1-12 14:53:35

本帖最后由 丽江春水 于 2023-1-12 14:56 编辑

我对时钟源的使用有错识误,但不知错在哪时机,前面是用外晶振遇到困难 ,现在想用32K内部时钟源,也遇到困难。无法打到32K内部时钟源。与使用外晶振时的情况一样。f:\QQ图片.png

丽江春水 发表于 2023-1-12 14:58:04

卡在等待频率稳定上,无法进行一去。

神农鼎 发表于 2023-1-12 21:51:28

把你实际的原理图的PDF发上来,再拍个实际的图发上来
页: [1] 2
查看完整版本: 新人求教:stc32g12k128接外晶振问题