如何使用 Python 计算晶体负载电容器
UliEngineering 库提供了一种方便的方法来计算哪些负载电容器适合给定的晶体振荡器电路。
现在你需要找出以下参数:
- 晶体数据表中的负载电容。典型值为
7pF或12.5pF或20pF - 你的晶体连接的 IC(例如你的以太网 PHY 或 RTC)数据表中的引脚电容
CPin。典型值在0.5pF到5pF之间 - 估计板上的杂散电容
CStray(即每个晶体振荡器引脚到 PCB 地的电容)。你通常只在这里做一个有根据的猜测,所以这里有一些起始值:- 从
3pF开始 - 如果你有4+ 层板(相对于双层板),加
2pF(因为 4 层板上到下方地平面的距离小得多 - 如果你有长走线 >1cm(应不惜一切代价避免到晶体的长走线!),对于 2 层板超过 1cm 的每 cm 走线加
4pF,或对于 4+ 层板超过 1cm 的每 cm 走线加6pF
- 从
现在我们将这些值插入 UliEngineering 并计算负载电容:
compute_crystal_load_caps.py
from UliEngineering.Electronics.Crystal import load_capacitors
from UliEngineering.EngineerIO import auto_print
auto_print(load_capacitors, cload="9 pF", cpin="1 pF", cstray="5 pF")这将打印 7.00 pF
如果你只想要值而不是自动格式化的字符串,直接使用 load_capacitors():
compute_crystal_load_caps_usage.py
capacitor = load_capacitors(cload="9 pF", cpin="1 pF", cstray="5 pF")在此示例中,我们将得到 capacitor == 7e-12。
注意 7pF 意味着你必须在晶体的每一侧添加一个 7pF 电容器。我建议这里只使用 NP0/C0G 电容器,因为 X5R/X7R 电容器和其他高 k 介质陶瓷电容器不仅温度系数高,而且不太适合模拟应用,因为其电容会随施加的电压而变化。
注意我们在上面的 PCB 杂散电容估计中使用了很多猜测,所以**如果你需要高精度,**你需要调整晶体振荡器以最适合你的特定板。有关进一步阅读,请参见我们的后续文章如何调整晶体振荡器以获得最佳频率精度。
Check out similar posts by category:
Electronics, Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow