Answers:
当我需要在微控制器之间共享时钟时,我要做的就是让晶体驱动一个微控制器上的振荡器,然后使用该微控制器上的振荡器输出引脚(通常为CLKOUT或OSCOUT)来驱动第二个微控制器。
我希望在试图用同一晶振来驱动两个振荡器时会遇到问题,但除了两个处理器之间所需的较长PCB走线的电容会导致故障之外,别无其他原因。
模拟此电路 –使用CircuitLab创建的原理图
那不是您想要的。当您使用晶振形成振荡器时,您使用的是微控制器内部的逆变器来驱动晶振。如果您将两个Micros都连接到同一个晶体,则它们会打架并且不起作用。
因此,您将需要选择两个微控制器之一作为晶体驱动器(配置见数据手册第6.2.6节),另一个微控制器使用外部时钟输入(数据手册第6.2.1节)。然后像这样更改您的原理图连接:
模拟此电路 –使用CircuitLab创建的原理图
或者,如果需要对称,则可以使用外部振荡器而不是晶体。然后两者都可以在外部时钟模式下运行。
这种方法的问题在于,与第二个振荡器输入的连接将影响该引脚上的电容,并稍微改变频率并减少晶振。不过,这可能无关紧要,并且不太可能防止振荡。当我需要为产品执行此操作时,我在两个MCU中都使用了晶体振荡器模块。
如果像我使用的PIC一样,您将拥有一个XTALout和XTALin,它们之间的实际XTAL和电容(可能约为22pf)都接地了。尝试将一个的XTALout连接到另一个的XTALin。
用晶体制成振荡器,并建议使用BarsMonster这样的逆变器,并将其馈入扇出分配缓冲器IC的输入中。每个扇出的时钟输入一个扇出缓冲器输出。
在不知道您使用的是什么微米的情况下,我真的不能推荐特定的零件,但是您想从这些过滤器开始: