0
VCO에 AD5791 및 LPC1768이 있습니다. 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 운전은 어떻게하고 있습니까? –