[펌웨어설계] 9. I2C

Sireal·2022년 2월 10일
0

펌웨어 설계

목록 보기
9/16

I2C

  • I2C 통신을 많이 사용하는 센서들

    • 센서기능
      홀 센서스마트폰 주위의 온도와 습도 측정
      온습도 센서스마트폰 주위의 온도와 습도 측정
      기압 센서고도를 측장함. 정확한 운동량 감지
      지자기 센서나침반앱에 주로사용, 방위 측정
      심장박동 센서헬스 용도, 건강용도
      지문인식 센서보안용
  • inter-intergrated Circuit

  • 반도체 칩과 반도체 칩간 통신 방식

  • Data, Clock 두개선으로만 통신가능

    • 기기가 늘어나도 두개만 사용.
  • Protocol 간편

  • 저속이어서 하드웨어 설계에 용이

  • I2C 버스연결

    • SDA 라는 data 선과 , SCL이라는 클락 선으로 연결가능
  • SDA, SCL라인은 Vdd 전원과 연결된 Pull-up저항으로 연결되어있음.

  • I2C 버스 연결

    • μC : 마이크로 프레세서
      • 같은 버스에 연결된 칩들중, 하나가 master역할을 할때 나머지는 slave동작
    • Master 칩
      • 여러개의 slave 중 I2C slave address를 이용하여 하나의 salve와만 통신하게 됨.
    • 통신속도 : 표준모드에서 100KHz, fast모드에서 400KHz
  • I2C 버스 프로토콜

    • Master : GPIO output. 주인. GPIO의 레벨을 결정함
    • Slave : GPIO input. Master의 GPIO레벨을 인식함
    • Start조건 Stop 조건
      • 여러 슬레이브가 연결되어있을때 사용
      • Start 조건 : I2C 통신을 시작하는 조건
      • Stop 조건 : I2C콩신을 끝내는 조건
    • Master 가 만드는 조건으로 pull-up 저항에 의해 모두 high로 있다가,
      Master SDA를 low로 두고, SCL(클럭)을 low로 하면 Start 조건이 됨.
      • SPI로 치면 CS가 내려가고 클럭이 움직일때 동작하는 것과 같음
    • 데이터 전송 포맷
      • Master 가 Slave에게 값을 전송하는 포맷
      • 주로 Byte단위로 전송
        • MSB 7비트, 8비트때는 R/W신호
      • SCL이 rising edge일때 SDA 신호를 가져감
      • 마지막 9번째 bit는 ACK신호( SCL이 Low일때, Slave가 1bit 쏨 )
        • ACK 신호 : Acknowlege(인정) 약자. Slave가 Master에게 값을 잘받았다는 신호.
    • I2C Slave Address
      • slave 칩들의 고유한 주소값이 있음
      • I2C 프로토콜에서 제일먼저 나오는 8비트가 I2C slave address
  • SMbus

    • 기존 I2C 규격을 Intel사 에서 packet단위로 통신하는 형식으로 변경한 버스
profile
🚄계속 앞으로🚄

0개의 댓글

관련 채용 정보