글

라벨이 ds1302인 게시물 표시

RTC DS1302 linux 예제 C 코드

이미지
본 글은 시간 저장을 위해 사용하는 RTC 칩 중 하나인 DS1302의 리눅스 예제 C 코드에 대해 기술한다.  DS1302의 datasheet를 보면 아래와 같은 구조로 연결이 이루어진다. 아래 그림처럼 데이터를 읽고 쓸 때 CE핀을 high로 올려주고, 읽고 쓰지 않을 때는 low로 내려준다. SCLK과 I/O핀은 아래 그림과 같이 일반적인 i2c나 spi에서 데이터를 읽고 쓸 때 사용한다. 본 글의 예제 코드는 gpio를 컨트롤 하여 아래 그림의 데이터 전송 형식대로 구현 했다. DS1302 example c code 연결된 핀의 GPIO와 레이스터 값을 선언된 내용과, 핀에 할당된 GPIO를 초기화 코드는 아래와 같다. #define DS1302_CE_GPIO (1) #define DS1302_DATA_GPIO (12) #define DS1302_CLK_GPIO (11) #define DS1302_SEC_WRITE    0x80 #define DS1302_MIN_WRITE    0x82 #define DS1302_HOUR_WRITE   0x84 #define DS1302_DATE_WRITE   0x86 #define DS1302_MONTH_WRITE  0x88 #define DS1302_YEAR_WRITE   0x8C #define DS1302_WP_WRITE   0x8E #define DS1302_TRICKLE_WRITE 0x90 #define DS1302_SEC_READ     0x81 #define DS1302_MIN_READ  ...