关于时钟芯片ZLE30252使用记录

分享一个高精度低抖动3路可配置时钟芯片ZLE30252的使用.

电路这里需要一个外部晶振,比如114M有源晶振,然后加上各种ldo电源,以及一些上下拉配置即可。

这里主要说下如何进行硬件配置。
zle30252自带spi接口,可以外挂eeprom,或者mcu。

当外挂eeprom时候,需配置成master模式,通过AC【1:0】IF【1:0】,datasheet手册可查到。给eerpom烧写的image文件如何生成,答案是通过官方提供zl30250 GUI工具生成。问题在于要通过外部烧写工具给
eeprom把image烧写进去。

重点来了,完全可以利用spi接口,用mcu去配置zle30252.那么需要先通过AC【1:0】IF【1:0】将zle30252配置成slave模式,这样mcu就是master。然后在用GUI工具生成mfg文件,这个文件描述了对寄存器操作的流程,但不是代码。这个文件中列出了所有要操作的寄存器。我看了下大约有近1000个寄存器。并且需要将地址和data单独摘录出,放在程序的数组中,这里就需要编写几个python工具,将地址和data取出,放在程序中。然后编写程序通过mcu将寄存器写入到zle30252中。
调试过程中可以观察spi波形,和手册的时序图对比,spi write的过程是先写命令,然后是16位地址,最后是数据。

最后,保证波形正确后,就肯定可以正常工作,输出想要的高质量时钟。我用gd32的spi和spidma方式实现了spi操作,实测输出时钟波形准备。
PS:这种高精度时钟不便宜,小一百呢。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MATLAB 中读取 AVL-Cruise 计算结果,您可以按照以下步骤进行操作: 1. 调用 `avlcurise` 方法进行计算,并将结果存储在一个结构体中。例如,以下是一个示例代码: ``` data = struct('Type', 'Aircraft', ... 'Name', 'MyAircraft', ... 'Sref', 50, ... 'bref', 10, ... 'Cref', 2, ... 'Xref', 0, ... 'Yref', 0, ... 'Zref', 0, ... 'CDp', 0.02, ... 'Mach', 0.2, ... 'IYsym', 0, ... 'IZsym', 0, ... 'IYsym', 0, ... 'Cg', [0, 0, 0], ... 'Surfaces', [ ... struct('Name', 'Wing', ... 'Nchord', 15, ... 'Cspace', 'Cosine', ... 'Chord', [1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5], ... 'Yle', [0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3, 2.7, 2.4, 2.1, 1.8, 1.5], ... 'Zle', [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1, 1, 1, 1, 1], ... 'Angle', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... 'Nspan', 10, ... 'Sspace', 'Cosine', ... 'Sweep', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... 'Nchordwise', 3, ... 'Cname', 'Wing', ... 'Cgain', 1, ... 'Xhinge', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... 'HingeVec', [0, 1, 0], ... 'SgnDup', 1, ... 'SgnDlw', 1, ... 'FlapType', 'Plain', ... 'FlapAngle', 0, ... 'SgnTwist', 1, ... 'Twist', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... 'SgnChord', 1) ... ]); results = avlcurise(data); ``` 在这个示例中,`results` 是一个包含 AVL-Cruise 的计算结果的结构体。 2. 使用 `fieldnames` 函数查看结果结构体的字段列表。例如,以下是一个示例代码: ``` fields = fieldnames(results); ``` 其中,`fields` 是一个包含结果结构体的字段名称的字符串数组。 3. 使用点符号或括号运算符访问结果结构体中的字段。例如,以下是一个示例代码,可以访问结果结构体中的 `CL` 字段: ``` CL = results.CL; ``` 在这个示例中,`CL` 是一个包含计算结果中的升力系数的数组。 注意:在访问结果结构体中的字段时,您需要确保字段名称与结果结构体中的字段名称完全匹配。否则,您可能会遇到未定义变量或结果不正确的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值