遥遥领先瑞萨单端有源晶振频率精度测量,我们讨论了典型RA系列微控制器上的一些外设,这些外设允许您创建完整的自治子系统,管理典型微控制器应用中的许多典型内务处理和I/O密集型任务。这种基本低级任务的自动化可以极大地减少对CPU时间的需求,减少需要服务的中断数量,并且通常可以显著地有助于降低系统功耗。
在这篇博客中,我想看看另一个更不寻常的和不太为人所知的外设RA微控制器系列时钟频率精度测量电路或CAC。时钟与石英晶体振荡器频率精度测量电路旨在让我们能够检查RA微控制器上可用的许多内部和外部时钟源的精度,方法是允许我们自动将这些时钟源相互参照,并在比较结果出现意外偏差时发出指示。
CAC最初旨在通过启用时钟系统的自测功能来帮助我们提高系统的安全性和可靠性,但正如您将看到的,它还有其他用途。
CAC允许我们从广泛的内部和外部时钟源中进行选择,既可以作为参考信号,也可以作为目标时钟,以确认振荡速度。
对于内部片内晶体振荡器、HOCO、MOCO和LOCO以及独立看门狗iWDT时钟,通常可以从主时钟和32 kHz外部时钟输入中选择输入。您也可以选择内部外设时钟PCLKB作为输入。然后,可以通过选择适当的分频比来调整每个时钟输入,包括参考时钟和目标时钟。
这些时钟均可选择作为参考时钟或目标时钟,参考信号有一个额外选项,您也可以选择外部时钟输入,以便从外部测试设备输入精确的参考时钟。
参考时钟被用作时基,并且在参考时钟的一个周期期间出现的要被测量的时钟的时钟脉冲的数量在寄存器中被计数。测量周期结束后,计数寄存器中的脉冲数与CAC比较寄存器中存储的最小和最大预期值进行比较,如果检测到时钟和贴片有源晶振超出范围,就会产生中断。
这是检查内部时钟校准设置是否正确,或者时钟寄存器初始化是否存在可能导致时序错误的问题的理想方法。最棒的是,一旦设置好,它就可以自主运行,如果系统检测到错误,您可以获得中断。如果计数器溢出或在每次测量结束时,您也可以生成一个错误,因为您可能只是偶尔想使用此功能来检查各种时钟源的准确性。
CAC设计用于支持自测,以检测系统时钟错误,但它也可用于其它目的,尤其是在使用外部基准引脚的情况下。
Mfr Part #
晶振厂家
Description
Series
Frequency
Output
Voltage - Supply
Frequency Stability
XLH736039.950000I
Renesas晶振
XTAL OSC XO 39.9500MHZ HCMOS SMD
XL
39.95 MHz
HCMOS
3.3V
±25ppm
XLH330148.500000I
Renesas晶振
XTAL OSC XO 148.5000MHZ HCMOS
XL
148.5 MHz
HCMOS
3.3V
±100ppm
XLH736027.540000I
Renesas晶振
XTAL OSC XO 27.5400MHZ HCMOS SMD
XL
27.54 MHz
HCMOS
3.3V
±25ppm
XLH726026.561172I
Renesas晶振
XTAL OSC XO 26.561172MHZ HCMOS
XL
26.561172 MHz
HCMOS
2.5V
±25ppm
XLH736028.450560I
Renesas晶振
XTAL OSC XO 28.45056MHZ HCMOS
XL
28.45056 MHz
HCMOS
3.3V
±25ppm
XLH336024.545455I
Renesas晶振
XTAL OSC XO 24.545455MHZ HCMOS
XL
24.545455 MHz
HCMOS
3.3V
±25ppm
XLH738092.500000X
Renesas晶振
XTAL OSC XO 92.5000MHZ HCMOS SMD
XL
92.5 MHz
HCMOS
3.3V
±20ppm
XLH736048.839200I
Renesas晶振
XTAL OSC XO 48.8392MHZ HCMOS SMD
XL
48.8392 MHz
HCMOS
3.3V
±25ppm
XLH736090.136800I
Renesas晶振
XTAL OSC XO 90.1368MHZ HCMOS SMD
XL
90.1368 MHz
HCMOS
3.3V
±25ppm
XLH736028.375000I
Renesas晶振
XTAL OSC XO 28.3750MHZ HCMOS SMD
XL
28.375 MHz
HCMOS
3.3V
±25ppm
XUH738016.125000X
Renesas晶振
CLCC 7.00X5.00X1.30 MM, 2.54MM P
XU
16.125 MHz
HCMOS
3.3V
±20ppm
XLH328019.200000X
Renesas晶振
XTAL OSC XO 19.2000MHZ HCMOS SMD
XL
19.2 MHz
HCMOS
2.5V
±20ppm
XLH528040.000000X
Renesas晶振
XTAL OSC XO 40.0000MHZ HCMOS SMD
XL
40 MHz
HCMOS
2.5V
±20ppm
XUH738044.736000X
Renesas晶振
CLCC 7.00X5.00X1.30 MM, 2.54MM P
XU
44.736 MHz
HCMOS
3.3V
±20ppm
XUH518033.333333X
Renesas晶振
CLCC 5.00X3.20X1.10 MM, 2.54MM P
XU
33.333333 MHz
HCMOS
1.8V
±20ppm
XUH738025.000000X
Renesas晶振
CLCC 7.00X5.00X1.30 MM, 2.54MM P
XU
25 MHz
HCMOS
3.3V
±20ppm
XLH526080.000000I
Renesas晶振
XTAL OSC XO 80.0000MHZ HCMOS SMD
XL
80 MHz
HCMOS
2.5V
±25ppm
XLH738078.643200X
Renesas晶振
XTAL OSC XO 78.6432MHZ HCMOS SMD
XL
78.6432 MHz
HCMOS
3.3V
±20ppm
XLH726096.000000I
Renesas晶振
XTAL OSC XO 96.0000MHZ HCMOS SMD
XL
96 MHz
HCMOS
2.5V
±25ppm
XLH728080.000000X
Renesas晶振
XTAL OSC XO 80.0000MHZ HCMOS SMD
XL
80 MHz
HCMOS
2.5V
±20ppm
XLH738000.921600X
Renesas晶振
XTAL OSC XO 921.6000KHZ HCMOS
XL
921.6 kHz
HCMOS
3.3V
±20ppm
XLH336029.500000I
Renesas晶振
XTAL OSC XO 29.5000MHZ HCMOS SMD
XL
29.5 MHz
HCMOS
3.3V
±25ppm
XLH735015.360000I
Renesas晶振
XTAL OSC XO 15.3600MHZ HCMOS SMD
XL
15.36 MHz
HCMOS
3.3V
±50ppm
XLH736045.000000X
Renesas晶振
XTAL OSC XO 45.0000MHZ HCMOS SMD
XL
45 MHz
HCMOS
3.3V
±25ppm
XAH526033.300000I
Renesas晶振
XTAL OSC XO 33.3000MHZ LVCMOS
XA
33.3 MHz
LVCMOS
2.5V
±25ppm
XLH336013.330000I
Renesas晶振
XTAL OSC XO 13.3300MHZ LVCMOS
XL
13.33 MHz
LVCMOS
3.3V
±25ppm
XLH336037.125000I
Renesas晶振
XTAL OSC XO 37.1250MHZ LVCMOS
XL
37.125 MHz
LVCMOS
3.3V
±25ppm
XLH336002.048000I
Renesas晶振
XTAL OSC XO 2.0480MHZ LVCMOS SMD
XL
2.048 MHz
LVCMOS
3.3V
±25ppm
XLH336032.051655I
Renesas晶振
XTAL OSC XO 32.051655MHZ LVCMOS
XL
32.051655 MHz
LVCMOS
3.3V
±25ppm
XLH328033.333000X
Renesas晶振
XTAL OSC XO 33.3330MHZ LVCMOS
XL
33.333 MHz
LVCMOS
2.5V
±20ppm
XLH336033.330000I
Renesas晶振
XTAL OSC XO 33.3300MHZ LVCMOS
XL
33.33 MHz
LVCMOS
3.3V
±25ppm
XLH336031.948512I
Renesas Oscillator
XTAL OSC XO 31.948512MHZ LVCMOS
XL
31.948512 MHz
LVCMOS
3.3V
±25ppm
XLH336019.000000I
Renesas晶振
XTAL OSC XO 19.0000MHZ LVCMOS
XL
19 MHz
LVCMOS
3.3V
±25ppm
XLH730030.875520I
Renesas晶振
XTAL OSC XO 30.87552MHZ LVCMOS
XL
30.87552 MHz
LVCMOS
3.3V
±100ppm
XLH535003.686000I
Renesas晶振
XTAL OSC XO 3.6860MHZ LVCMOS SMD
XL
3.686 MHz
LVCMOS
3.3V
±50ppm
XLH736078.125000X
Renesas晶振
XTAL OSC XO 78.1250MHZ LVCMOS
XL
78.125 MHz
LVCMOS
3.3V
±25ppm
XLH736025.750000X
Renesas晶振
XTAL OSC XO 25.7500MHZ LVCMOS
XL
25.75 MHz
LVCMOS
3.3V
±25ppm
XLH535013.330000I
Renesas晶振
XTAL OSC XO 13.3300MHZ LVCMOS
XL
13.33 MHz
LVCMOS
3.3V
±50ppm
XLH338040.953873X
Renesas晶振
XTAL OSC XO 40.953873MHZ LVCMOS
XL
40.953873 MHz
LVCMOS
3.3V
±20ppm
XLH300000.000000K
Renesas晶振
XTAL OSC XO HCMOS SMD
XL
-
HCMOS
-
±100ppm
XLH335006.005284K
Renesas晶振
XTAL OSC XO 6.005284MHZ HCMOS
XL
6.005284 MHz
HCMOS
3.3V
±50ppm
XLH528031.250000X
Renesas晶振
XTAL OSC XO 31.2500MHZ LVCMOS
XL
31.25 MHz
LVCMOS
2.5V
±20ppm
例如,如果您有一个指示系统健康状况的外部信号,该信号会根据系统状态改变晶振频率,CAC是测量该信号并检测其频率变化的理想解决方案。这种情况下,实际上反过来使用CAC,将信号输入外部基准引脚,选择相关的时钟信号、分频器设置和比较器设置,以便在基准信号频率超出“正常”频率范围时检测错误,从而指示系统错误。如果CAC检测到这种情况,就会产生一个错误。
CAC是一个有用的外设,我们可以用它来帮助检查系统的健康状况,尤其是在系统可靠性非常重要的消费电子或工业应用中。不过,正如我们所见,它也可以用于监控外部脉冲序列,并检测脉冲频率何时发生变化。遥遥领先瑞萨单端有源晶振频率精度测量.
we looked at some of the peripherals that are available on a typical RA family microcontroller that allow you to create complete autonomous subsystems, managing many of the typical housekeeping and I/O intensive tasks found in a typical microcontroller application. This automating of basic low-level tasks can greatly reduce the demand on the CPU’s time, reduce the number of interrupts that need to be serviced, and often can significantly contribute to reducing the system power consumption.The CAC allows us to select from a wide range of internal and external clock sources, both as the reference signal and as the target clock which you want to confirm the oscillation speed.
You can typically select inputs from both the main clock and the 32 kHz external clock inputs, for the internal on-chip oscillators, the HOCO, MOCO and LOCO, and the independent watchdog iWDT clock. You can also select PCLKB, the internal peripheral clock as an input. Each clock input, both for the reference clock and the target clock can then be scaled by selecting the appropriate divider ratio.
Each of these clocks can be selected as either as the reference or target clock, you have one additional option for the reference signal, you can also select an external clock input which allows you to input an accurate reference clock from external test equipment.
The reference clock is used as a time base, and the number of clock pulses of the clock to be measured that occur during one cycle of the reference clock is counted in a register. After the measurement period is complete, the number of pulses in the count register is compared to minimum and maximum expected values that are stored in the CAC’s compare registers, and an interrupt can be generated if the clock is detected to be out of range.
This is an ideal method for checking that the calibration of the internal clocks has been set up correctly, or if there is some issue in the initialization of the clock registers that may cause a timing error. The great thing is that once set up, it can operate autonomously, and you can get an interrupt if the system detects an error. You can also generate an error if the counter overflows or at the end of each measurement, as perhaps you only want to use this function occasionally to check the accuracy of various clock sources.
The CAC was designed to support self-test to detect errors with the system clocks, however, it can also be useful for other purposes, especially if we use the external reference pin.
As an example, if you have an external signal, which indicates the health of a system, which changes frequency depending on the system state, the CAC is an ideal solution to measure this signal and detect when it changes frequency. In this case, you effectively use the CAC in reverse, you input your signal to the external reference pin, and select the relevant clock signals, divider settings, and comparator settings to detect an error if your reference signal frequency goes out of range of the “healthy” frequency, so indicating a system error. The CAC can then generate an error if it detects this condition.
The CAC is a useful peripheral that we can use to help check the health of the system, especially useful if you have a consumer or industrial application where system reliability can be very important. Still, as we’ve seen, it can also be used for monitoring external pulse trains and detecting when the frequency of the pulses changes.