0

我希望你的一天一切顺利。我正在对 LPC1768 进行编程以向 AD5791 发送信号,以便根据 AD5791 的输出电压输出给定的频率。我附上了电路图。我已经能够从 LPC1768 读取和写入 AD5791。然而,当我将 VCO 连接到信号分析仪时,当我“改变”AD5791 的电压输出时,我发现峰值频率没有变化。我一直在使用 mbed 进行编程。下面是我目前正在使用的代码。输入将不胜感激。我相信问题可能在于 spi.write 是如何实现的。AD5791 需要 20 位字,LPC1768 最多只能发送 16 位字。此外,还有字节顺序的问题——但我相信我已经解决了这个问题,因为我正在按照预期的顺序读出我写给 AD5791 的内容。

#include "mbed.h"

SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);

int main()
{
spi.format(8,1);
spi.frequency(1000000);
cs=1;

while(1)
{

    cs = 0;
    spi.write(0x10);
    spi.write(0xFF);
    spi.write(0xFF);
    cs = 1;

    cs = 0; 
    int first = spi.write(0x90);
    int second = spi.write(0x00);
    int third = spi.write(0x00);
    cs = 1;

    printf("first register = 0x%X\n", first);
    printf("second register = 0x%X\n", second);
    printf("third register = 0x%X\n", third);
}

}`

4

0 回答 0