10.07.2015 Views

cubloc_manual2.pdf

cubloc_manual2.pdf

cubloc_manual2.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

I2C 방식의 EEPROM 사용예I2C 인터페이스를 지원하는 EEPROM 24LC32 를 예를 들어 설명하도록 하겠습니다. EEPROM 의데이터북을 보면 다음과 같은 그림을 볼 수 있습니다. EEPROM 에 한 바이트를 라이팅하기 위해어떤 순서로 I2C 전송을 해야 하는지 요약한 그림입니다.R/WSCONTROL BYTE 0 A HIGH ADDRESS A LOW ADDRESS A DATA A PS : StartA : AcknowledgeP : Stop맨 앞의 S 는 Start 조건을 뜻합니다. Control Byte 는 EEPROM 고유의 구분기호와도 같은 것이며24LC32 의 경우 상위 4 비트에 1010 을 적어줍니다. 하위 3 비트 칩 선택 어드레스 (Chip SelectAddress)를 적어둡니다. 칩 선택 어드레스는 칩의 1,2,3 번 단자에 의해서 바꿀 수 있도록 되어있습니다.R/W 는 Read 일 경우 1, Write 일 경우 0 을 적어줍니다. 지금은 한 바이트를 라이트하는 중이므로 0 을 적어줍니다. 그리고 EEPROM 에서 I2C 를 제대로 수신했는지 확인하기 위한Acknowlege 를 체크합니다. 그리고 HIGH 주소와 LOW 주소를 보낸뒤, 데이터를 보내고, STOP조건을 만들어 주는 것으로 1 바이트에 대한 기입이 완료됩니다. EEPROM 의 경우 추가적으로 라이팅 딜레이 타임이 있는데, 대략 5mS 정도를 기다려준뒤 다음 I2C 신호를 전송해야 합니다.이를 CUBLOC 의 소스로 표현해 보면 다음과 같습니다.SET I2C 8,9‘8 번을 SDA 로 9 번을 SCL 로 정의I2CSTARTIF I2CWRITE(&H10100000) = 1 THEN ERR_PROC ‘칩선택 어드레스가 0 일 경우IF I2CWRITE(ADR.BYTE1) = 1 THEN ERR_PROC ‘ADDRESS WRITEIF I2CWRITE(ADR.LOWBYTE) = 1 THEN ERR_PROCIF I2CWRITE(DATA) = 0 THEN ERR_PROC‘1 바이트 WRITEI2CSTOPDELAY 5‘ WRITE 가 끝날때까지 대기이번에는 1 바이트를 읽어오는 과정에 대하여 살펴보겠습니다. 1 바이트 라이트하는 상황보다는 다소 복잡해 보이지만, 앞에서 어드레스를 기입하는 부분과 뒤에 한바이트를 읽어오는 부분을 분리시켜 본다면 이해가 쉽게 되실 것입니다.245

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!