임베디드/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이 몇번 깜빡이냐의 따라서 ??????