I²C Standard·Fast·Fast Plus 차이
I²C 통신 사양을 보면 Standard-mode, Fast-mode, Fast-mode Plus라는 표현을 자주 볼 수 있습니다.
세 방식은 기본적인 I²C 통신 구조는 같지만 최대 통신속도와 전기적 타이밍 조건이 다릅니다.
가장 간단하게 보면
Standard-mode = 최대 100kbit/s
Fast-mode = 최대 400kbit/s
Fast-mode Plus = 최대 1Mbit/s
입니다. NXP의 공식 I²C 규격에서도 각각 100kbit/s, 400kbit/s, 1Mbit/s를 최대 전송속도로 규정합니다.
I²C 통신이란?
I²C는 주로 마이크로컨트롤러와 센서, EEPROM, RTC, I/O 확장칩 등을 연결할 때 사용하는 직렬통신 방식입니다.
기본적으로 두 개의 신호선을 사용합니다.
SDA = Serial Data, 데이터선
SCL = Serial Clock, 클럭선
여러 장치를 같은 SDA·SCL 라인에 연결할 수 있으며 각 장치는 주소를 이용해 구분합니다.
Standard·Fast·Fast Plus 기본 차이
| 모드 | 약어 | 최대 속도 | 대표 용도 |
|---|---|---|---|
| Standard-mode | Sm | 100kbit/s | 일반 센서·저속 장치 |
| Fast-mode | Fm | 400kbit/s | 일반적인 MCU·센서 통신 |
| Fast-mode Plus | Fm+ | 1Mbit/s | 더 빠른 데이터 전송 |
속도가 높아질수록 같은 데이터를 더 짧은 시간에 전송할 수 있습니다.
Standard-mode란?
Standard-mode는 가장 기본적인 I²C 모드로 최대 속도는 100kbit/s입니다.
온도센서나 EEPROM처럼 데이터량이 많지 않고 빠른 갱신속도가 필요하지 않은 장치에서 충분히 사용할 수 있습니다.
비교적 느린 속도를 사용하기 때문에 Fast-mode나 Fast-mode Plus보다 배선과 풀업저항 조건에 여유가 있는 편입니다.
Fast-mode는 무엇이 다를까?
Fast-mode는 최대 400kbit/s까지 사용할 수 있습니다.
Standard-mode보다 최대 4배 빠르기 때문에 센서 데이터를 자주 읽거나 여러 장치를 하나의 I²C 버스에 연결하는 경우 유리합니다.
다만 속도가 빨라지면서 신호의 상승시간 조건도 더 엄격해집니다.
NXP 규격에서 SDA·SCL의 최대 상승시간은 대표적으로
Standard-mode = 1000ns
Fast-mode = 300ns
입니다.
따라서 400kHz를 사용하려면 풀업저항과 배선의 정전용량도 함께 고려해야 합니다.
Fast-mode Plus란?
Fast-mode Plus는 보통 **Fm+**라고 표시하며 최대 1Mbit/s까지 지원합니다.
Fast-mode보다 약 2.5배, Standard-mode보다 최대 10배 높은 전송속도를 사용할 수 있습니다.
또한 Fm+는 더 높은 버스 구동능력을 갖도록 규정되어 있습니다.
NXP 규격에서는 LOW 출력전류 기준이 Standard/Fast에서는 3mA 수준인 반면 Fast-mode Plus에서는 최대 조건을 만족하기 위해 20mA급 구동능력을 규정합니다.
따라서 빠른 속도에서도 버스의 정전용량을 충·방전하기 쉽게 설계할 수 있습니다.
왜 풀업저항이 중요할까?
I²C의 SDA와 SCL은 일반적으로 Open-drain 방식을 사용합니다.
장치가 직접 HIGH를 출력하는 것이 아니라 LOW로만 끌어내리고, HIGH 상태는 외부의 Pull-up Resistor가 만들어줍니다.
그래서 풀업저항이 너무 크면 전압이 올라가는 속도가 느려지고, 너무 작으면 LOW 상태에서 불필요한 전류가 커질 수 있습니다.
특히 통신속도가 높아질수록 신호가 더 빨리 상승해야 하기 때문에 풀업저항 선택이 중요해집니다.
NXP는 Standard/Fast/Fm+의 SDA·SCL 상승시간과 버스 정전용량을 고려해 풀업저항을 결정하도록 규정하고 있습니다.
같은 회로에서 100kHz를 400kHz로 올려도 될까?
항상 가능한 것은 아닙니다.
Controller가 400kHz를 지원하더라도 연결된 모든 Target 장치가 Fast-mode를 지원해야 정상적인 통신을 기대할 수 있습니다.
예를 들어 MCU는 1MHz Fm+를 지원하지만 연결된 온도센서의 최대 I²C 속도가 400kHz라면 전체 버스를 무조건 1MHz로 설정해서는 안 됩니다.
따라서 데이터시트의
I²C clock frequency
SCL frequency
I²C mode
항목을 확인해야 합니다.
Fast Plus 장치는 낮은 속도에서도 사용할 수 있을까?
가능한 경우가 많습니다.
NXP는 Fast-mode Plus 장치가 Fast-mode 및 Standard-mode와 하위 호환되도록 규정하고 있습니다.
예를 들어 1MHz를 지원하는 Fm+ 센서라도 Controller가 400kHz로 동작시키면 Fast-mode 속도로 사용할 수 있습니다.
하지만 실제 혼합 구성에서는 가장 낮은 속도만 지원하는 장치를 기준으로 버스 속도를 설정하는 것이 안전합니다.
1MHz가 항상 좋은 선택일까?
그렇지는 않습니다.
속도를 높이면 데이터 전송시간은 줄어들지만 배선과 회로조건은 더 까다로워집니다.
특히
긴 배선
많은 I²C 장치
높은 버스 정전용량
부적절한 풀업저항
이 있는 경우 높은 속도에서 통신이 불안정해질 수 있습니다.
그래서 단순 센서 몇 개를 읽는 장치라면 100kHz 또는 400kHz만으로도 충분한 경우가 많습니다.
실제 데이터시트는 어떻게 읽을까?
예를 들어 센서 사양에
I²C interface: Fast-mode Plus, 1MHz max.
라고 적혀 있다면 이 장치는 I²C Fm+를 지원하고 최대 SCL 속도가 1MHz라는 의미입니다.
반대로
I²C: Standard/Fast mode
라고 표시되어 있다면 일반적으로 최대 400kHz까지 지원한다고 볼 수 있습니다.
다만 실제 동작속도는 MCU와 센서 양쪽의 지원범위를 함께 확인해야 합니다.
정리
I²C Standard·Fast·Fast Plus의 가장 큰 차이는 최대 통신속도와 신호 타이밍 조건입니다.
Standard-mode = 최대 100kbit/s
Fast-mode = 최대 400kbit/s
Fast-mode Plus = 최대 1Mbit/s
속도가 높아질수록 더 빠른 통신이 가능하지만 풀업저항, 버스 정전용량, 배선길이, 연결된 장치의 최대 지원속도도 함께 확인해야 합니다.
I²C 장치를 선택할 때는 단순히 1MHz 지원만 볼 것이 아니라 Controller와 Target의 지원 모드 → SCL 최대속도 → 풀업저항 → 버스 정전용량을 함께 확인하는 것이 중요합니다.
공식 참고자료: NXP UM10204 Rev. 7.0, I²C-bus specification and user manual은 Standard-mode, Fast-mode, Fast-mode Plus의 전송속도와 전기적 타이밍 조건을 규정합니다.




댓글 0
첫 댓글을 남겨보세요.