본문 바로가기

[MODULE]/ADC

고정밀, 고속 DAC AD5791 모듈 보드 제작 및 테스트

고정밀, 고속 DAC AD5791 모듈 보드 제작 및 테스트


[DisptVelMeter] 리니어 엔코더를 이용한 변위 및 속도 측정 장치 개발 프로젝트 용으로 선정한 AD5791 를 AD/DA 모듈 핀맵에 호화되도록 제작해서 테스트해 보았다.


- 1 ppm 20-Bit, ±1 LSB INL, Voltage Output DAC

- 1MSPS Multi(±l2, +5An, +3Dig); Multi(±l2, +5An, +5Dig); Multi(±l5, +5An, +3Dig); Multi(±l5, +5An, +5Dig) 126.3mW

- AD5791 $64.58


최대 출력 속도 1MSPS 이고1ppm 20bit 해상도로 스펙은 화려하다. 그만큼 가격도 비사다. 과연 이정도의 성능이 나올까?


1 ppm resolution
1 ppm INL
7.5 nV/√Hz noise spectral density
0.19 LSB long term linearity stability
<0.05 ppm/°C temperature drift
1 μs settling time
1 nV-sec glitch impulse
Operating temperature range: ?40°C to +125°C
20-lead TSSOP package
Wide power supply range up to ±16.5 V
35 MHz Schmitt triggered digital interface
1.8 V compatible digital interface




AD5791 블록도



DAC5791 응용회로도




AD5791 타이밍도
/CS핀이 없지만 클럭출력할때 /SYNC를 Low로 해 주어야 한다. SYNC기능을 사용할 때만 필요한줄 알았는데... 클럭출력시 Low로 해 주어야 한다. DAC출력은 /LDAC 하강에지에서 동작한다. DAC출력 레지스터에 값을 써주면 된다.




DAC5971 사용시 주의사항
다른 DAC사용할때와 달리 몇가지 주의사항이 필요하다.

초기화시에 컨트롤 레지스터를 설정해 주어야 한다. 칩 디폴트로 DAC 출력이 Off로 설정되어 있기 때문에 DAC데이터 레지스터에 값을 쓰는것만으로 출력이 되지 않는다. 이부분때문에 좀 고생했다. 주의가 필요하다.


OPGND, DACTRI비트가 디폴트 값으로 1이므로 정상동작을 위해 초기화가 필요하다.





AD5791 DAC초기화 코드
컨트롤레지스터는 0x200000으로 시작하고 DAC가  Off되어 있는 디폴트 값을 0으로 초기화 해 주어야 한다.

void DacInit(void)
{
  :
    DAC_SPI_INIT();
   
    Delay(100);
    DAC_CS_LO();
    DAC5791_SYNC_LO();
 
    temp = 0x00200010;
    DAC_SPI_Write(temp>>16);
    DAC_SPI_Write(temp>>8);
    DAC_SPI_Write(temp);
    DAC5791_SYNC_HI();
}



DAC출력 레지스터


반응형