본문 바로가기

[ATMEL]/SAMD21

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);

}

 

반응형