gpt4 book ai didi

c - 带外部时钟的合成器的嵌入式编程

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:17 24 4
gpt4 key购买 nike

所以我的任务是编写一些伪代码来对频率合成器进行编程。我将使用三个主要端口,“启用”、“数据”和“时钟”。

设备最初是关闭的,当启用(低电平有效)被触发时,时钟将循环(在一些最小设置时间之后)。除了延迟,我还有一个函数 SendCommand(uint32_t addr, uint16_t data)。

我遇到的问题是,在给我的规范中,数据在时钟下降沿“读取”。这意味着将数据读入参数中定义的地址处的寄存器,一次一位,并一直读取,直到将整个 16 位字写入寄存器。时钟周期约为 10MHz。我的问题是:

-如何模拟时钟以 10MHz(100 ns/周期)循环?

-如何在所述时钟的下降沿执行“数据读取”。

暂时忽略程序的编写方面,它仍然只是伪代码。

最佳答案

频率合成器芯片通常使用没有 MISO 线的 SPI 接口(interface)(即只写 SPI)。 SPI是同步通信接口(interface),所以时钟频率不是关键;将在时钟信号的下降沿(在这种情况下)移入一位,但该边缘何时出现无关紧要 - 接收器将无限期等待 - 它甚至不需要固定。

10MHz 规范只是支持的最大频率,或者更准确地说,它反射(reflect)了时钟线下降沿之间的最小周期,即 1/10x106 或100 纳秒。在软件中实现 SPI 时,您将很难维持该速率。大多数微 Controller 都包含 SPI 硬件以自动输出 SPI 信号。问题What are the disadvantages of bit banging SPI/I2C in embedded applications可能是唯一的兴趣。 Here是软件 SPI 实现的示例 - 您只需要写入功能,不需要读取功能,并且您可以将其扩展到 16 位,尽管您同样可以发送两个字节。

关于c - 带外部时钟的合成器的嵌入式编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com