这个比较简单,就不专门出教程了,我给你贴代码进行说明。
我们提供的DEMO4同时提供了OSC和PLL的用法示便。
1. ELF2 器件包含一个 CMOS 环形振荡器, 环形振荡器的输出可以作为全局时钟的输入, 也可以作为 PLL的参考时钟。 环形振荡器在全局时钟路径上, 插入的可配置分频器可以对 OSC 的频率进行 1-128 任意整数分频。 可以动态配置分频系数, 不使用时可以关闭 OSC 以节省功耗。环形振荡器中心频率 287MHz, 芯片个体之间频率误差较高, 误差范围达到 30%。 即 每一片EF2之间的频率可能在这个频率附近30%范围内,但可以校准。
它有一些注意事项:
1. OSC、 OSCDIV 输出可以接 PLL, 但不能直接 Fabric, 可以通过 GCLK 连接到 Fabric。
2. ELF2系列器件不建议使用OSC+PLL的组合方式, 建议使用内部的EF2_PHY_OSCDIV (rstn, stdby, div,clko)。我们的示例工程就是这么个用法。
3. OSC 输出时钟最大偏差在 30%以内, 对时钟精度要求较高的场景不建议使用。
2. 关于PLL的例化其实没有什么要说的,其实在我们的很多demo中都有PLL的用法,
PLL的端口例表如下:
比较简单的如下:
而Demo4中的PLL代码由于进行了动态调相,所以看起来相对复杂。
相较于上面主要是下面这几个端口的区别:
这个串口实验对时序要求比较高,我首先测了一下内部晶振,改了一下频率参量,终于成功了