Booil Jung

I2C 통신

I2C(Inter-Integrated Circuit)는 1982년 필립스 반도체(Philips Semiconductors, 現 NXP Semiconductors)에 의해 개발된 동기식 직렬 통신 프로토콜이다.1 흔히 ‘아이-스퀘어-씨($I^2C$)’ 또는 ‘아이-투-씨(I-two-C)’로 발음되며, TWI(Two-Wire Interface)라는 별칭으로도 불린다.3 2021년, I2C 사양 개정 7판에서는 기존의 ‘마스터(Master)/슬레이브(Slave)’ 용어를 정치적 올바름을 고려하여 ‘컨트롤러(Controller)/타겟(Target)’으로 변경하였으나, 기술적인 역할과 정의는 동일하게 유지된다.2 본 보고서에서는 독자의 폭넓은 이해를 돕기 위해 전통적인 용어와 새로운 용어를 병기하여 서술한다.

I2C의 개발은 1980년대 반도체 기술의 발전과 그에 따른 물리적, 경제적 제약에서 비롯되었다. 집적 회로(IC)의 기능이 복잡해짐에 따라 필요한 핀(pin)의 수가 기하급수적으로 증가했고, 이는 IC 패키지의 크기 증대와 생산 비용 상승으로 직결되었다.5 또한, 인쇄 회로 기판(PCB) 상에서 다수의 배선(trace)이 필요해지면서 회로 설계의 복잡도가 증가하고 노이즈 간섭에 취약해지는 문제가 대두되었다.7 I2C는 이러한 문제에 대한 실용적이고 경제적인 해결책으로 탄생했다. 즉, I2C의 등장은 단순히 기술적 우위를 추구한 결과가 아니라, 당시 반도체 산업이 직면한 비용, 공간, 복잡성이라는 현실적 제약을 극복하기 위한 필연적인 설계 철학의 발현이었다.

초기 I2C는 디지털-아날로그 변환기(DAC)와 같은 오디오 칩셋과 제어 칩셋 간의 사운드 데이터 전송을 목적으로 설계되었으나, 그 범용성과 효율성 덕분에 곧 다양한 IC 간의 통신 규격으로 자리 잡았다.1 최소한의 배선으로 다수의 장치를 연결할 수 있다는 장점은 오늘날 사물 인터넷(IoT) 시대의 저전력, 소형화, 저비용 요구사항과 정확히 부합하며, 40년이 넘는 역사에도 불구하고 I2C가 여전히 임베디드 시스템의 핵심 통신 프로토콜로 널리 사용되는 이유를 설명해준다.5

I2C 프로토콜은 다음과 같은 네 가지 핵심적인 특징으로 정의된다.

I2C 프로토콜의 유연성과 안정성은 그 독특한 물리적 계층 설계에 깊이 뿌리내리고 있다. 특히 오픈 드레인(Open-Drain) 구조와 풀업 저항(Pull-up Resistor)의 조합은 I2C의 핵심 기능을 가능하게 하는 전기적 기반을 형성한다.

앞서 언급했듯이, I2C 버스는 두 개의 신호선으로 구성된다.8

이 두 라인은 모두 양방향성을 가지며, 전기적으로는 오픈 드레인 또는 오픈 컬렉터(Open-Collector) 출력 구조를 갖는다.13

오픈 드레인 구조는 I2C의 물리적 계층을 이해하는 데 가장 중요한 개념이다. 이는 단순히 전기적 특성을 넘어, I2C 프로토콜의 핵심 기능인 다중 마스터 중재와 클럭 스트레칭을 가능하게 하는 근본적인 메커니즘이기 때문이다.

일반적으로 2 kΩ에서 10 kΩ 사이의 값이 널리 사용되며, 4.7 kΩ이 표준처럼 쓰이는 경우가 많다.17 하지만 고속 통신이나 버스 부하가 큰 환경에서는 반드시 계산을 통해 최적의 값을 선정해야 한다.

I2C 통신은 물리적 계층의 전기적 신호 위에 잘 정의된 논리적 프로토콜 구조를 통해 이루어진다. 이 구조는 마스터-슬레이브 아키텍처를 기반으로 하며, 통신의 시작과 끝, 장치 선택, 데이터 교환 및 오류 확인을 위한 명확한 규칙들로 구성된다.

I2C 버스는 통신을 주도하는 마스터와 그에 응답하는 슬레이브라는 두 가지 역할로 구성된다.2

데이터 전송과 제어 신호를 구분하기 위해 I2C는 특별한 전기적 신호 조건을 사용한다. 이 조건들은 SCL이 HIGH 상태일 때 SDA의 상태가 변하는 것으로 정의되며, 이는 일반적인 데이터 전송 규칙(SCL이 HIGH일 때 SDA는 안정)의 예외이다.8

마스터는 버스에 연결된 수많은 슬레이브 중 통신할 대상을 정확히 지정해야 한다. 이를 위해 I2C는 주소 지정 방식을 사용한다.

I2C 통신의 전체 과정은 이러한 기본 요소들의 조합으로 이루어진다.

I2C는 단순한 데이터 전송을 넘어, 실제 복잡한 임베디드 환경에서 발생할 수 있는 다양한 상황에 대응하기 위한 정교한 고급 기능들을 포함하고 있다. 클럭 스트레칭과 다중 마스터 중재는 I2C가 이기종 장치 간의 속도 차이를 극복하고, 여러 제어 장치가 하나의 버스를 효율적으로 공유할 수 있게 하는 핵심 메커니즘이다. 이러한 기능들은 I2C의 비대칭적 유연성을 보여주며, 마스터 주도형 프로토콜의 한계를 넘어 실용적인 강건함을 제공한다.

이러한 클럭 스트레칭과 다중 마스터 중재 기능은 I2C가 단순한 점대점 통신 프로토콜을 넘어, 복잡하고 동적인 실제 임베디드 환경에서 매우 강건하고 유연하게 동작할 수 있도록 만드는 핵심적인 요소이다.

I2C 프로토콜은 시대의 요구에 부응하며 지속적으로 발전해왔다. 특히 통신 속도는 임베디드 시스템의 성능 향상과 맞물려 꾸준히 개선되었으며, 이는 다양한 속도 모드(Speed Mode)의 등장으로 이어졌다. 각 모드는 최대 전송 속도뿐만 아니라 전기적 사양, 타이밍 요구사항, 호환성 등에서 차이를 보이므로, 시스템 설계자는 애플리케이션의 요구사항에 맞춰 최적의 모드를 선택해야 한다.

I2C는 1982년 최초 등장 시 최대 100 kbit/s의 속도를 지원하는 Standard-mode(Sm)로 시작되었다.2 1992년, 마이크로컨트롤러와 주변 장치의 성능이 향상됨에 따라 최대 400 kbit/s를 지원하는 Fast-mode(Fm)가 도입되었다.35 이후 더 높은 대역폭에 대한 요구가 증가하면서 1 Mbit/s의 Fast-mode Plus(Fm+), 3.4 Mbit/s의 High-speed mode(Hs-mode), 그리고 5 Mbit/s의 단방향 통신을 지원하는 Ultra-fast mode(UFm)가 순차적으로 표준에 추가되었다.2

각 속도 모드는 단순히 클록 주파수를 높이는 것을 넘어, 그 속도를 안정적으로 구현하기 위한 고유한 전기적, 논리적 특징을 가진다.

다양한 속도 모드를 지원하는 장치들을 하나의 버스에 혼용할 경우, 호환성 문제를 신중하게 고려해야 한다.

다음 표는 각 I2C 통신 속도 모드의 주요 특징을 요약하여 비교한 것이다.

특징 Standard-mode (Sm) Fast-mode (Fm) Fast-mode Plus (Fm+) High-speed mode (Hs) Ultra-fast mode (UFm)
최대 속도 100 kbit/s 400 kbit/s 1 Mbit/s 3.4 Mbit/s 5 Mbit/s
방향성 양방향 양방향 양방향 양방향 단방향 (Write-only)
드라이버 방식 오픈 드레인 오픈 드레인 오픈 드레인 (강화) 오픈 드레인 + 활성 풀업 푸시-풀
최대 버스 커패시턴스 400 pF 400 pF 550 pF 100 pF (Hs) / 400 pF (F/S) 명시 안됨
주요 특징 기본 표준 타이밍 강화 드라이버 강화, 버스 확장 마스터 코드 필요 ACK/중재/스트레칭 없음
하위 호환성 - Sm 호환 Fm/Sm 호환 Fm+/Fm/Sm 호환 없음

I2C는 임베디드 시스템에서 널리 사용되는 통신 프로토콜이지만, 유일한 선택지는 아니다. 시스템 설계자는 종종 SPI(Serial Peripheral Interface), UART(Universal Asynchronous Receiver-Transmitter)와 같은 다른 직렬 통신 프로토콜들과 I2C를 비교하여 특정 애플리케이션의 요구사항에 가장 적합한 방식을 선택해야 한다. 각 프로토콜은 핀 수, 속도, 통신 방식, 토폴로지 등에서 명확한 장단점을 가지므로, 이들의 차이점을 이해하는 것은 효율적인 시스템 설계를 위한 필수적인 과정이다.

각 프로토콜의 특성을 핵심 지표별로 상세히 비교하면 그 차이점이 더욱 명확해진다.

다음 표는 I2C, SPI, UART 프로토콜의 주요 특징을 종합적으로 비교하여 보여준다. 이 표를 통해 설계자는 특정 애플리케이션의 제약 조건(예: 핀 수, 요구 속도, 연결 장치 수)에 따라 가장 적합한 통신 프로토콜을 전략적으로 선택할 수 있다.

특징 I2C (Inter-Integrated Circuit) SPI (Serial Peripheral Interface) UART (Universal Asynchronous R/T)
핀 수 2 (SDA, SCL) 4+N (MOSI, MISO, SCLK, SS) 2 (RX, TX)
통신 방식 동기식, 반이중 동기식, 전이중 비동기식, 전이중
속도 상대적으로 느림 (최대 5 Mbps) 매우 빠름 (수십 Mbps 이상) 느림 (최대 ~5 Mbps)
장치 연결 다중 마스터, 다중 슬레이브 단일 마스터, 다중 슬레이브 점대점 (1:1)
슬레이브 선택 7/10비트 주소 개별 SS(Slave Select) 라인 없음 (직접 연결)
하드웨어 복잡성 낮음 (풀업 저항 필요) 높음 (슬레이브 수에 따라 핀 증가) 낮음
소프트웨어 복잡성 중간 (주소/ACK 처리 필요) 낮음 (프로토콜 오버헤드 적음) 낮음
장점 핀 효율성, 다중 장치 연결 용이 고속, 전이중, 단순한 프로토콜 단순함, 장거리 가능, 클록 불필요
단점 속도 제한, 반이중, 버스 커패시턴스 민감 많은 핀 필요, 프로토콜 수준 오류 확인 부재 속도 제한, 1:1 통신만 가능

I2C 프로토콜의 이론적 이해를 넘어, 실제 임베디드 시스템에서 어떻게 구현되고 활용되는지 살펴보는 것은 매우 중요하다. 본 장에서는 대표적인 개발 플랫폼인 아두이노(Arduino)와 라즈베리 파이(Raspberry Pi)에서의 I2C 구현 방법을 알아보고, 널리 사용되는 센서 및 주변 장치와의 연동 사례를 통해 I2C의 실용성을 구체적으로 탐구한다.

I2C는 다양한 센서, 메모리, 실시간 클록 등 저속 주변 장치들과 마이크로컨트롤러를 연결하는 데 널리 사용된다.

I2C는 널리 사용되고 비교적 간단한 프로토콜이지만, 실제 구현 과정에서는 다양한 문제에 직면할 수 있다. 특히 I2C의 물리 계층은 오픈 드레인 구조와 풀업 저항에 의존하기 때문에 시스템 구성에 매우 민감하다. 장치가 하나 추가되거나 배선이 길어질 때마다 버스 커패시턴스가 변하고, 이는 신호 품질에 직접적인 영향을 미친다. 따라서 I2C 디버깅의 첫걸음은 프로토콜의 논리적 오류를 의심하기보다, 물리 계층의 전기적 신호가 건전한지를 먼저 확인하는 것이 가장 효율적인 접근법이다.

I2C 통신 실패의 대부분은 기본적인 하드웨어 설정 오류에서 비롯된다.43 문제가 발생했을 때 가장 먼저 확인해야 할 사항은 다음과 같다.

하나의 I2C 버스에 동일한 주소를 가진 슬레이브 장치가 두 개 이상 연결되면 주소 충돌이 발생하여 정상적인 통신이 불가능하다.80 이 문제를 해결하기 위한 방법은 다음과 같다.

오실로스코프나 로직 분석기로 파형을 관찰했을 때, 신호가 깨끗한 사각파가 아닌 왜곡된 형태로 나타나는 경우 신호 무결성 문제를 의심해야 한다.

단순한 전기적 문제를 넘어 프로토콜 수준의 오류를 분석하기 위해서는 로직 분석기가 매우 강력한 도구가 된다.88

로직 분석기를 사용하면 눈에 보이지 않는 디지털 통신의 흐름을 시각화하여 문제의 근본 원인을 빠르고 정확하게 찾아낼 수 있다.

1982년에 탄생한 I2C 프로토콜이 40년이 넘는 세월 동안 수많은 기술적 변화 속에서도 살아남아 오늘날 임베디드 시스템의 표준 인터페이스로 굳건히 자리 잡은 이유는 그 설계 철학의 명확성과 실용성에 있다. I2C의 핵심 가치는 ‘최소한의 자원으로 최대한의 연결성’을 제공하는 데 있다. 단 두 개의 배선만으로 다수의 장치를 연결할 수 있는 탁월한 핀 효율성은 IC 패키지와 PCB 공간이 제한적인 현대의 소형화된 전자기기에서 여전히 강력한 장점으로 작용한다.

또한, 오픈 드레인 구조를 기반으로 한 중재 및 클럭 스트레칭과 같은 견고한 프로토콜 메커니즘은 다양한 성능과 제조사의 장치들이 하나의 버스에서 안정적으로 공존할 수 있는 기반을 제공했다. 이는 방대한 I2C 지원 장치 생태계를 구축하는 원동력이 되었으며, 개발자들은 수많은 센서, 메모리, 주변 장치들을 마치 레고 블록처럼 쉽게 시스템에 통합할 수 있게 되었다. 이러한 단순성, 효율성, 그리고 확장성이 I2C의 생명력을 유지하는 핵심 동력이다.

I2C는 모든 상황에 적합한 만능 해결책은 아니다. 그 특성을 정확히 이해하고 전략적으로 활용할 때 그 가치가 극대화된다.

I2C의 성공에도 불구하고, 더 높은 속도, 더 낮은 전력 소모, 그리고 더 향상된 기능에 대한 요구는 계속해서 증가해왔다. 이러한 요구에 부응하기 위해 MIPI Alliance는 I2C의 후속 표준으로 I3C (Improved Inter-Integrated Circuit)를 개발했다.36

I3C는 I2C의 핵심적인 장점인 2-wire 구조와 버스 토폴로지를 계승하면서도 여러 측면에서 획기적인 개선을 이루었다.

무엇보다 중요한 것은 I3C가 I2C와의 하위 호환성을 유지한다는 점이다.36 기존의 I2C 슬레이브 장치들은 약간의 제약 조건 하에서 I3C 버스에 함께 연결될 수 있다. 이는 I2C의 방대한 생태계를 점진적으로 I3C로 전환할 수 있는 현실적인 마이그레이션 경로를 제공한다.

결론적으로, I2C는 지난 수십 년간 임베디드 세계의 보이지 않는 혈관 역할을 충실히 수행해왔으며, 그 설계 철학은 여전히 유효하다. 앞으로 I3C가 점차 그 자리를 대체해 나가겠지만, I2C가 구축한 2-wire 버스 통신의 패러다임은 I3C를 통해 계속해서 진화하며 미래의 임베디드 시스템에서도 핵심적인 역할을 수행할 것이다.

  1. I2C - 나무위키, 8월 10, 2025에 액세스, https://namu.wiki/w/I2C
  2. I²C - Wikipedia, 8월 10, 2025에 액세스, https://en.wikipedia.org/wiki/I%C2%B2C
  3. I2C란? (엄청 쉽게 설명) - 엔지니어스 - Engineeus - 티스토리, 8월 10, 2025에 액세스, https://mickael-k.tistory.com/184
  4. I2C 통신(TWI)이란? - 공대누나의 일상과 전자공학, 8월 10, 2025에 액세스, https://gdnn.tistory.com/104
  5. I²C - 위키백과, 우리 모두의 백과사전, 8월 10, 2025에 액세스, https://ko.wikipedia.org/wiki/I%C2%B2C
  6. All About the I2C Standard & Protocol. How I2C Works Circuit Crush, 8월 10, 2025에 액세스, https://www.circuitcrush.com/i2c-tutorial/
  7. I2C Communication Background - Total Phase, 8월 10, 2025에 액세스, https://www.totalphase.com/support/articles/200349156-i2c-background/
  8. I2C Protocol (2-Wire Interface) in a nut shell - EmbedJournal, 8월 10, 2025에 액세스, https://embedjournal.com/two-wire-interface-i2c-protocol-in-a-nut-shell/
  9. What is I2C? - everything RF, 8월 10, 2025에 액세스, https://www.everythingrf.com/community/what-is-i2c
  10. 제일 쉽게 I2C를 알아보자, 8월 10, 2025에 액세스, https://semiconwide.tistory.com/entry/%EC%A0%9C%EC%9D%BC-%EC%89%BD%EA%B2%8C-I2C%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
  11. I2C 통신이란? - Mr.HB이야기 - 티스토리, 8월 10, 2025에 액세스, https://gudgud.tistory.com/28
  12. I2C-BUS - 노땅엔진니어의 로봇 이야기 - 티스토리, 8월 10, 2025에 액세스, https://duvallee.tistory.com/4
  13. I2C Communication Protocol - GeeksforGeeks, 8월 10, 2025에 액세스, https://www.geeksforgeeks.org/computer-organization-architecture/i2c-communication-protocol/
  14. I2C Communication Protocol and How It Works - Latest News from Seeed Studio, 8월 10, 2025에 액세스, https://www.seeedstudio.com/blog/2022/09/02/i2c-communication-protocol-and-how-it-works/
  15. I2C - SparkFun Learn, 8월 10, 2025에 액세스, https://learn.sparkfun.com/tutorials/i2c/all
  16. Peripheral과의 통신 - 3. I2C - 코독코독 - 티스토리, 8월 10, 2025에 액세스, https://coderdocument.tistory.com/entry/Peripheral%EA%B3%BC%EC%9D%98-%ED%86%B5%EC%8B%A0-3-I2C
  17. twi,iic,i2c 통신에서 풀업 저항값 변화에 따른 파형 - 토순이, 8월 10, 2025에 액세스, https://enng.tistory.com/56
  18. Understanding the I2C Bus - Texas Instruments, 8월 10, 2025에 액세스, https://www.ti.com/lit/pdf/slva704
  19. clock stretching - EEVblog, 8월 10, 2025에 액세스, https://www.eevblog.com/forum/microcontrollers/clock-stretching/
  20. Introduction to I2C: Advanced topics Video TI.com, 8월 10, 2025에 액세스, https://www.ti.com/video/6243124608001
  21. I2C (Inter-Integrated Circuit) - 정리 - 티스토리, 8월 10, 2025에 액세스, https://yjkim9635.tistory.com/5
  22. [ Network ] 02. I2C통신에 관하여, 8월 10, 2025에 액세스, https://coder-in-war.tistory.com/entry/Network-02-I2C%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC
  23. [ 풀업 저항 ] Pull up resistor 을 선정 방법 - 동그리의일상, 8월 10, 2025에 액세스, https://donggreen.tistory.com/entry/Pull-up-resistor-%ED%92%80%EC%97%85-%EC%A0%80%ED%95%AD%EC%9D%84-%EC%84%A0%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95
  24. I2C 통신(I2C Communication) - DIY를 위한 AI - 티스토리, 8월 10, 2025에 액세스, https://ai4diy.tistory.com/entry/I2C-Communication
  25. Pull-up resistors (I2C) - Wire (I2C) Reference - Particle docs, 8월 10, 2025에 액세스, https://docs.particle.io/reference/device-os/api/wire-i2c/pull-up-resistors-i2c/
  26. How did I debug I2C communication failure? - MadMachine, 8월 10, 2025에 액세스, https://docs.madmachine.io/blog/A%20deeper%20dive%20into%20I2C%20usage%20and%20ways%20to%20filter%20noises.
  27. How to debug I2C through waveform analysis - Texas Instruments, 8월 10, 2025에 액세스, https://www.ti.com/lit/slyt770
  28. If and When Do I²C Pull-Up Values Matter? – Workbench Wednesdays 83, 8월 10, 2025에 액세스, https://community.element14.com/challenges-projects/element14-presents/workbenchwednesdays/w/documents/28424/if-and-when-do-i2c-pull-up-values-matter—-workbench-wednesdays-83
  29. I2C Bus Pull-Up Resistor Calculation - Texas Instruments, 8월 10, 2025에 액세스, https://www.ti.com/lit/pdf/slva689
  30. LPI2C Clock Stretching in RT1010 - NXP Semiconductors, 8월 10, 2025에 액세스, https://www.nxp.com/docs/en/application-note/AN13472.pdf
  31. Re: MK22 master handling i2c clock stretching - NXP Community, 8월 10, 2025에 액세스, https://community.nxp.com/t5/Kinetis-Microcontrollers/MK22-master-handling-i2c-clock-stretching/m-p/1740616/highlight/true
  32. Learning I2C: What is Clock Stretching? by Ben Gillett CodeX Medium, 8월 10, 2025에 액세스, https://medium.com/codex/learning-i2c-what-is-clock-stretching-704eb4ce7e6c
  33. I2C Arbitration Prodigy Technovations - YouTube, 8월 10, 2025에 액세스, https://www.youtube.com/watch?v=HNkUwyACuL0
  34. I2C Clock arbitration - Interface forum - Interface - TI E2E support …, 8월 10, 2025에 액세스, https://e2e.ti.com/support/interface-group/interface/f/interface-forum/478364/i2c-clock-arbitration
  35. AN10216-01 I2C Manual - NXP Semiconductors, 8월 10, 2025에 액세스, https://www.nxp.com/docs/en/application-note/AN10216.pdf
  36. I2C-bus specification and user manual - NXP Semiconductors, 8월 10, 2025에 액세스, https://www.nxp.com/docs/en/user-guide/UM10204.pdf
  37. Standard Mode - I2C-Bus.org, 8월 10, 2025에 액세스, https://www.i2c-bus.org/standard-mode/
  38. Fast Mode - I2C-Bus.org, 8월 10, 2025에 액세스, https://www.i2c-bus.org/fastmode/
  39. 1-MHz I2C-bus control on longer buses, 8월 10, 2025에 액세스, https://www.nxp.com/docs/en/brochure/75015687.pdf
  40. Fast Mode Plus - I2C-Bus.org, 8월 10, 2025에 액세스, https://www.i2c-bus.org/fast-mode-plus/
  41. Basics of I2C: The I2C Protocol, 8월 10, 2025에 액세스, https://www.ti.com/content/dam/videos/external-videos/en-us/8/3816841626001/6235789966001.mp4/subassets/basics-of-i2c-the-i2c-protocol-presentation.pdf
  42. I2C Ultra Fast-mode (UFm) Debuts on NXP Devices, 8월 10, 2025에 액세스, https://www.nxp.com/company/about-nxp/smarter-world-videos/I2C-ULTRA-FASTMODE-UFM
  43. Issues with the I²C (Inter-IC) Bus and How to Solve Them - DigiKey, 8월 10, 2025에 액세스, https://www.digikey.com/en/articles/issues-with-the-i2c-bus-and-how-to-solve-them
  44. UART vs I2C vs SPI – Communication Protocols and Uses - Latest …, 8월 10, 2025에 액세스, https://www.seeedstudio.com/blog/2019/09/25/uart-vs-i2c-vs-spi-communication-protocols-and-uses/
  45. SPI vs. I2C vs. UART: Choosing the Right Communication Protocol by Anjanashibu, 8월 10, 2025에 액세스, https://medium.com/@anjanashibu142/spi-vs-i2c-vs-uart-choosing-the-right-communication-protocol-e79109d7b64c
  46. I2C vs SPI vs UART – Introduction and Comparison of their …, 8월 10, 2025에 액세스, https://www.totalphase.com/blog/2021/12/i2c-vs-spi-vs-uart-introduction-and-comparison-similarities-differences/
  47. I2C vs SPI: A Comprehensive Comparison and Analysis - Wevolver, 8월 10, 2025에 액세스, https://www.wevolver.com/article/i2c-vs-spi-protocols-differences-pros-cons-use-cases
  48. I2C vs SPI vs UART: A Comprehensive Comparison - Wevolver, 8월 10, 2025에 액세스, https://www.wevolver.com/article/i2c-vs-uart
  49. i2c, SPI and UART compared - Renzo Mischianti, 8월 10, 2025에 액세스, https://mischianti.org/i2c-spi-and-uart-compared/
  50. Understanding and Selecting in 2024: I2C, SPI, UART Explained - Parlez-vous Tech, 8월 10, 2025에 액세스, https://www.parlezvoustech.com/en/comparaison-protocoles-communication-i2c-spi-uart/
  51. Why is it important to learn SPI, I2C, UART, etc. ? : r/embedded - Reddit, 8월 10, 2025에 액세스, https://www.reddit.com/r/embedded/comments/cmzrlu/why_is_it_important_to_learn_spi_i2c_uart_etc/
    1. SPI vs I2C Speed Comparison - EWskills, 8월 10, 2025에 액세스, https://www.ewskills.com/task/spi-vs-i2c-speed-comparison/59
  52. Difference Between Half-Duplex vs Full-Duplex - Total Phase, 8월 10, 2025에 액세스, https://www.totalphase.com/blog/2022/10/difference-between-half-duplex-vs-full-duplex/
  53. Why do I2C and SPI require more than one wire? Since full-duplex communication over one wire is possible, what is the factor that limits having full-duplex using only one wire? - Reddit, 8월 10, 2025에 액세스, https://www.reddit.com/r/embedded/comments/1ceap55/why_do_i2c_and_spi_require_more_than_one_wire/
  54. Communication protocols: UART, I2C and SPI - HiBit, 8월 10, 2025에 액세스, https://www.hibit.dev/posts/102/communication-protocols-uart-i2c-and-spi
  55. UART vs. Other Serial Communication Protocols: A Comparison with SPI and I2C, 8월 10, 2025에 액세스, https://iotebyte.wordpress.com/2023/05/25/uart-vs-other-serial-communication-protocols-a-comparison-with-spi-and-i2c/
  56. Inter-Integrated Circuit (I2C) Protocol - Arduino Documentation, 8월 10, 2025에 액세스, https://docs.arduino.cc/learn/communication/wire
  57. DS1307 Real Time Clock Breakout Board Kit - Adafruit, 8월 10, 2025에 액세스, https://cdn-learn.adafruit.com/downloads/pdf/ds1307-real-time-clock-breakout-board-kit.pdf
  58. Arduino and MPU6050 Accelerometer and Gyroscope Tutorial, 8월 10, 2025에 액세스, https://howtomechatronics.com/tutorials/arduino/arduino-and-mpu6050-accelerometer-and-gyroscope-tutorial/
  59. How to Use the MPU6050 With the Raspberry Pi 4 : 3 Steps …, 8월 10, 2025에 액세스, https://www.instructables.com/How-to-Use-the-MPU6050-With-the-Raspberry-Pi-4/
  60. Raspberry Pi SPI and I2C Tutorial - SparkFun Learn, 8월 10, 2025에 액세스, https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial/all
  61. Adding a Real Time Clock (RTC) to the Raspberry Pi - Pi My Life Up, 8월 10, 2025에 액세스, https://pimylifeup.com/raspberry-pi-rtc/
  62. Raspberry Pi and 24LC256, 8월 10, 2025에 액세스, https://forums.raspberrypi.com/viewtopic.php?t=153951
  63. How to Connect MPU6050 to Arduino UNO - Instructables, 8월 10, 2025에 액세스, https://www.instructables.com/How-to-Connect-MPU6050-to-Arduino-UNO/
  64. Lesson 05: Gyroscope & Accelerometer Module (MPU6050) - SunFounder’s Documentations!, 8월 10, 2025에 액세스, https://docs.sunfounder.com/projects/umsk/en/latest/02_arduino/uno_lesson05_mpu6050.html
  65. EEPROM 24LC256- Reading and Writing Arduino Sketch by J3 Jungletronics - Medium, 8월 10, 2025에 액세스, https://medium.com/jungletronics/eeprom-24lc256-reading-and-writing-arduino-sketch-bdfb6e5a3b13
  66. 24lc256 Arduino - GitHub Gist, 8월 10, 2025에 액세스, https://gist.github.com/b0bf974b5a925cb214df
  67. QuentinCG/Arduino-I2C-EEPROM-library - GitHub, 8월 10, 2025에 액세스, https://github.com/QuentinCG/Arduino-I2C-EEPROM-library
  68. Raspberry Pi I2C 256K EEPROM Tutorial - Digitalpeer, 8월 10, 2025에 액세스, https://www.digitalpeer.com/blog/raspberry-pi-i2c-256k-eeprom-tutorial
  69. Introduction - Adafruit DS1307 Library 1.0 documentation, 8월 10, 2025에 액세스, https://docs.circuitpython.org/projects/ds1307/en/latest/
  70. DS1307 Real Time Clock Breakout Board Kit - Adafruit Learning System, 8월 10, 2025에 액세스, https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit?view=all
  71. Set Up Real Time Clock (RTC) on Raspberry Pi - Instructables, 8월 10, 2025에 액세스, https://www.instructables.com/Set-up-Real-Time-Clock-RTC-on-Raspberry-Pi/
  72. LM75B LM75C Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface - Mouser Electronics, 8월 10, 2025에 액세스, http://www.mouser.com/ds/2/282/snis153a-123211.pdf
  73. LM75B Digital temperature sensor and thermal watchdog - NXP Semiconductors, 8월 10, 2025에 액세스, https://www.nxp.com/docs/en/data-sheet/LM75B.pdf
  74. LM75 Temperature Sensor Module: Pinout and Interfacing with …, 8월 10, 2025에 액세스, https://microcontrollerslab.com/lm75-temperature-sensor-module-pinout-interfacing-with-arduino/
  75. How to Use LM75: Examples, Pinouts, and Specs - Cirkit Designer Docs, 8월 10, 2025에 액세스, https://docs.cirkitdesigner.com/component/d25260ee-61ff-4e79-9218-7e7093466760/lm75
  76. Solving common I2C Communication Setup Issues - Semify, 8월 10, 2025에 액세스, https://www.semify-eda.com/post/solving-common-i2c-communication-setup-issues
  77. Common Problems In Systems - I2C-Bus.org, 8월 10, 2025에 액세스, https://www.i2c-bus.org/i2c-primer/common-problems/
  78. Understanding I2C Errors Dev Center - Electric Imp, 8월 10, 2025에 액세스, https://developer.electricimp.com/resources/i2cerrors
  79. Troubleshooting I2C - Texas Instruments, 8월 10, 2025에 액세스, https://www.ti.com/lit/pdf/scaa106
  80. wiki.dfrobot.com, 8월 10, 2025에 액세스, https://wiki.dfrobot.com/How_to_Resolve_I2C_Address_Conflicts_in_Embedded_Systems#:~:text=An%20I2C%20multiplexer%20is%20a,address%20by%20selecting%20different%20channels.
  81. How to Resolve I2C Address Conflicts in Embedded Systems, 8월 10, 2025에 액세스, https://wiki.dfrobot.com/How_to_Resolve_I2C_Address_Conflicts_in_Embedded_Systems
  82. I2C address conflict workaround through delayed signal propagation or delayed powerup - Electrical Engineering Stack Exchange, 8월 10, 2025에 액세스, https://electronics.stackexchange.com/questions/737206/i2c-address-conflict-workaround-through-delayed-signal-propagation-or-delayed-po
  83. I2C Dynamic Addressing - Texas Instruments, 8월 10, 2025에 액세스, https://www.ti.com/lit/pdf/scaa137
  84. Weird I2C Problems - arduino - Electronics Stack Exchange, 8월 10, 2025에 액세스, https://electronics.stackexchange.com/questions/716363/weird-i2c-problems
  85. How to get rid of this reflection on falling edge of i2c SDA line? - Electronics Stack Exchange, 8월 10, 2025에 액세스, https://electronics.stackexchange.com/questions/258521/how-to-get-rid-of-this-reflection-on-falling-edge-of-i2c-sda-line
  86. What are the common problems with I2C communication? : r/embedded - Reddit, 8월 10, 2025에 액세스, https://www.reddit.com/r/embedded/comments/1d7s8y3/what_are_the_common_problems_with_i2c/
  87. Debugging the I2C Interface Between Arduino UNO and Sensor BMP280 Using a $10 Logic Analyzer - YouTube, 8월 10, 2025에 액세스, https://www.youtube.com/watch?v=eMb0bNoprEM
  88. How to efficiently debug I2C communication with a logic analyzer …, 8월 10, 2025에 액세스, https://www.youtube.com/watch?v=9GHKuFoOnVc
  89. I2C : Protocol Decoding using Saleae USB Logic Analyzer - YouTube, 8월 10, 2025에 액세스, https://www.youtube.com/watch?v=Zv5AFM35ZTw