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