0

あなたの一日がうまくいくことを願っています。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);
}

}`

4

0 に答える 0