임베디드/Arm2567SAM

4월 29일 ADC 타이밍도 분석하기(미완성 내일 완성예정)

송시혁 2013. 4. 29. 16:23




1.위의 타이밍도를 살펴보면 가장먼저 봐야할 부분은 ADC_CR이다.

먼저 ADC_CR에 해당하는 레지스터를 데이터 시트에서 찾고

START를 1로 왼쪽으로 밀어준다.

ADC_CR=1<<START;


2. 파란색 동그라미를 주목한다. EOCx와 DRDY가 CONVERSION TIME 시작

시에는 LOW상태로 있다가 EOCx와 DRDY가 동시에 HIGH가 된다.

그러나 ADC_CDRx(노란색 네모)가 읽기를 수행이 끝나면,  EOCx는

LOW가 되고 DRDY는 HIGH를 유지한다.

뒤에 ADC_lCDR은  EOCx와 DRDY가 똑같이 반응하였다.(연두색 원)

여기서 CDRx와 LCDR이 서로 다르다라는 것을 알 수 있다.

ADC_CDRx의 의해 EOCx가 변했으므로 EOCx는 ADC_CDRx의

전용채널인 것을 짐작할 수 있다.(보라색 동그라미 부분)




ADC_CHSR=

ADC_SR = 


ADC_SR =

ADC_CDRx


1. ADC_CR 

ADC_LCDR = 최근 컨버전 데이터 레지스터.









ADC_MR에서 PRESCAL과 LOWRES주목한다.


LOWRES = 10비트, 분해와 8비트 분해가 있다.

이왕 더욱 디테일하게 표현하기 위해서 10비트를 사용.

그래서 해당 소스에는 0으로 되어있을것이다.

#define LOWRES 0 -> ADC.C파일에 정의한다.



TRGEN 

= 오른쪽부터 3 2 1이라고 생각한다.

TRGEN은 자세한 설명은 패스한다.



PRESCAL의 구하는 공식이다.

ADCCLOCK이 몇번 깜빡이냐의 따라서 ??????