用两个微米共享一个晶体的原理图是什么?


20

如何在两个微控制器之间共享一个晶体(不是完整的振荡器模块)?可以正常连接第一个微控制器的一切并将其XO直接连接到第二个微控制器的XI吗?我希望将Micros非常紧密地放在板上。

Answers:


17

当我需要在微控制器之间共享时钟时,我要做的就是让晶体驱动一个微控制器上的振荡器,然后使用该微控制器上的振荡器输出引脚(通常为CLKOUT或OSCOUT)来驱动第二个微控制器。

我希望在试图用同一晶振来驱动两个振荡器时会遇到问题,但除了两个处理器之间所需的较长PCB走线的电容会导致故障之外,别无其他原因。

原理图

模拟此电路 –使用CircuitLab创建的原理图


1
一些微控制器确实有一个单独的时钟输出引脚,该引脚未连接至晶振。
joeforker 2011年

2
MSP430处理器可以从其I / O引脚路由任何内部时钟(ACLK,SMCLK或MCLK)。我使用ACLK out(32768Hz)在主电源关闭的时候向GPS设备提供RTC备用时钟。
uɐɪ

7

那不是您想要的。当您使用晶振形成振荡器时,您使用的是微控制器内部的逆变器来驱动晶振。如果您将两个Micros都连接到同一个晶体,则它们会打架并且不起作用。

因此,您将需要选择两个微控制器之一作为晶体驱动器(配置见数据手册第6.2.6节),另一个微控制器使用外部时钟输入(数据手册第6.2.1节)。然后像这样更改您的原理图连接:

原理图

模拟此电路 –使用CircuitLab创建的原理图

或者,如果需要对称,则可以使用外部振荡器而不是晶体。然后两者都可以在外部时钟模式下运行。


如果要获得晶体可预测性的全部好处,则一定需要在这种设置中调整上部电容器。
2015年

@Asmyldof我绝对需要晶体的定时精度。也许需要对称解决方案?如何连接外部振荡器?
GisMofx

1
因此,如果C2 = 10pF(由于CLKI输入而假定负载约为10pF),并保持C1 = 22pF,对吗?
MarkU

1
不,它会像使用任何外部时钟一样直接出现。
休斯顿·福特尼

1
@GisMofx我标记了它要求合并答案,以便将其移至其他问题,以便将其保留。
路人2015年

3

这种方法的问题在于,与第二个振荡器输入的连接将影响该引脚上的电容,并稍微改变频率并减少晶振。不过,这可能无关紧要,并且不太可能防止振荡。当我需要为产品执行此操作时,我在两个MCU中都使用了晶体振荡器模块。


2
振荡器输出线上的一点额外电容并不是什么大问题。主要是晶体输出端的电容,即振荡器输入线,在晶体上形成负载,需要大致正确才能在范围内获得合适的频率。如果需要广泛分配时钟,请将CMOS缓冲门放置在靠近晶体的微控制器上。
奥林·拉斯洛普

对于EMI来说,避免跨板路由时钟信号也是一个好主意。
joeforker 2014年

3

您可以使用chefao反相器芯片(0.1 $)或专用时钟发生器(稍贵)来构建振荡器,并将该时钟馈送到两个uC。

简单地将晶体连接到两者将不起作用(可靠)。


2

如果像我使用的PIC一样,您将拥有一个XTALout和XTALin,它们之间的实际XTAL和电容(可能约为22pf)都接地了。尝试将一个的XTALout连接到另一个的XTALin。


建议使用一个小型串联电容器从第一个振荡器的输出驱动第二个振荡器。
stevenvh 2012年

1

用晶体制成振荡器,并建议使用BarsMonster这样的逆变器,并将其馈入扇出分配缓冲器IC的输入中。每个扇出的时钟输入一个扇出缓冲器输出。

在不知道您使用的是什么微米的情况下,我真的不能推荐特定的零件,但是您想从这些过滤器开始:

  • 类型:扇出缓冲器(分配)
  • 电路数:1
  • 比率-输入:输出:1:2

1
3000个零件的列表并不是真正有用的。选择其中之一,并解释为什么这是一个不错的选择。
stevenvh 2012年

我不愿直接在答案中添加特定的部分,而不知道他正在使用什么逻辑级别等。我将输入一些搜索过滤器信息以帮助缩小范围。对于它的价值,我目前正在使用带有TI CDCLVC1102的振荡器。看来您可以将CDC3RL02TXCO一起使用,也不要使用任何逆变器。
Joe Baker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.