本公开总体涉及振荡器,并且更具体地涉及具有提高的精度的振荡器的装置及相关方法。
背景技术:
振荡器被用于各种电子电路。例如,模拟电路系统可使用振荡器用于诸如计时、采样等功能。作为另一示例,数字电路系统可使用振荡器作为时钟信号源。作为另一示例,混合信号或混合模式电路系统可使用一个或多个振荡器来产生计时信号、采样信号、时钟信号等。
在现实生活中,振荡器的实际实施方式偏离理想模型。例如,实际振荡器的输出信号可基于多个电气因素或环境因素而改变频率和/或振幅。电气因素包括电源电压变化、负载变化等。环境因素包括温度变化、振动等。
本节中的描述和任何相应的附图作为背景信息资料被包含于此。本节中的资料不应被视为承认此类资料构成本专利申请的现有技术。
技术实现要素:
考虑了用于具有提高的精度的振荡器的各种装置及相关方法。根据一个示例性实施例,一种装置包括产生具有第一频率的输出信号的第一振荡器。该装置还包括产生具有第二频率的输出信号的第二振荡器。第二频率作为温度的函数而变化。该装置还包括控制器,该控制器对第二振荡器的输出信号的周期数进行计数,以便确定是否校准第一振荡器。
根据另一示例性实施例,一种装置包括产生具有第一频率的输出信号的第一振荡器和产生具有第二频率的输出信号的第二振荡器。第二频率对温度变化的敏感度高于第一频率对温度变化的敏感度。该装置还包括控制器,该控制器在从第二频率的变化导出的数量超过阈值时,通过对第三振荡器的输出信号的周期数进行计数来校准第一振荡器。
根据另一示例性实施例,一种提高第一振荡器的精度的方法包括执行第一振荡器的基础校准。该方法还包括使用第二振荡器来确定温度变化是否超过阈值。该方法另外包括当温度变化超过阈值时重新校准第一振荡器。
附图说明
附图仅示出示例性实施例,并因此不应被视为限制本申请或其权利要求的范围。本领域的普通技术人员应明白,所公开的概念同样适用于其他等效的实施例。在附图中,用于不止一个附图中的相同附图标号表示相同、相似或等效功能、组件或块。
图1示出了根据示例性实施例的信号发生器电路。
图2描绘了根据示例性实施例的对应于用于校准振荡器的信号的波形。
图3示出了根据示例性实施例的对应于用于校准振荡器的额外信号的波形。
图4描绘了根据示例性实施例的用于校准振荡器的过程的流程图。
图5示出了根据示例性实施例的基础校准过程的流程图。
图6描绘了根据示例性实施例的用于检测温度变化的过程的流程图。
图7示出了根据示例性实施例的用于重新校准过程的流程图。
图8示出了根据示例性实施例的用于位模式发生器的电路布置。
图9示出了根据示例性实施例的包括信号发生器电路系统的微控制器单元(mcu)的框图。
图10描绘了根据示例性实施例的包括实时时钟(rtc)电路的电路布置。
具体实施方式
所公开的概念总体涉及信号发生电路系统,诸如振荡器。更具体地,所公开的概念提供了用于具有提高的精度的振荡器及相关方法的装置和方法。
根据一些示例性实施例的振荡器可以是自由运行的振荡器。例如,在一些实施例中,振荡器可被用作rtc的基准源或时钟。在其他示例性实施例中,振荡器可根据需要以间歇或门控的方式操作。
通常,根据示例性实施例的电路系统和技术使用具有相对高频率的振荡器,其被称为但不限于高频(hf)振荡器,以利于在本文中进行描述。hf振荡器用于提高具有相对低频率(例如,与hf振荡器的频率相比)的振荡器的精度,具有相对低频率的振荡器被称为但不限于低频(lf)振荡器,以便在本文中进行描述。然而,标签“hf振荡器”和“lf振荡器”并不意味着限制相应振荡器的频率。它们只提供方便的方式来表示lf振荡器的输出频率低于hf振荡器的输出频率。
图1示出了根据示例性实施例的信号发生器电路10。信号发生器电路10包括lf振荡器15、控制器20、hf振荡器25以及温度传感器或检测器电路30。
lf振荡器15提供被表示为输出信号15a(在图1中被标记为“flf”)的用于信号发生器电路10的输出信号。控制器20控制或支配信号发生器电路10的操作。更具体地,如下面详述,控制器20使用信号20a来校准信号发生器电路10的输出信号15a的频率。如下面详述,lf振荡器15的校准(或重新校准)校正或补偿引起输出信号15a的频率变化的环境变化(例如,温度变化)。如下面详述,控制器20接收lf振荡器15的输出信号15a以执行输出信号15a的校准。
在所示的实施例中,控制器20使用信号20b来启用或禁用lf振荡器15的操作。在一些实施例中,信号20b控制lf振荡器15是否部分地或整体地被上电或被置于低功率或睡眠模式(与正常或全功率操作模式即当lf振荡器15振荡并提供输出信号15a时相比)。在一些实施例中,lf振荡器15保持被供电,并且信号20b被用于选通(gate)输出信号15a。本领域普通技术人员应理解,在需要lf振荡器15的自由运行操作的情况下,可以省略信号20b。
控制器20使用信号20d来控制hf振荡器25的操作。通过使用信号20d,控制器20可以控制hf振荡器25是否提供输出信号25a(提供给控制器20)。在一些实施例中,信号20d控制hf振荡器25是否部分地或整体地被上电或被置于低功率或睡眠模式(与正常或全功率操作模式即当hf振荡器25振荡并提供输出信号25a时相比)。在一些实施例中,hf振荡器25保持被供电,并且信号20d被用于选通输出信号25a。
hf振荡器25可以使用各种电路系统来实现。如本领域普通技术人员将理解的,给定实施方式的电路系统的选择取决于各种因素。这些因素包括设计规格、性能规格、成本、ic或器件面积、可用技术(诸如半导体制造技术)、目标市场、目标终端用户等。
在一些实施例中,hf振荡器25构成晶体振荡器。在这些实施例中,信号20d可用于使晶体振荡器的一部分降低功率(powerdown)。在一些实施例中,响应于信号20d可将整个晶体振荡器电路系统降低功率。在一些实施例中,晶体振荡器电路系统的一部分(例如,用于引起振荡的电路系统)可保持被供电,而晶体振荡器电路系统的其他部分(例如,缓冲器)可被降低功率或置于低功率或睡眠模式。通常,使用晶体的hf振荡器比不使用晶体的lf振荡器具有更高的精度。在一些实施例中,lf振荡器15是基于电阻器-电容器(rc)的振荡器。假设与晶体的振荡频率相比,电阻和电容的波动相对较大,在此情况下,与基于rc的lf振荡器15相比,hf振荡器25具有更高(通常远高于例如几个数量级)的精度。
温度传感器30向控制器20提供输出信号30a。输出信号30a提供信号发生器电路10的温度的指示。例如,在一些实施例中,信号发生器电路10的各种块和组件被集成在集成电路(ic)内或半导体管芯内,其通常彼此相对紧靠在一起进行集成。在此情况下,温度传感器30提供信号发生器电路10的各种块和组件(诸如lf振荡器15)的总体温度的合理近似值。如下面所详述,控制器20使用温度传感器30的输出信号30a来确定是否校准lf振荡器15。
控制器20使用信号20c来控制温度传感器30的操作。在一些实施例中,信号20c控制温度传感器30是否部分地或整体地被上电或置于低功率或睡眠模式(与正常或全功率操作模式即当温度传感器30提供输出信号30a时相比)。在一些实施例中,温度传感器30保持被供电,并且信号20c被用于选通输出信号30a。
在图1所示的实施例中,控制器20包括一个或多个配置寄存器35。配置寄存器35存储与控制器20的操作有关的各种参数或变量,并且通常存储与信号发生电路10的操作有关的各种参数或变量。示例包括再次执行校准之前的温度变化量(阈值)、要计数的各种信号的周期数(下面详细描述)、确定温度变化量的检查之间的延迟和/或本文中描述的其他参数或变量。
配置寄存器35可经由链路40来设置。一种装置(未示出)可经由链路40耦合到控制器20并且对一个或多个配置寄存器35的内容进行编程(或设置或配置)。该装置也可经由链路40向控制器20提供控制信号。控制信号可对控制器20的操作的一个或多个方面进行编程(或设置或配置),诸如是否将信号发生电路10的一个或多个组件置于低功率或睡眠模式、是否执行lf振荡器15a的初始或基础校准(例如,上电)等。
在一些实施例中,该装置(未示出)也可使用链路40从控制器20接收信息。此信息的示例包括一个或多个配置寄存器35的内容、状态信息、校准结果(例如,通过校准程序校正的输出信号15a的频率的漂移量)、温度(如由温度传感器30确定)等。
如上所述,在一些实施例中,信号发生电路10的块、电路系统或组件中的一个或多个可在低功率或睡眠操作模式中周期性地操作。这可以在例如信号发生电路10被包含在(例如,集成在)包括以正常和低功率操作模式操作的其他电路系统的ic中时适当地使用。例如,在一些实施例中,此电路系统或ic可以具有多种操作模式,诸如em0(正常或高功率操作模式,其中例如ic的处理器或中央处理单元(cpu)正在运行)、em1(ic中的一些或大部分电路系统在运行或上电但没有处理器或cpu在运行)、em2(休眠模式,其中ic中的一些电路系统处于低功率或睡眠操作模式)和em3(深睡眠模式,其中ic中的大部分电路处于低功率或睡眠操作模式)。在这些实施例中,信号发生电路10在能量模式em0、em1、em2和em3中操作,但是通过保持在em2和em3模式中,节省了大多数功率(即降低了功耗)。
如上所述,控制器20校准lf振荡器15。在示例性实施例中,控制器20通过使输出信号15a的周期改变(或反之,使其频率改变)来校准lf振荡器。控制器20经由信号20b改变周期。信号20b可通过多种机制来改变周期。例如,在一些实施例中,信号20b可使得一个或多个电阻器、电容器或电流值(例如,由电流源提供)改变,从而导致输出信号15a的周期的相应变化。作为另一示例,在一些实施例中,在lf振荡器15中使用比较器来产生输出信号15a。信号20b引起比较器的触发(trip)或阈值点的变化,并因此引起输出信号15a的周期(或频率)变化。进一步的细节和示例可从2015年12月22日提交的美国专利申请第14/978,837号获得。
通常,振荡器的多种技术或拓扑结构可用于实现lf振荡器15,使得其(响应于控制信号20a)在短周期和长周期(分别对应于输出信号15a的较高频率和较低频率)之间抖动。如本领域普通技术人员所理解,给定实施方式的电路系统的选择取决于各种因素。这些因素包括设计规格、性能规格、成本、ic或器件面积、可用技术(诸如半导体制造技术)、目标市场、目标终端用户等。
上述抖动由控制器20使用一组值(对应于控制字finetrim)来控制。换句话说,包括一组比特/位(bit)的控制字finetrim用于微调(或调整或改变或控制或更改)输出信号15a的频率(flf),并因此校准输出信号15a。更具体地,如下面所详述,finetrim被用于向lf振荡器15提供比特流(例如,以控制信号20a的形式)以微调输出信号15a的频率(flf)。
在一些实施例中,finetrim信号可具有13位(对应于8192个唯一值),尽管可根据需要使用其他位数和配置。如本领域普通技术人员所理解,用于给定实施方式的电路系统和配置的选择取决于各种因素,诸如设计规格、性能规格(例如,输出信号15a的频率变化的分辨率)、成本、ic或器件面积、可用技术(诸如半导体制造技术)、目标市场、目标终端用户等。
控制器20使用hf振荡器25的输出信号25a校准lf振荡器15。如上所述,输出信号25a相比于lf振荡器15的输出信号15a具有更高的频率。图2示出对应于输出信号15a和输出信号25a的波形。更具体地,波形55对应于输出信号15a,而波形60对应于输出信号25a。在波形55的单个周期期间,波形60表现出多个周期。
在输出信号15a的给定数目的周期期间,控制器20对输出信号25a的周期数目进行计数。在一些实施例中,输出信号15a的周期数目是可编程的(例如,通过使用配置寄存器35)。通过将该计数与标称计数(即对应于具有正好为32.768khz的频率的输出信号15a)进行比较,控制器20确定输出信号15a的频率是过高还是过低(与标称输出频率相比)。如下面所详述,控制器20使用该确定的结果来修改finetrim的值,并因此改变输出信号15a的频率。以此方式,控制器20校准lf振荡器15a的振荡频率。在一些实施例中,在对输出信号25a的周期进行计数期间,输出信号15a的周期数目是可编程的(例如,通过使用配置寄存器35)。例如,在一些实施例中,在输出信号15a的300个周期期间,对输出信号25a的周期进行计数。
根据诸如设计和规格(例如,lf振荡器15的校准中的期望分辨率)、成本、可用技术或组件(例如,可用晶体振荡器的特性)等因素,各种频率可被用于输出信号15a和输出信号25a。在一些实施例中,输出信号15a可以具有32.768khz的频率,而输出信号25a可以具有38.4mhz的频率。因此,对于对应于此示例的振荡器,输出信号15a的单个周期对应于输出信号25a的超过1171个周期。
输出信号15a的频率与输出信号25a的频率的比率越高,lf振荡器15的校准分辨率越好,反之亦然。然而,一般来说,输出信号25a的相对高频率导致例如在hf振荡器25中的电路系统中的较高功耗量。在一些实施例中,为了降低功耗,控制器20使用信号20d周期性地接通hf振荡器25。如上所述,在hf振荡器25上电的时间期间,对输出信号25a的周期数目进行计数。当计数已结束时,hf振荡器25被断电以降低功耗。如下面所详述,为了重新校准,hf振荡器25再次被接通。
在示例性实施例中,温度传感器30包括温度敏感振荡器(tso)。更具体地,温度传感器30中的温度敏感振荡器的振荡频率响应于温度的改变而变化。在这些实施例中,温度敏感振荡器被设计或配置成响应于给定的温度变化而具有比lf振荡器15更大的输出频率变化或灵敏度。换句话说,描述作为温度的函数的温度敏感振荡器的输出频率的函数的斜率大于lf振荡器15(和hf振荡器25)的相应斜率。
如本领域普通技术人员所理解,温度敏感振荡器可以以各种方式实现。例如,在一些实施例中,温度敏感振荡器可以包括相对于温度变化具有相对较大梯度或斜率的组件,诸如电阻器、电容器和/或电流源。如本领域所公知,电路电阻器的电阻率相对于温度而变化,并且用温度系数建模。在一些实施例中,可以使用此特性来实现tso。通常,具有正系数的一种类型的电阻器与具有负系数的另一种类型的电阻器一起使用,使得这些电阻器抵消其他电阻器的温度系数。在振荡电路电压坡升(rampup)时,它使用与电压坡降(rampdown)时相比不同的电阻器。在三角波形坡升和坡降时,一半时间具有正系数,一半时间具有负系数。对于反映或测量温度变化的tso,它被设计成具有随温度升高的振荡器频率变化,因此将使用锯齿波形而不是三角波形。负系数电阻器和正系数电阻器将不会彼此相抵消,因为tso被设计为作为温度变化的函数具有更多的频率变化。
温度敏感振荡器的输出信号被用于重新校准lf振荡器15。换句话说,控制器20接通温度敏感振荡器、测量在给正时间段内温度敏感振荡器的输出信号的周期并将所得计数与先前(上次)测量的计数进行比较。计数值的差异(如果有的话)指示温度变化的量(如果有的话)。温度敏感振荡器的输出信号可使用各种频率。在一些实施例中,温度敏感振荡器的输出信号具有5mhz的频率。
为了降低功耗,控制器20使用信号20c来关断温度敏感振荡器直到需要确定温度。此时,如上所述,控制器20使用信号20c将温度敏感振荡器接通一段时间(例如,τ)以执行温度测量。一旦温度测量已结束,则控制器20断开温度敏感振荡器。图3示出了与该操作序列对应的波形。波形80对应于信号20c,而波形85描绘温度敏感振荡器的输出信号。在一些实施例中,测量温度的时间段(对温度敏感振荡器的输出信号的周期进行计数)是可编程的(例如,通过使用配置寄存器35(参见图1))。此外,在一些实施例中,温度测量之间的时间段是可编程的(例如,通过使用配置寄存器35(参见图1))。
一般来说,校准lf振荡器15的过程包括基础校准、温度测量和重新校准。图4示出整个过程的流程图100(图5-7提供每个子过程的细节)。参考附图,在105处,执行lf振荡器15的基础校准。如上所述,该基础校准测量温度并确定finetrim的初始值。如上所述,finetrim的值被用于校准lf振荡器15。
如上所述,lf振荡器15的输出信号15的频率响应于温度变化而改变。在110处,检测温度变化(如果有的话)。如上所述,可以使用温度传感器30(例如,包括温度敏感振荡器)来确定温度的变化(如果有的话)。将温度变化的绝对值与阈值进行比较。在一些实施例中,该阈值是可编程的(例如,通过使用配置寄存器35)。例如,该阈值可以被编程(或根据需要固定)为3℃、2℃或其他期望值。
参考温度变化与阈值的比较,如果温度变化的绝对值超过阈值,则在115处执行重新校准。阈值越小,lf振荡器15的校准越频繁,因此输出信号15a的频率越精确。另一方面,假如校准lf振荡器15需要使用hf振荡器25并因此消耗功率,则较大的阈值权衡输出信号15a的频率的精度和信号发生电路10的功耗。
重新校准之后(如果有的话),该过程在120处被延迟一段时间。在该延迟时间段之后,在110处再次检测温度变化。在一些实施例中,该延迟时间段是可编程的(例如,通过使用配置寄存器35)。延迟时间段越短,lf振荡器15的校准对温度变化的响应越多,反之亦然。另一方面,假如检测温度变化和校准lf振荡器15需要使用hf振荡器25和温度传感器30并且因此消耗功率,则较大的延迟时间段权衡响应性和信号发生电路10的功耗。
图5示出了根据示例性实施例的基础或初始校准过程的流程图120。在125处,hf振荡器25启动并允许稳定和产生输出信号25a。接下来,计算与输出信号15a的长周期和短周期相对应的输出信号25a的周期计数。换句话说,在130处,lf振荡器15的输出信号15a的周期被编程为对应于最长期望周期的值(例如,对应于预期作为温度变化的函数所遇到的最低频率flf的周期)。为了执行计数,控制器20向lf振荡器15提供二进制1作为控制信号20e。输出信号25a的周期被计数以产生数值countmax(输出信号15a的更长周期导致被计数的输出信号25a的更多周期,因此标记为countmax)。
类似地,在135处,lf振荡器15的输出信号15a的周期被编程为对应于最短期望周期的值(例如,对应于预期作为温度变化的函数所遇到的最高频率flf的周期)。为了执行计数,控制器20向lf振荡器15提供二进制0作为控制信号20e。输出信号25a的周期被计数以产生数值countmin(输出信号15a的更短周期导致被计数的输出信号25a的更少周期,因此标记为countmin)。需注意,在一些实施例中,计数的次序可根据需要颠倒,即先测量countmin,然后测量countmax。
为了产生finetrim的初始值,计算作为countmax和countmin之间的差值的数值diff,即
diff=countmax-countmin.
finetrim的初始值finetriminit计算如下:
finetriminit=(countnom-countmin)/diff,
其中countnom表示对应于输出信号15a的期望周期的计数(即countnom对应于在对应于期望频率flf的时间段内被计数的输出信号25a的周期数)。finetrim的初始值finetriminit被用于将频率flf微调(或调整或改变或控制或更改)到期望值(或在实际实施方式中大致为期望值)。结果,lf振荡器15被校准。
如上所述,输出信号15a的频率即flf作为温度的函数而变化。如上所述,校准程序检测温度变化(如果有的话),以确定是否应执行重新校准。图6描绘了根据示例性实施例的用于检测温度变化的过程的流程图150。
在155处,启动温度敏感振荡器(例如,如上所述包含在温度传感器30中)并使其稳定。在157处,执行温度敏感振荡器的周期计数。更具体地,温度敏感振荡器首次运行时(或者当执行基础校准时),对温度敏感振荡器在给定时间段(tmeas)内的周期数目进行计数,并将所得数目保存为n1。随后当温度敏感振荡器在运行时,对温度敏感振荡器在该时间段(tmeas)内的周期数目进行计数,并将所得数目保存为n2。在温度敏感振荡器在运行且温度变化大于阈值的每个后续时间,n1被设置为当前的n2值,并且测量n2的新值。
在示例性实施例中,温度敏感振荡器在运行以便测量计数(n1,n2)的时间段(tmeas)是可编程的(例如,通过使用配置寄存器35(参见图1))。例如,在一些实施例中,(tmeas)被选择为对应于温度敏感振荡器的期望或给定周期数目(nmeas),例如50(即nmeas=50)。
再次参考图6,在160处,将当前计数(n2)与先前计数(n1)进行比较。为了确定温度变化,使用计数的相对值,而不是使计数与实际温度值相关。更具体地,计算量值(n1.n2.ktemp)并与(n2-n1)的绝对值|n2-n1|进行比较。通过表征温度敏感振荡器来选择量值ktemp,使得n1和n2的标称值产生期望的温度变化阈值(例如,如上所述的2℃、3℃等的温度变化)。
如果(n1.n2.ktemp)大于|n2-n1|,则温度已经发生了足够的变化,以保证重新校准。否则,不执行重新校准。例如,假设n2=7629,n1=7660,以及ktemp=6.2×10-7。换句话说,(n1.n2.ktemp)=36,并且|n2-n1|=31。假定(n1.n2.ktemp)大于|n2-n1|,将不执行重新校准。
在一些实施例中,校正可被应用于所测量的计数值。校正可在nmeas相对较小(与用于lf振荡器15的校准的finetrim中的位数所表示的周期数相比)的情况下使用。例如,考虑finetrim包括13位的情况,这意味着应需要总共8192(213)个周期来利用所述位获得finetrim抖动中的精确频率。当较少数量的周期用于温度计数测量的nmeas(例如,50)时,测量时间段可能略微偏离。例如,如果finetrim值为0.5703,则50个周期的测量时间段将提供0.56或0.58的抖动。在此情况下,finetrim中的周期数目(由控制器20提供,并在下面详细讨论)在测量时间段期间进行计数并用于计算实际抖动比。实际抖动比和测量抖动比(finetrim)之间的差值由温度检测算法用于校正所测得的计数。在所描述的示例性实施例中(flf中的3%频率变化),一个周期的最大时间段将比30.518μs(1/32.768khz)长大约3%,而最小时间段将比30.518μs短大约3%。3%的变化本身从一部分到另一部分而略有不同。lf振荡器15的每个周期是长周期或短周期(响应于提供给lf振荡器15的位模式)。抖动是指以某一比率在长周期和短周期之间交替的输出信号15a的时间段。例如,对于finetrim,0.5的抖动比(finetrim)意味着来自lf振荡器15的每隔一个周期(everyothercycle)为长周期,而其他周期为短周期。作为另一示例,0.33的抖动比(finetrim)将意味着两个连续的周期将是短周期,而第三个周期将是长周期。
在170处,计数被更新。更具体地,如上所述,当所测得的计数差(n2-n1)大于(n1.n2.ktemp)时,n2的值被保存为(分配给)n1。(在随后的温度变化检测中,计算出与当时温度相对应的新值n2)。
如上所述,在一些实施例中,信号发生电路10可与具有各种功率或能量状态的处理电路系统集成在一起或相关联。在这些实施例中,在执行温度变化检测时,处理器和/或整个电路系统的其他部分(例如,ic)可以处于睡眠模式。
在示例性实施例中,如上所述,如果温度变化超过阈值,则执行lf振荡器15的重新校准。图7描绘了根据示例性实施例的用于重新校准lf振荡器15的过程的流程图200。
在205处,hf振荡器25被启动并被允许稳定和产生输出信号25a。接下来,在210处,在指定或期望的时间段期间对输出信号25a的周期进行计数,以产生计数值countmeas。在示例性实施例中,用于对输出信号25a的周期进行计数的时间段是可编程的(例如,通过使用配置寄存器35(参见图1))。
再次参考图7,在215处,对所测得的计数(countmeas)应用校正。与finetrim信号表示的值(例如,13位finetrim的213或8192个值)的数量相比较,在对(hf振荡器25的)输出信号25a的周期进行计数期间(lf振荡器15的)输出信号15a的周期数相对较小的情况下,应用该校正。更具体地,经校正的计数countcorrected被计算为countcorrected=countmeas+diff×(finetrim-(countones/calibration_period)),其中countones表示控制器20在测量时段期间提供给lf振荡器15的二进制1的数目,并且calibration_period表示用于测量给定计数的lf周期的数目。calibration_period的值可根据诸如期望的精度水平对hf振荡器25的功耗等因素而变化。例如,在一些实施例中,calibration_period可具有为200的数值。作为另一示例,在一些实施例中,calibration_period可具有为300的数值。一般来说,calibration_period值被选择成使得在满足运行hf振荡器25所需或指定的功耗水平的同时提供期望的或指定的精度水平。
在220处,计算finetrim的新值。更具体地,finetrim的新值finetrimnew被计算为{finetrimprev+(countnom-countcorrected)/diff},其中finetrimprev表示finetrim的先前值(例如,上一次执行重新校准过程时)。finetrim的新值(即finetrimnew)是控制lf振荡器15的长周期和短周期的数目以解决温度变化的新抖动比。
再次参考图1,如上所述,控制器20使用信号finetrim来向lf振荡器15提供控制信号20a,以便微调输出信号15a的频率。在一些实施例中,控制器20使用位模式发生器来提供控制信号20a。位模式发生器可被包含在控制器20中,或者可替代地可被实现为单独的电路。图8示出根据示例性实施例的位模式发生器300的电路布置。
位模式发生器300包括存储finetrim的寄存器310。位模式发生器300也包括累加器305。响应于时钟信号(lf振荡器15的输出信号15a),累加器305累积或存储加法器315的输出(标记为315a)。累加器305的输出305a馈送加法器315的一个输入。寄存器310向加法器315的另一输入提供输出信号310a(finetrim)。
加法器315的进位(carry-out)输出(标记为315b)馈送触发器320的输入。lf振荡器15的输出信号15a为触发器320提供时钟。触发器320的输出馈送多路复用器(mux)325的一个输入。二进制0馈送mux325的第二输入,而二进制1馈送mux325的第三输入。由控制器20提供的控制信号20e(未在图1中示出)可以在控制器20的内部,或者如果位模式发生器被包含在控制器20中,则相反可能在控制器20外部,其构成mux325的选择信号。换句话说,控制器20可能使mux325提供二进制0(如上所述引起输出信号15a的短时间振荡)、二进制1(如上所述引起输出信号15a的长时间振荡)或触发器320的输出(基于finetrim的值来微调输出信号15a的频率)作为位模式发生器300的输出。
需注意,位模式发生器300仅表示微调输出信号15a的频率的一种方式。通常,如本领域普通技术人员所理解,控制器20中的电路系统可以以各种方式来实现。例如,在一些实施例中,可以使用一个或多个有限状态机(fsm)。作为另一示例,在一些实施例中,可以使用定制的算术逻辑单元(alu)。作为另一示例,可以使用执行在易失性存储器(例如,随机存取存储器(ram))或非易失性存储器(例如,只读存储器(rom)、可编程rom、闪存)等或两者的组合中编码的指令的控制器或处理器。因此,可以使用硬件、固件或软件(或其混合物)的方案来实现控制器20的功能。如本领域普通技术人员所理解,实施方式的选择取决于各种因素。这些因素包括设计规格、性能规格、成本、ic或器件面积、可用技术(诸如半导体制造技术)、处理能力、灵活程度、目标市场、目标终端用户等。
如上所述,在一些实施例中,信号发生器电路10(或多个信号发生器电路10)可以与其他电路系统相关联,例如被集成在ic内并耦合到其他电路系统(无论是在ic内还是在ic外部)。例如,在一些实施例中,一个或多个信号发生器电路10可被包含在mcu中。图9示出了用于此配置的电路布置500。
电路布置500包括构成或包括mcu的ic505。ic505包括使用链路560彼此进行通信的多个块(例如,处理器565、数据转换器605、i/o电路系统585等)。在示例性实施例中,链路560可以构成耦合机构,诸如用于传送信息(诸如数据、命令、状态信息等)的总线、一组导体或一组半导体。
ic505可以包括耦合到一个或多个处理器565、时钟电路系统575以及电源管理电路系统或pmu580的链路560。在一些实施例中,处理器565可以包括用于提供计算功能的电路系统或块,诸如中央处理单元(cpu)、算术逻辑单元(alu)等。在一些实施例中,另外或作为替代,处理器565可以包括一个或多个dsp。根据需要,dsp可以提供各种信号处理功能,诸如算术功能、滤波、延迟块等。
时钟电路系统575可以产生促成或控制ic505中的一个或多个块的操作的正时(timing)的一个或多个时钟信号。时钟电路系统575也可以控制使用链路560的操作的正时。在一些实施例中,时钟电路系统575可以经由链路560向ic505中的其他块提供一个或多个时钟信号。
在一些实施例中,pmu580可以相对于电路的一部分或电路的所有组件降低设备(例如,ic505)的时钟速度、关断时钟、降低功率、关断电源或前述的任何组合。此外,pmu580可以响应于从非激活状态转换到激活状态(诸如当处理器565从低功率或空闲或睡眠状态转换到正常操作状态时)(诸如上述的操作状态或操作模式(em0、em1、em2、em3))而接通时钟、增加时钟速率、接通电源、增加功率或上述的任何组合。
链路560可以通过串行接口595耦合到一个或多个电路600。通过串行接口595,耦合到链路560的一个或多个电路可以与电路600通信。如本领域普通技术人员所理解,电路600可以使用一个或多个串行协议(例如,smbus、i2c、spi等)进行通信。
链路560可以通过i/o电路系统585耦合到一个或多个外围设备590。通过i/o电路系统585,一个或多个外围设备590可以耦合到链路560,并因此可以与耦合到链路560的其他块(例如,处理器565、存储器电路625等)进行通信。
在示例性实施例中,外围设备590可包括各种电路系统、块等。示例包括i/o装置(小键盘、键盘、扬声器、显示装置、存储装置、定时器等)。需注意,在一些实施例中,一些外围设备590可以在ic505的外部。示例包括小键盘、扬声器等。
在一些实施例中,对于一些外围设备,i/o电路系统585可以被旁通/绕开(bypassed)。在这些实施例中,一些外围设备590可以耦合到链路560并与其通信而无需使用i/o电路系统585。需注意,如上所述,在一些实施例中,这些外围设备可以在ic505的外部。
链路560可以经由数据转换器605耦合到模拟电路系统620。数据转换器605可以包括一个或多个adc605a和/或一个或多个dac605b。adc605a从模拟电路系统620接收模拟信号,并将模拟信号转换为数字格式,它们将该数字格式的信号传送给耦合到链路560的一个或多个块。
模拟电路系统620可以包括提供和/或接收模拟信号的各种各样的电路系统。如本领域普通技术人员所理解,示例包括传感器、换能器等。在一些实施例中,模拟电路系统620可以根据需要与ic505外部的电路系统通信以形成更复杂的系统、子系统、控制块和信息处理块。
控制电路系统570耦合到链路560。因此,控制电路系统570可以与耦合到链路560的各种块通信和/或控制这些块的操作。此外,控制电路系统570可以促成耦合到链路560的各个块之间的通信或协作。
在一些实施例中,控制电路系统570可以启动或响应复位操作。如本领域普通技术人员所理解,该复位操作可能引起耦合到链路560的一个或多个块、ic505的一个或多个块等的复位。例如,控制电路系统570可能引起pmu580和诸如信号发生器电路10的电路系统复位到初始状态。
在示例性实施例中,控制电路系统570可以包括各种类型的电路系统和电路系统的各种块。在一些实施例中,控制电路系统570可以包括逻辑电路系统、fsm或其他电路系统以执行各种操作(诸如上述操作)。在一些实施例中,信号发生器电路10的控制电路系统570和控制器20(未示出)可以共享电路系统,或者可以根据需要将控制器20包含在控制电路系统570内。
通信电路系统640耦合到链路560并且也耦合到ic505外部的电路系统或块(未示出)。通过通信电路系统640,耦合到链路560(或通常为ic505)的各种块可以经由一个或多个通信协议与外部电路系统或块(未示出)进行通信。示例包括usb、以太网等。如本领域普通技术人员所理解,在示例性实施例中,可以根据一些因素(诸如给定应用的规格)使用其他通信协议。在示例性实施例中,可以使用诸如接收器、发射器和/或收发器的射频(rf)电路系统并将其包含在通信电路系统640内。
如上所述,存储器电路625耦合到链路560。因此,存储器电路625可以与耦合到链路560的一个或多个块(诸如处理器565、控制电路系统570、i/o电路系统585等)进行通信。如本领域普通技术人员所理解,存储器电路625为ic505中的各种信息或数据(诸如操作数、标志、数据、指令等)提供存储。存储电路625可根据需要支持诸如双数据速率(ddr)、ddr2、ddr3等各种协议。在一些实施例中,存储器读取和/或写入操作涉及使用ic505中的一个或多个块,诸如处理器565。直接存储器访问(dma)布置(未示出)允许在某些情况下提高存储器操作的性能。更具体地,dma(未示出)提供了用于在数据的来源或目的地与存储器电路625之间直接执行而不是通过诸如处理器565的块来执行存储器读和写操作的机制。
存储器电路625可包括各种存储器电路或块。在所示的实施例中,存储器电路625包括非易失性(nv)存储器635。除此之外或可替代地,存储器电路625可以包括易失性存储器(未示出)。nv存储器635可以用于存储与ic505中的一个或多个块的性能或配置有关的信息。例如,如上所述,nv存储器635可以存储与信号发生器电路10相关的配置信息。此配置信息可以在期望的时间(例如,在复位或上电时)使用,以通过对配置寄存器35(未示出)进行编程来对信号发生器电路10的各种特征和属性进行编程。
如上所述,在一些实施例中,信号发生器电路10可以用在rtc中。lf振荡器15由于上述校准程序而实现的提高精度导致rtc的更好性能。图10描绘了根据包括信号发生器电路10的示例性实施例的包括rtc705的电路布置700。rtc705经由链路40耦合到主机710并与主机710进行通信。
信号发生器电路10向rtc705提供输出信号15a。rtc705使用输出信号15a作为基准信号来运行实时时钟。例如,在一些实施例中,输出信号15a可以具有32.768khz的频率。rtc705可以使用15个级(stages)的级联(其被分成两段(divide-by-two))以从输出信号15a产生1hz信号。然后可使用具有1秒周期的1赫兹信号以用于计时目的。
rtc705可经由链路40向主机710提供信息,诸如正时信息(日期、星期几、月份、年份等)和/或告警信息。主机710可以根据需要使用链路40对信号发生器电路10、rtc705或两者进行编程。信号发生器电路10中的lf振荡器15(未示出)通过上述校准程序所实现的提高精度改善了rtc705提供给主机710的信息的质量。
上面所述并且在示例性实施例中使用的各种电路和块可以以各种方式并且使用各种电路元件或块实现。例如,控制器20、位模式发生器300、rtc705和主机710通常可以使用数字电路系统来实现。如本领域普通技术人员所理解,该数字电路系统可以根据需要包括诸如门、数字mux、锁存器、触发器、寄存器、有限状态机(fsm)、处理器、可编程逻辑(例如,现场可编程门阵列(fpga)或其他类型的可编程逻辑)、算术逻辑单元(alu)、标准单元、定制单元等的电路元件或块。此外,根据需要,可以包括模拟电路系统或混合信号电路系统或两者,例如功率转换器、分立器件(晶体管、电容器、电阻器、电感器、二极管等)等。如本领域普通技术人员所理解,模拟电路系统可以包括偏置电路、解耦电路、耦合电路、电源电路、电流镜、电流源和/或电压源、滤波器、放大器、转换器、信号处理电路(例如,乘法器)、检测器、换能器、分立组件(晶体管、二极管、电阻器、电容器、电感器)、模拟mux等。如本领域普通技术人员所理解,除了如上所述的模拟电路和数字电路之外,混合信号电路系统可以包括模数转换器(adc)、数模转换器(dac)等。模拟和/或混合信号电路系统可以用于实现lf振荡器15、hf振荡器25和温度传感器30。如本领域普通技术人员所理解,针对给定实施方式的电路系统的选择取决于各种因素。这些因素包括设计规格、性能规格、成本、ic或器件面积、可用技术(诸如半导体制造技术)、目标市场、目标终端用户等。
参考附图,本领域普通技术人员应注意到,所示的各个块可能主要描绘概念功能和信号流。实际电路实施方式可能或可能不包含用于各个功能块的单独可识别的硬件并且可能或可能不使用所示出的特定电路系统。例如,根据需要可以将各个块的功能组合为一个电路块。而且,根据需要,单个块的功能可以在几个电路块中实现。电路实施方式的选择取决于各种因素,例如用于给定实施方式的具体设计和性能规格。除了本公开的实施例之外,其他修改和替代实施例对于本领域普通技术人员应是显而易见的。因此,本公开内容教导本领域技术人员根据示例性实施例执行所公开概念的方式,并且仅解释为是例示性的。在适用的情况下,如本领域普通技术人员所理解,附图可能是或可能不是按比例绘制的。
所示和所述的特定形式和实施例仅构成示例性实施例。在未脱离本公开的范围的情况下,本领域技术人员可以对部件的形状、尺寸和布置进行各种改变。例如,本领域技术人员可以用等效元件替代所示和描述的元件。此外,在不脱离本公开的范围的情况下,本领域技术人员可以独立于其他特征的使用而使用所公开概念的某些特征。