【发布时间】:2014-12-02 09:40:30
【问题描述】:
所以我的任务是编写一些伪代码来对频率合成器进行编程。我将使用三个主要端口,“启用”、“数据”和“时钟”。
器件最初处于关闭状态,当触发使能(低电平有效)时,时钟将循环(经过一些最短设置时间)。除了延迟,我还有一个函数 SendCommand(uint32_t addr, uint16_t data)。
我遇到的问题是,在给我的规范中,数据是在时钟下降沿“读取”的。这意味着数据在参数中定义的地址处被读取到寄存器中,一次一位,并且一直读取,直到整个 16 位字被写入寄存器。时钟周期约为 10MHz。我的问题是:
-如何模拟时钟以 10MHz(100 ns/周期)循环?
-如何在所述时钟的下降沿执行“数据读取”。
暂时忽略程序的编写方面,它仍然只是伪代码。
【问题讨论】:
-
你应该从写作开始,而不是阅读。但听起来你有类似于“串行外设接口”或“SPI”的东西。要以 10MHz 时钟速率执行此操作,您可能需要在许多微控制器中找到的硬件 SPI 引擎 - 如果您的系统没有,您可以使用远程微控制器作为代理。但是,如果您不需要高性能,大多数(尽管不是全部)此类设备将以低得多的时钟速率接收数据。如果您有可用的真实(非 USB)并行接口,则在软件中“位敲击”单个信号是一种常用技术。