Analog To Digital Converter
2019. 11. 2. 03:31ㆍavr-atmega128
Datasheet를 참조했으며 해당 내용은 대략적인 흐름만 작성했습니다
자세한 내용은 Datasheet를 통해 공부하는것을 권장합니다
ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다
그렇지않으면 밑에서 다룰 모든 설정은 무시됩니다
우선 ADC가 동작하기 위해서는 sample rate을 발생기켜야 되는데 이때 필요한 clock을 선택해야합니다
50khz~ 200khz로 ADPSn을 통해 설정이 가능합니다
10bit보다 낮은 bit로 충분하다면 200khz로 설정해도 무방합니다
ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다
이때 Digital로 바꾸기위한 전압의 기준점은AREF, AVCC나 내부적으로 2.56V에 연결되게 됩니다
어떤핀을 통해
어떤동작을 할지
Gain은 얼마로 할지 정할수 있습니다
이제 data를 변환할 차례입니다
Atmega128 ADC는 data를 받으면 10bit digital값으로 변환해서 두 register에 저장하게 되는데 ADLAR(ADMUX5, default는 0)값에 따라 어떻게 저장되는지 정해집니다
읽을때는 ADCL을 먼저 읽고 ADCH를 마저 읽어야합니다
ADCH를 읽게되면 다시 ADC에서 ADCL부터 읽을수있습니다
자세한 내용은 Datasheet를 통해 공부하는것을 권장합니다
ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다
그렇지않으면 밑에서 다룰 모든 설정은 무시됩니다
우선 ADC가 동작하기 위해서는 sample rate을 발생기켜야 되는데 이때 필요한 clock을 선택해야합니다
50khz~ 200khz로 ADPSn을 통해 설정이 가능합니다
10bit보다 낮은 bit로 충분하다면 200khz로 설정해도 무방합니다
ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다
이때 Digital로 바꾸기위한 전압의 기준점은AREF, AVCC나 내부적으로 2.56V에 연결되게 됩니다
어떤핀을 통해
어떤동작을 할지
Gain은 얼마로 할지 정할수 있습니다
이제 data를 변환할 차례입니다
Atmega128 ADC는 data를 받으면 10bit digital값으로 변환해서 두 register에 저장하게 되는데 ADLAR(ADMUX5, default는 0)값에 따라 어떻게 저장되는지 정해집니다
읽을때는 ADCL을 먼저 읽고 ADCH를 마저 읽어야합니다
ADCH를 읽게되면 다시 ADC에서 ADCL부터 읽을수있습니다
하지만 만약 8bit만으로 충분하다면 ADLAR=1의 ADCH만 읽어도 충분합니다
ADC가 완료되면 interrupt(ADIF가 set),가 발생합니다
interrupt발생조건은 다음과 같습니다.
The ADC Conversion Complete Interrupt is executed if the ADIE bit and the I-bit in SREG are set.
그럼 ADC에는 어떤종류가 있을까요
Single conversion 와 Free running방식(ADFR을 set하면 선택, ADSC를 set하면 시작)이 있습니다
ADSC를 set하면 ADC를 시작합니다만
Single conversion은 한번 conversion을 수행하고 ADSC 가 clear, ADIF가 set됩니다.
Free running방식은 반면 ADSC가 계속 set이 됩니다. ADIF의 set여부는 관계없습니다.
몇몇 주의해야할 세부사항이 있는데
Datasheet P.236부터 노이즈관련 대책이나 Vref설정시 주의사항, ADCn pin이나 AVCC사용시 외부 HW설계방법 등이 있습니다
'avr-atmega128' 카테고리의 다른 글
ADC 예제 (0) | 2019.11.05 |
---|---|
16bit Timer/Counter (0) | 2019.10.25 |
8bit Timer/Counter (0) | 2019.10.25 |
외부인터럽트 (0) | 2019.10.22 |
직렬통신 (0) | 2019.10.18 |