[Raspi] I2C 통신

I2C (I square C)
2개의 라인만 사용하여 많은 디바이스를 제어할 수 있는 양방향 직렬버스 방식
- SCL : Serial Clock Line
- SDA : Serial Data Line

SDA(High > Low) & SLC 신호 High 일 때 START
SDA(Low > High) & SCL 신호 High 일 때 STOP



※ 기본 함수 설명
1. 1비트 전송
write_quick(addr): read 비트 또는 write 비트를 송신

2. read 함수
read_byte(addr)
- 레지스터 지정 없이 1바이트 읽어오기
read_byte_data(addr, cmd)
- 지정한 레지스터에서 1바이트 읽어오기
read_word_data(addr, cmd)
- 지정한 레지스터에서 16비트(문자 데이터) 읽어오기
read_block_data(addr, cmd)
- 지정한 레지스터에서 최대 32바이트의 블록데이터 읽어오기

3. write 함수
* read함수와 동일 / 전송하는 함수

4. I2C 접근 함수 (i2c_block_data)
데이터의 크기 제한 없이 송수신이 가능하다.
read_i2c_block_data(addr, cmd)
- 지정한 레지스터에서 크기제한이 없는 하나의 블록데이터 읽어오기
write_i2c_block_data(addr, cmd, vals[])
- 지정한 레지스테에서 크기제한이 없는 하나의 블록데이터 송신하기

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다