0
我有一個AD5791和LPC1768的VCO。我可以讀取和寫入AD5791的DAC寄存器,但無法修改輸出頻率或電壓。當AD5791直接連接到電源時,我可以按預期修改頻率。因此我認爲這是一個軟件問題。我的代碼在這裏:帶軟件問題的VCO
#include "mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);
DigitalOut LDAC(p9);
DigitalOut Reset(p11);
DigitalOut CLR(p10);
int main()
{
spi.format(8,0);
spi.frequency(10000); // you can speedup later
cs = 1;
Reset = 0;
wait_us(1);
LDAC = 0;
CLR = 1;
Reset = 1; // the chip is reset now
cs = 0;
spi.write(20);
spi.write(0);
spi.write(0);
cs= 1; // this will activate dac
cs = 0;
spi.write(0x14);
spi.write(0xCC);
spi.write(0xCD);
cs = 1; // set output register - shall output some value
do{
}while(1); // wait forever to test the output value
}
任何輸入將不勝感激!謝謝!
如果我的理解正確,可以通過調整電源電壓來更改VCO頻率,但不能通過寫入控制它的DAC進行操作。 DAC可能是雙倍(甚至是多倍)緩衝的,因此它需要額外的時鐘來實際改變輸出?芯片是否處於正確模式? –
@Chris是的,那是目前的事態!我認爲spi.write()可能會錯誤地設置時鐘。我不知道如何解決這個問題。在AD5791數據表中,我有時序圖,但不知道如何實現它。我以前從來沒有碰到過。另一方面,我確信芯片在初始化時處於正確的狀態(https://wiki.analog.com/resources/quick-start/ad5791)。然而,這對我來說很新穎 - 所以我可能沒有正確初始化芯片(AD5791)。你怎麼看? – user3329712
你最近怎麼駕駛/ LDAC? –