검색결과 리스트
글
[Tiva] TM4C의 I2C 통신 파형 보는 방법
I2C 통신을 처음 입문하는 분들은 종종 파형의 원리를 깨닫지 못해 많이 해메는 경우가 많습니다. 코드 상으로는 감이 오지 않는 I2C 통신을 오실로스코프를 통해 파형을 확인해보면 그 원리를 쉽게 알 수 있습니다.
위 사진은 오실로스코프에 찍은 I2C 통신중인 파형이고 노란색은 SDA, 파란색은 SCL입니다. 아래는 I2C 회로를 설계하는데 참고할 수 있는 데이터시트의 파형입니다.
위 사진의 파형을 쉽게 구분할 수 있게 7단계로 나누었고 그에 대한 각각의 부분은 다음과 같이 설명할 수 있습니다.
① : START
SCL이 HIGH 상태일 때 SDA가 HIGH에서 LOW로 변하는 것으로 I2C 통신을 개시합니다.
② : Slave address
Master가 통신하기 원하는 Salve address 주소를 전송합니다. 1번째부터 7번째 SCL의 edge 클록에서의 7비트가 Slave Address 주소입니다.
③ : R/S
Master가 Salve 에서 할 동작을 설정합니다. HIGH일 때는 Slave로부터 데이터를 전달받고 LOW일 때는 Slave에 데이터를 전송합니다.
④ : ACK
Slave가 Master에게 데이터를 제대로 전송하였음을 확인하는 신호입니다. Slave가 데이터를 완벽히 수신하였을 때 SDA의 값을 LOW로 끌어내려 SCL에 edge 클록이 들어올 때 까지 고정시키다가 값이 제대로 전달되면 SDA를 놓아줍니다다.
⑤ : DATA
R/S에서 설정 대로 데이터를 보내거나 받는다. 데이터 값은 8비트입니다.
⑥ : ACK
Master가 Slave에게 보내는 ACK 신호입니다.
⑦ : STOP
SCL이 HIGH 상태일 때 SDA가 LOW에서 HIGH로 변하는 것으로 I2C 통신을 종료합니다.
'임베디드 > TI' 카테고리의 다른 글
[Tiva]startup_ccs.c 파일에 외부 인터럽트 추가하기 (0) | 2014.08.09 |
---|---|
[Tiva] I2CMasterSlaveAddrSet() (0) | 2014.08.01 |
[Tiva] TM4C 시리즈에서 외부인터럽트 구현 (12) | 2014.07.26 |
[Tiva] TM4C 시리즈에서 타이머 구현 (0) | 2014.07.26 |
[Tiva] Tera Term으로 런치패드와 UART 통신하기 (0) | 2014.07.23 |