晶振上没有印数值,如何得知准确频率值?

[复制链接]
6015|19
 楼主| cov0xt 发表于 2015-12-13 16:10 | 显示全部楼层 |阅读模式
我开发板上的晶振,没有任何数字,在烧写程序时,能从软件看到频率值,但是每次都不一样:

11.915772 MHz
11.926740 MHz
等等

请问我的晶振是12 MHz的吗?如何得知最准确的数值呢?
dirtwillfly 发表于 2015-12-13 16:35 | 显示全部楼层
加到mcu对应引脚上,用频率计测量
另外,有一些误差是正常的,受负载电容和晶振精度等情况的影响
 楼主| cov0xt 发表于 2015-12-13 16:50 | 显示全部楼层
dirtwillfly 发表于 2015-12-13 16:35
加到mcu对应引脚上,用频率计测量
另外,有一些误差是正常的,受负载电容和晶振精度等情况的影响 ...

频率计测量……

好高端哦,都没见过呢……

我就是想不用开发板上的DS1302,只用延时,弄个走秒的数码管……

void Delay1000ms()                //@12.000MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 46;
        j = 153;
        k = 245;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

这是官方软件生成的延时函数,可实际上,走的比1秒快,郁闷……
dirtwillfly 发表于 2015-12-13 16:59 | 显示全部楼层
cov0xt 发表于 2015-12-13 16:50
频率计测量……

好高端哦,都没见过呢……

你可以把k、j的值调小一些,直到觉得准了为止
 楼主| cov0xt 发表于 2015-12-13 17:10 | 显示全部楼层
dirtwillfly 发表于 2015-12-13 16:59
你可以把k、j的值调小一些,直到觉得准了为止

在Keil里面仿真,1秒走的贼快;

烧到开发板里,1秒走的贼慢:Q

ps。我已经在Keil里面设置了12MHz
dirtwillfly 发表于 2015-12-13 20:18 | 显示全部楼层
cov0xt 发表于 2015-12-13 17:10
在Keil里面仿真,1秒走的贼快;

烧到开发板里,1秒走的贼慢

慢慢来,你也可以写个程序用按键来校准
cool_coder 发表于 2015-12-13 20:22 | 显示全部楼层
11.915772 MHz
11.926740 MHz

晶振的频率精度和稳定性都没有这么差,要准得多,也稳得多。多半是测的不准。
cooldog123pp 发表于 2015-12-13 20:29 | 显示全部楼层
晶振有10ppm和20ppm的代表误差 可以算一下么ppm是百万分之一 你的应该是12MHZ的 算上误差
highend 发表于 2015-12-13 23:06 | 显示全部楼层
最准确的数值======只有一个办法,频率计。

因为,即使印了数值,仍然有可能因为温度、晶振电容、电压噪声等因素有微小的漂移。
beebeecici 发表于 2015-12-14 00:16 来自手机 | 显示全部楼层
换一个有数字的不行吗?几毛钱的事想这么多
songchenping 发表于 2015-12-14 07:50 | 显示全部楼层
cooldog123pp 发表于 2015-12-13 20:29
晶振有10ppm和20ppm的代表误差 可以算一下么ppm是百万分之一 你的应该是12MHZ的 算上误差 ...

10ppm已经算比较精度高的了。平常用的都是50PPM或者100ppm的了。
songchenping 发表于 2015-12-14 07:50 | 显示全部楼层
感觉12M的几率大一些。
songchenping 发表于 2015-12-14 07:51 | 显示全部楼层
你要是自己搞的东西,不要太在意是11.92还是12M,如果是产品建议就不要用了。买新的。
mcu5i51 发表于 2015-12-14 08:33 | 显示全部楼层
下载工具用的是测量串口发出的特定字节的时间或周期,一般精度都不太好,想知道真正的频率只能用别的工具测试;
做秒表最好用中断定时器等,延时没有精度,可能每次的流程都不同,如果考虑全部的指令周期,不是一般人能做到的,至少C不行
dirtwillfly 发表于 2015-12-14 08:48 | 显示全部楼层
songchenping 发表于 2015-12-14 07:50
10ppm已经算比较精度高的了。平常用的都是50PPM或者100ppm的了。

是的。
huangqi412 发表于 2015-12-14 09:36 | 显示全部楼层
看到一群博士在谈论水滴掉下来会不会杀人,好高深好热闹的样子,农民的我我弱弱的小声说了句:你们都没淋过雨么。  好担心会不会被退群啊。

1 开发板有说明是多少晶振 该是多少是多少,能跑过例程就好。
2 4/8/12/25晶振不要太常见---除非封装特殊,普通单片机开发板都是49S,叽叽歪歪功夫早就能换100遍了。
huarana 发表于 2015-12-14 10:23 | 显示全部楼层
huangqi412 发表于 2015-12-14 09:36
看到一群博士在谈论水滴掉下来会不会杀人,好高深好热闹的样子,农民的我我弱弱的小声说了句:你们都没淋过 ...

楼主的问题显然是 一个没印字的晶振如何得知其频率。

你这是遇到困难就绕开的节奏啊。

我来告诉楼主

用示波器或者频率计可以直接测

又或者用逻辑分析仪也可以间接测。

评分

参与人数 1威望 +1 收起 理由
cov0xt + 1 赞一个!

查看全部评分

jjjyufan 发表于 2015-12-14 10:46 | 显示全部楼层
1 看规格书 找参考设计  查到晶振频率
2 示波器 看
3 软件看
4 直接换个验证自己的判断

评分

参与人数 1威望 +1 收起 理由
cov0xt + 1 赞一个!

查看全部评分

l0p0c 发表于 2015-12-14 12:53 | 显示全部楼层
这个有难度啊
chunyang 发表于 2015-12-14 16:21 | 显示全部楼层
根据楼主给出的信息,可以判定为12MHz的晶体/晶振(注意,晶体和晶振是两种器件,很多工程师都会混用),每次得出的数值不一样很正常,一是器件的制造误差和温漂,二是测量误差。如果不是非常讲究的应用,不必在意精确测量,那需要专门的高精度频率计或晶体/晶振测试仪,价格不低。更重要的是,楼主所及显然是基于MCU平台,根本无所谓什么晶体/晶振的精度。

评分

参与人数 1威望 +1 收起 理由
cov0xt + 1 赞一个!

查看全部评分

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

本版积分规则

34

主题

200

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部