あなたの一日がうまくいくことを願っています。AD5791 の出力電圧に依存する特定の周波数を出力するために、AD5791 に信号を送信するように LPC1768 をプログラミングしています。回路図を添付しました。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);
}
}`