[MODULE]/ADC2018. 2. 25. 07:15

LTC2704 - Quad 12-, 14- and 16-Bit DAC 테스트

LTC2704 - Quad 12-, 14- and 16-Bit Voltage Output SoftSpan DACs 테스트




우선 SPI 2 정상 출력되는것만 확인.
/LDAC 핀을 흔들어 줘야 정상 출력이 나올것 같은데... 설명이 조금 에매하다...
테스트 해봐야 정확하게 알수 있을듯.

When the asynchronous load pin, LDAC, is taken low, all DACs are updated with code and span data (data in B1 buffers is copied into B2 buffers). CS/LD must be high during this operation. The use of LDAC is functionally identical to the “Update B1→B2” commands.













LTC2704 초기화 코드

void LTC2704_Init(void)

{

    LTC2704_CS_INIT();

    LTC2704_CS0_HI();

    LTC2704_CS1_HI();

    LTC2704_SPI_INIT();    

    

    LTC2704_CS0_LO(); 

    LTC2704_SPI_Send(0x2F);   //range

    LTC2704_SPI_Send(0x00);

    LTC2704_SPI_Send(0x01);   //+10V

    LTC2704_CS0_HI();  

}       






LTC2704 Data 출력 코드



void LTC2704_DataSet0(unsigned char Ch, unsigned short Data)

{

    unsigned char chanel[4] = {0, 2, 4, 6};    

    

    LTC2704_CS0_LO(); 

    LTC2704_SPI_Send(0x30+chanel[Ch]);

    LTC2704_SPI_Send(Data>>8);

    LTC2704_SPI_Send(Data);

    LTC2704_CS0_HI();

}


void LTC2704_DataOut0(unsigned char Ch)

{

    unsigned char chanel[4] = {0, 2, 4, 6};    

    

    LTC2704_CS0_LO(); 

    LTC2704_SPI_Send(0x40+chanel[Ch]);

    

    LTC2704_SPI_Send(0x00);

    LTC2704_SPI_Send(0x00);

    LTC2704_CS0_HI(); 

}


Posted by nexp
TAG DAC, LTC2704

댓글을 달아 주세요

[ATMEL]/SAMD212017. 12. 25. 03:10

ATSAMD21 Arduino M0 보드 테스트 - ADC / DAC 테스트

 

ATSAMD21 Arduino M0 보드 테스트 - ADC / DAC 테스트

 

 

 

 

 

SAM 시리즈 ( D21J, D21G, D21E) 의 장점으로 저렴한 가격에 10bit DAC가 내장되어 있다

ATSAMD21J Arduino M0 보드를 이용하여 가변저항의 전압값(AD1)에 따라 LED 밝기(AD0/DAC) 제어 하는 아두이노 테스트 코드로 ATSAMD21의 DAC를 테스트 해 보았다.

 

 

ATSAMD21J의 DAC는 PA02(VOUT)에 할당 되어 있고 아두이노 핀맵의 A0에 연결된다.

 

 

 

 

 

 

ATSAMD21J DAC 블록도

 

 

 

 

ATSAMD21J DAC 특징

- DAC with 10-bit resolution

- Up to 350ksps conversion rate

- Multiple trigger sources

- High-drive capabilities

- Output can be used as input to the Analog Comparator (AC)

- DMA support

 

 

Aruino 라이브러리를 이요하면 SAMD21의 하드웨어적인 특징을 잘 몰라도?(몰라도 간단히 사용할 수 는 있겠지만.. 이렇게 자세한것을 모르고 사용하다 정말 중요하게 자세한 제어가 필요 할때는 오히려 독이 될때도 있겠지...) 쉽게 DAC 출력을 할 수 있다.

 

SAMD21의 DAC 사용법은 정말 간단하다.

초기화 부분에서 analogReadResolution(10) 함수로 해상도를 설정하고

analogWrite() 함수로 원하는 DAC값을 출력 하면 된다.

#define DAC_PIN PIN_DAC0

 

 

void setup() {

  analogWriteResolution(10);

  analogReadResolution(10);

 

  

  Serial1.begin(115200);

  //Serial1.println("ADC Test");

 

  delay(500);

}

 

unsigned int gAdcValue = 0;

 

void loop()

{

gAdcValue = analogRead(A1);

analogWrite(DAC_PIN, gAdcValue);

 

 

float voltage = gAdcValue* 3.3 / 4096.0;

Serial1.println(voltage);

 

delay(5);

}

 

Posted by nexp

댓글을 달아 주세요

[MODULE]/ADC2007. 8. 10. 00:22

고정밀, 고속 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출력 레지스터


Posted by nexp

댓글을 달아 주세요

[MODULE]/ADC2006. 10. 1. 15:08

DAC8554, DAC8555제어

DAC8554, DAC8555제어

블럭도
16비트 고속, 고해상도 DAC컨트롤러로 Opamp내장 타입의 전압 출력을 가진다.
(+)(-)양전원 레퍼런스를 설정할 수 있다.



핀맵

 


레퍼런스회로

TMS320 DSP (TMS320F2808, TMS320F2812)를 이용한 회로 연결 예

 


제어 타이밍
데이터 시트에 나오지 않는 신호 하나 때문에 하루 까먹었다.
LDAC신호의 라이징 에지에서 쉬프트레지스터에 내용이 반영되고 DAC값이 출력된다.
따라서 DAC값을 반여하고 싶을때는 LDAC를 트리거 시켜 주면 된다.



데이터 형식
데이터에서 특이 사항은 D23, D24는 A0, A1핀에 설정된 값을 출력하면되고 이부분이 DAC8555와 다른 부분이라 조금 당황 했다. DAC8555는 Reset핀이 연결되므로 무조건 1로 설정 했다.





 

 



 

Posted by nexp
TAG DAC

댓글을 달아 주세요