KW36 - 32kHz RTC外部振荡器的微调调节

cancel
Showing results for 
Search instead for 
Did you mean: 

KW36 - 32kHz RTC外部振荡器的微调调节

No ratings

KW36 - 32kHz RTC外部振荡器的微调调节

引言

FRDM-KW36包含带有32 kHz晶体振荡器的RTC模块。此模块为以极低功耗模式运行的MCU生成32 kHz时钟源。该振荡器包括一组用作CLOAD的可编程电容器。改变这些电容器的值可以改变振荡器提供的频率。

此可配置电容的范围为0 pF(禁用电容器组)至30 pF,步长为2 pF。 这些值是通过组合启用的电容器获得的。可用值为2 pF,4 pF,8 pF和16 pF。可以完成这四个数值的任意组合。如果可以使用外部电容器,建议禁用这些内部电容器(清除RTC控制寄存器SFR中的SC2P,SC4P,SCS8和SC16位)。

要调整振荡器提供的频率,必须首先能够测量该频率。使用频率计数器将是非常好的,因为它提供了比示波器更精确的测量。您还需要输出振荡器频率。要输出振荡器频率,以任意一个蓝牙演示应用程序为例,您应该执行以下操作:

调整频率示例

本示例将利用Connectivity Software Stack中的心率传感器演示(freertos版本),并假定开发人员具有从SDK到IDE导入或打开项目的知识。

1.从SDK中打开或克隆“心率传感器”项目。

2.在工作区的board文件夹中找到board.c和board.h文件。

patrickcheng_3-1628226475770.png

3.如下图所示在board.h文件中声明一个void函数。该函数将RTC管脚复用设置为输出到PTB3并能够测量频率。

patrickcheng_4-1628226557592.png

4. 如下所示在board.c文件中开发BOARD_EnableRtcClkOut函数。

5. 代码如下:

patrickcheng_5-1628226592222.png

6. 在BOARD_BootClockRUN(board.c文件)之后立即在hardware_init函数中调用BOARD_EnableRtcClkOut函数。

patrickcheng_6-1628226658975.png

7. 在工作区的board文件夹中找到clock_config.c文件。

8. 在文件顶部添加以下定义。

patrickcheng_8-1628226751631.png

9. 在BOARD_BootClockRUN函数内部(也在clock_config.c文件中)搜索对函数的CLOCK_CONFIG_EnableRtcOsc调用,然后通过上述任意定义来编辑变量。

10. 最后,在项目源文件夹中的“ preinclude.h”文件中禁用低功耗选项和LED支持:

patrickcheng_9-1628226819505.png

此时,您可以在PTB3中进行测量,并使用频率计数器进行频率调整。每次对电路板进行编程时,都需要执行POR以获得正确的测量。下表是从FRDM-KW36板版本B获得的,可用作调整频率的参考。 请注意,电容不仅由启用的内部电容组成,还包括封装,内部走线,芯片焊盘和PCB走线中的寄生电容。因此,尽管下面给出的参考测量值应接近实际值,但您还应该在电路板上进行测量,以确保频率是专门针对您的电路板和布局进行调整的。

patrickcheng_10-1628226861557.png

Labels:KW   KW35 | 36

kinetis kw36a

Labels (2)
Version history
Revision #:
2 of 2
Last update:
‎08-05-2021 10:17 PM
Updated by: