본문 바로가기

전체 글

(9)
I2C Multi-Master 상황에서 Clock Sync 맞추는 방법 I2C에서 Multi-Master  환경에서 여러 마스터가 동시에 버스를 사용할 수 있습니다. 이때 중요한 요소 중 하나는 클럭 동기화(clock synchronization)입니다. 여러 마스터가 동시에 클럭 신호를 발생시킬 수 있으므로, 모든 마스터가 동일한 클럭 속도로 동작해야 통신의 일관성을 유지할 수 있습니다. I2C는 open-drain 방식으로 동작하므로, 클럭 동기화는 자연스럽게 이루어지며, 여러 마스터가 동시에 버스를 제어하려고 해도 시스템이 안정적으로 동작할 수 있도록 설계되어 있습니다. 이 과정은 SCL의 제어를 통해 이루어집니다. I2C의 클럭 동기화 방법클럭 동기화는 여러 마스터가 동시에 SCL을 제어하려고 할 때, SCL 선이 Low 상태일 때는 모든 마스터가 클럭을 Low로 유..
I2C의 장점과 여러 가지 모드 I2C는 여러 집적 회로 (Integrated Circuit) 사이의 단거리 통신에 사용되는 동기식, 다중 마스터, 다중 슬레이브, 직렬 통신 프로토콜 입니다. 1980년대에 Phillips라는 회사(현재는 NXP)가 개발했습니다. 오늘은 I2C에 대한 기본적인 내용을 간단히 짚어보고 I2C를 보다 깊이 이해하기 위해 디테일한 요소들을 살펴보겠습니다. 먼저 I2C는 데이터 전송을 위해 SDA, 동기화를 위해 SCL이라는 두 개의 양방향 Line을 사용합니다. 이 두 개의 Line은 Master/Slave Device와 연결되어 데이터를 주고 받게 되는데 일반적으로 마스터가 시작 조건을 전송한 뒤에 해당 슬레이브의 주소가 뒤따르는 방식으로 통신을 하게 됩니다. I2C를 쓰는 이유는 여러 장점이 있기 때문입..
Set up time과 Hold time 지난 시간에 clock domain crossing과 metastable에 대해 알아보았습니다. clock domain이 바뀔 때, clock domain crossing 처리를 해주지 않으면 metastable 상태에 빠지게 되고 회로가 정상적으로 작동할 수 없다고 했습니다. metastability는 바로 오늘 알아볼 내용인 set up time, hold time과 관련이 깊습니다. metastability가 발생하는 근본적인 이유를 생각해보면 data가 flip flop에 입력될 때 clock이 해당 data를 채가지 못하기 때문에 발생합니다. 이상적으로 생각해보면 신호가 flip flop으로 들어온 직후에 clock이 toggle해도 flip flop이 data를 챌 수 있을 것 같지만 실제로는..