所以我有一个任务来编写一些伪代码来编程一个频率合成器。有三个主要端口可供我使用,'启用','数据'和'时钟'。用外部时钟嵌入式编程合成器
设备初始关闭,当启用(低电平有效)被触发时,时钟将循环(经过一些最小设置时间后)。除了延迟,我将有一个函数SendCommand(uint32_t addr,uint16_t data)。
我遇到的问题是,在给我的规范中,数据在下降时钟边沿是“读取”。这意味着数据按参数中定义的地址逐个读入到寄存器中,并一直保持读取状态,直到整个16位字被写入寄存器。时钟周期约为10MHz。我的问题是:
- 如何模拟时钟以10MHz(100 ns /周期)循环?
- 如何在所述时钟的下降沿执行“数据读取”。
现在忽略程序的写作方面,它仍然只是伪代码。
你应该从写作开始,而不是阅读。但它听起来像你有类似于“串行外设接口”或“SPI”的东西。要以10MHz的时钟频率完成这项工作,您可能需要一个硬件SPI引擎,如许多微控制器中所发现的 - 如果您的系统没有,可以使用一个远程微控制器作为代表。但是,如果你不需要高性能,大多数(尽管不是全部)这样的设备将以更低的时钟速率接收数据。如果你有一个真实的(非USB)并行接口,软件中的单个信号是一种常见的技术。 – 2014-10-07 21:10:18