안녕하세 L입니다.
오늘은 태풍경보 입니다.
다들 태풍피해 조심하시길 !!
이번시간은 ARM에 광센서를 연결해서
PC의 하이퍼 터미널에 결과값을 출력해 보았습니다.
★ 광센서 활용
※ spec 1page
ㆍ8개 센서를 사용이 가능하다.
[ ADC 회로도 ]
※ spec 4page
[ ADCREF Pin number ]
※ spec 10page
※ spec 479page
ㆍTrigger Selection : 외부에서 쓸것인지 내부에서 쓸것인지 선택
[ 광센서 연결 ]
ㆍ광센서를 AD7pin 에 연결.
ㆍ3.3V VCC를 반대쪽 다리에 연결.
[ ADC 의 Base Address ]
※ spec 10page
[ ADC 의 OFFset Address ]
※ spec 486page
Ex) spec 을 참조하여 ADC 주소 define |
[ Timing table ]
ㆍConversion Time : 변환 시간.
ㆍRead the ADC_CDRx : 센서가 계산한 결과값.
( 특정 Reg 에서 값을 읽어오면 Low 로 떨어진다. )
ㆍ위 Timing 그래프를 참조하여 코드를 작성한다.
[ ADC 상세 Reg ]
※ spec 487page
ㆍADC_CR이 1이되면 축차비교법으로 세기 시작.
Ex) ADC SWRST, START 를 No effect 로 define 해 둔다 |
[ ADC_CHER 상세 Reg ]
※ spec 490page
[ ADC Mode Register ]
※ spec 488page
Ex) ADC Mode Reg define |
ㆍ외부 드라이버를 활성화 ( 사용하지 않을시 0으로 해둔다. )
ㆍTiming 그래프의 세로눈금을 나타낸다. ( 10-bit 사용 예정 )
ㆍ슬립모드 ( 사용하지 않을 경우 0 )
ㆍ펄스 신호(48M) 를 묶어계산
ㆍ4MHz = MCK(48M) / ((p + 1 ) * 2)
ㆍ (p+1)*2 = 12, p = 5
※ spec 492page
ㆍEOC7 을 사용하는 이유는 현재 7채널을 사용하고 있기때문.
ㆍADC_SR 의 EOC 가 Read 되면 Low가 되고 DRDY는 Hight 가 유지된다.
ㆍADC_SR reg의 DRDY, EOC7 값을 다음과 같이 확인할 수 있다.
※ spec 493page
ㆍADC_LCDR이 Read 되면 ADC_SR의 EOC, DRDY 는 LOW가 된다.
ㆍ10bit 만 사용함으로 쓰레기 값을 없애주기위해 Mask 를 씌워야 한다.
Ex) 광센서를 이용하여 최대 밝기 1023으로 설정하여 실습
|
선언된 함수 초기화 와 main함수 |
함수 호출 함수를 따로 만들어 한번에 함수들을 호출함. ADC 기능 활성화 및 시작 함수. |
1byte문자 전송함수 및 통신설정이 사용됨 |
[ 빛을 비추지 않았을 때 ]
[ 빛을 비추었을때]
< 실행 결과 동영상 참고 >
궁금하신 점은 댓글로 !
오늘도 좋은 하루 되세요
ARM7 자료 ( Timer Count ) [20120723] (0) | 2016.11.15 |
---|---|
ARM7 자료 ( AIC / AIC Interrupt Controller ) (0) | 2016.11.15 |
(0) | 2016.11.15 |
ARM 자료 ( ARM 과 PC간의 송수신 설정 / DBGU_SR / DBGU_THR / DBGU_RHR ) [20120712] (0) | 2016.11.15 |
ARM 자료 ( 각 레지스터의 기능 / ARM LED 제어 ) [20120709] (0) | 2016.11.15 |