본문 바로가기

[ARM] ADC

반응형

ADC - 아날로그를 디지털로 바꿔주는 것.

콘덴서(충방전 소자) - 직류전원을 제한하는 기능.

충방전의 특성을 사용해서 디지털화 시킴.

   

   

3V이상의 전압이 들어오면 충전을 한다고 가정.

전압이 높아질 수로 충전시간이 줄어든다.

   

콘덴서의 충전하는 시간을 숫자로 환산 시킴(시분활)

   

P.294

변환의 기준전압 = A/D 컨버터에는 외부 단자 ADVREF를 통하여 기준전압이 공급되어야 한다. 이 기준전압은 2.6V~VDDIN의 범위를 가져야 하며, 이에 따라 각 채널에서의 아날로그 신호 입력의 범위는 0.0V~ADVREF로 결정된다.

   

스케일링과 비슷한 개념

0~3V = 0 ~ 1024(ARM에서의 값).

기준전압은 이렇게 사용함.

   

ADVREF(기준전압을 여기에 걸어줘야 함.)

우리는 그냥 쓰면 됨. 5V나 3.3V 둘 중 하나가 걸림.

   

아트메가도 ADC가 있다. 2가지 선택. (1.내부기준전압.(2.56V)를 내부전압으로 사용가능.

암에서는 외부에서 걸어줘야 함.)

2.외부기준전압을 사용한다고 하면 ARM처럼 똑같이 입력해주면 됨.

   

샘플링.

   

밝기에 따라 저항값이 바뀌는 소자.

   

P.297

ADC_MR

ADC클록주파수 = MCK/((PRESCAL+1)X2) >>샘플링 값을 느리게 하거나 빠르게 하거나를 설정할 수 있음. 안정적일 때는 천천히해도 됨.

   

10비트로 저장되는데, 8비트 분해능을 사용할 경우에는 이중에서 하위 8비트만 유효하며 사용하지 않는 상위 2비트는 0으로 읽혀진다.

   

A/D 변환이 완료되면 그 결과는 각 채널의 데이터 레지스터인 ADC_CDRx와 모든 채널에 공통으로 사용되는 최신 데이터 레지스터인 ADC_LCDR에 저장된다.

   

ARM은 AD0, AD1 , AD2 동시에 값이 변화하는 반면 아트메가는 한 번에 값을 바꿀 수 없다.

   

인터럽트 사용가능. 하지만 쓸 필요가 거의 없음. 폴링방식으로 충분함.

   

A/D 컨버터가 변환을 완료하면 상태레지스터 ADC_SR에서 EOCx 비트와 DRDY 비트가 1로 세트된다.

   

무한반복 될 때는 어떤 상태레지스터를 읽어야 클리어된다.

   

새로운 A/D 변환이 완료될 때까지 ADC_CRDx 레지스터에 저장되어 있는 이전의 A/D변환결과를 읽지 않으면 오버런 에러가 난다. 에러비트는 ADC_SR 레지스터를 읽으면 자동으로 클리어된다.

   

트리거는 그냥 신호

ADC_MR

소프트웨어 트리거를 사용하면 됨.

   

여러 개의 채널을 사용하더라도 A/D변환의 시작은 오직 1번만 필요하다.

   

A/D컨버터의 슬립모드.

컴퓨터의 절전모드 처럼 사용할 수 있다.

ADC_MR의 STARTUP은 슬립모드에서 깨어나는 시간 설정 가능.

   

p298 채널.

0~7번

 

외부핀 P34쪽

   

1. 전원공급 p.61 >>pid4 //ADC에 전원을 공급.

2. 0번을 쓴다고 가정한다면 p34쪽에서 p17이 디폴트로 병렬입출력으로 되어있음. 이거 사용안할 것이기 때문에 PIO에 가서 PDR로 사용안한다고 셋팅.

2. ADC 레지스터 셋팅.

3.터미널이나 케릭터LCD에 찍어보기. int형을 캐릭터형으로 변환해서 날려야 함.

   

 

 

   

   

반응형

'About 프로그래밍!!! > ARM' 카테고리의 다른 글

[ARM]ADC(아날로그 to 디지털)  (0) 2010.07.13
[ARM]프로젝트(통신)  (0) 2010.07.13
[ARM]캐릭터 LCD  (0) 2010.07.09
[ARM] 캐릭터 LCD에 글자쓰기  (0) 2010.07.09
[ARM]주기적 타이머로 통신하기  (0) 2010.07.07
-->