简 介:本文介绍了使用32MHz表贴晶体替换原25MHz晶体来提升STC32G单片机性能的实验。通过更换1206封装的32MHz晶体并调整并联电容至20pF,成功提高了系统时钟频率。测试表明,该改动使信号采样周期从10ms缩短至7ms,主要得益于时钟频率提升。文中详细记录了电路设计、焊接过程、ADC采样优化及FFT频率分析等关键步骤,验证了外部晶振方案的有效性。同时指出STC32G系列单片机缺乏硬件数学加速单元,性能提升仅源于时钟频率提高。
关键词:32MHz,晶体,外部时钟,STC32G,150kHz,电磁门导航信号,幅值估计
00:02:57\\\\\\\\r\\\\\\\\n外部32MHz表贴晶体
- STC32G12 使用外部晶振
- 导航信号线性度测量:150kHz
- 2016贴片无源晶振石英晶体谐振器16M24M25M26M27.12M32M40M50MHZ
- STC32G中的数学硬件库有多疯狂?
AD\Test\2025\December\Sample150kHzSTC32G12MCP6S21.SchDoc
01外部晶体信号
一、背景
昨天测试了基于STC32G 系列的单片机采集150kHz 电磁门导航信号的电路板的功能。 每采集一个通道的数据, 时间大约消耗 10ms。 为了加速采集数据速度。 使用外部 32 MHz 的表贴晶体, 替换原来的 25MHz的晶体。 不仅减小了电路的面积, 同时也提高了电路工作速度。
▲ 图1.1.1 表贴晶体封装说明二、设计电路
在昨天的实验电路板上, 将晶体修改成 32MHz 表贴晶体。 重新铺设PCB, 此时,全部飞线已经减少到 6 条。 解释通过 0 欧姆的电阻进行飞线。
一分钟之后, 得到了测试电路板。 电路板制作的非常完美。
三、焊接测试
焊接电路板, 其中, 晶体的两个并联电容, 都使用 20pF。 这个 20pF 是购买晶体包装上给出的 并联电容参数。 将之前编写的程序下载, 修改内部对应时钟频率为 32MHz。 可以看到此时, 单片机开始工作, 串口输出字节正常, 表明单片机内部始终为正确的 32MHz 。
▲ 图1.3.1 采集到的256个数据配置 ADC 的时钟分频系数。 设置为 0, 此时, ADC 采样时钟频率达到最快。 采集 256 个输入信号波形, 由此可以看到采集频率比信号的频率好像大了6倍左右, 对应每个周期采集六个数据。 下面,对采集到的数据进行分析, 得到精确的归一化频率, 并进行正弦信号幅度分析。
四、频率分析
对采集到的数据补零, 使其长度达到原来的 128 倍。 求取它的 快速傅里叶变换, 其中的峰值对应的归一化频率 为 1.88488。 由此可以知道, 对应的采样频率是 信号频率的 3.33 倍。 所以, 处理255个数据, 恰好对应的信号周期的整数倍数。
▲ 图1.4.1 不128倍的0所得到的频谱#!/usr/local/bin/python# -*- coding: gbk -*-#============================================================# TEST3.PY -- by Dr. ZhuoQing 2025-12-18## Note:#============================================================fromheadmimport*ddim=tspload('sample7','ddim')d=list(ddim[0]-mean(ddim[0]))d0=[0]*len(d)for_inrange(127):d.extend(d0)fftd=abs(fft.fft(d))id=where(fftd[:len(fftd)//2]==max(fftd[:len(fftd)//2]))[0][0]printf(id)omiga=id/128*2*pi/256printf(omiga)printf(2*pi/omiga)plt.plot(fftd,lw=3)plt.xlabel("N",color="steelblue",fontsize=24)plt.ylabel("FFT",color="steelblue",fontsize=24)plt.grid(True,which='both',linestyle='--',alpha=0.7)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST3.PY#============================================================下面,测量一下现在晶振频率下, 对于外部信号采样和处理时间。 为此, 还将STC32 的数学库增加上, 不过后来经过测试发现, 加上STC32的数学库, 对于STC32G 系列的单片机来说没有什么用处。 因为这个系列的单片机并不支持硬件数学运算加速。 所以现在,采集信号周期编减小到 7ms 左右, 这些时间的提升主要来自于 时钟频率的增加。
※总线 ※
本文测试了 使用1206表贴封装的晶体, 作为 STC32G 外部时钟。 在并联电容为 20pF的时候, 单片机启动正常。 很可惜, STC32G 系列的单片机内部没有数学加速硬件单元, 所以,数据采样时间减小到 7ms, 主要来自于时钟频率提高所带来的加速效果。
■ 相关文献链接:
- STC32G12 使用外部晶振
- 导航信号线性度测量:150kHz-CSDN博客
- 2016贴片无源晶振石英晶体谐振器16M24M25M26M27.12M32M40M50MHZ
- STC32G中的数学硬件库有多疯狂?
● 相关图表链接:
- 图1.1.1 表贴晶体封装说明
- 图1.3.1 采集到的256个数据
- 图1.4.1 不128倍的0所得到的频谱