STC32F 使用外部40MHz 晶体工作

STC32F使用外部40MHZ晶体

01 STC32F外部晶体


一、前言

  在昨天实验中, 为了确保 STC32F 采集信号速率保持恒定,  使用了一颗 24MHz 外部晶体作为单片机的时钟, 它安插在实验电路板的 PIN6, PIN7 管脚。  上电后, 经过软件初始化, 单片机的 PIN6, PIN7 管脚会出现高频振荡信号, 频率为 24MHz 左右,  电路中 LED 根据软件的功能会闪烁。
GM1695538739_1280_720.MPG|_-4

▲ 图1.1.1  外部晶体

▲ 图1.1.1 外部晶体

  下面使用 FA-2 频率计测量振荡信号频率, 频率数值为 24MHz, 而且非常稳定。   变化的部分只有0.1Hz。 接下来, 在相同的硬件和软件的情况下,  使用这颗 40MHz 的晶体, 替换掉 24MHz, ·测试一下是否可以直接替换。

GM1695539170_1280_720.MPG|_-4

二、替换结果

  将 原来电路板上的 24MHz 的晶体, 替换成 40MHz,  会发现, 电路不工作了。  似乎因为测量的原因, 示波器没有能够显示测量的波形。  这究竟是什么原因呢?

GM1695539779_1280_720.MPG|_-5
  下面, 将测量PIN7 管脚示波器引线移到 PIN6 管脚,  可以测量到一个低频信号。  这个信号的频率为 13.3MHz, 只有 40MHz 的 三分之一。  将测量频率的引线去除,  可以看到振荡信号幅值升高了。 再去除示波器引线, 然后重新接上, 可以观察到频率回到了 40MHz。  但此时, 单片机并不运行。 估计是因为在其内部没有设置程序读取 等待时间。 这样内部程序运行不正常。

GM1695540328_1280_720.MPG|_-7

三、修改软件

  根据 STC32F 数据手册关于外部振荡器控制寄存器的说明,  对于外部晶振大于 24M时,  需要设置 XCFILTER 为 01, 这样适合超过 24MHz 晶体的振荡。  另外, 关于内部程序 FLASH 读取等待时间,  在昨天的程序上, 增加了 一个判断, 当时钟超过 24MHz 的时候,  不再将等待时间清零了。 维持原来的缺省值 1。

GM1695541288_1280_720.MPG|_-7

  经过软件修改之后, 下载程序, 单片机可以正常工作了。  这也证明了, 一旦时钟超过35MHz 之后, STC32F需要设置内部程序读取等待时间。  否则程序就无法正确运行。

GM1695541466_1280_720.MPG|_-3

  结 ※


  文测试了 STC32F 使用外部 40MHz 晶体工作的情况。 在这个频率下, 需要设置内部程序FLASH读取等待寄存器为 1, 否则程序无法正确运行。  在 40MHz晶体震荡下, 还是无法连接频率计进行计数。 ·可以使用示波器观察振荡波形。

GM1695541767_1280_720.MPG|_-3


● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/133240677