2-Wire Serial Interface
TWI(Two-Wire Serial Interface) 직렬통신 포트는 원래 필립스사에서 제안한 근거리용 표준 직렬통신 방식인 I^2C 버스로 통신하는 방식인데, 둘 다 같은 방식이다. 2선식 직렬통신 방식으로 항상 마스터와 슬레이브 사이에서 직렬로 데이터를 송수신할 수 있다. TWI 직렬통신 포트는 여러 가지의 제어 레지스터를 통하여 유연하고 강력한 I^2C 통신을 수행할 수 있으며, 마스터와 슬레이브로 임의 사용될 수 있다. 7비트의 어드레스 지정과 100KHz, 400KHz의 통신속도를 지원하며, 멀티 마스터 조정 기능을 가지고 있다. 또한 MCU가 슬립 모드에 있을 때 슬레이브로서 어드레스 지정이 되면 슬립 모드에서 벗어나는 wake-up 기능을 가지고 있다.
Byte Oriented 2-Wire Serial Interface -> 바이트를 지향하는 2선 TW I
SDA(Serial DAta), SCL(Serial CLock) 2개의 선으로 양방향 직렬통신을 수행
(2.3V~5.5V의 전원 전압을 사용)
반드시 마스터와 슬레이브 사이에 직렬 동기식 양방향 데이터 통신을 수행
마스터가 데이터를 송신 또는 수신을 하기 위하여 데이터 SDA는 양방향 신호
마스터가 데이터 송신 또는 수신하더라도 클록 신호 SCL은 항상 마스터가 발생
100Kbps, 400Kbps, 3.4Mbps의 3가지 전송속도를 지원
마스터가 슬레이브에게 7비트 또는 10비트 어드레스로 지정 가능
마스터가 전체호출 기능으로 전체 슬레이브를 동시에 지정하는 것이 가능
멀티마스터 조정 기능 지원
full up 저항 -> 명확한 High/Low를 정하기 위해서....
Device 여러 개를 사용할 수 있다. ID 고유번호로 식별할 수 있다.
SCL 주파수를 구하는 공식
시리얼 통신에서 2선 통신 중에
I²C(Inter-Intergrated Circuit)통신
1980년대 초에 필립스사에서 제안한 IC소자들을 연결하기 위한 던거리용 2선식 직렬통신 버스
특징
-SDA,SCL 2개의 선으로 양방향 직렬통신을 수행
-반드시 마스터와 슬레이브 사이에 직렬 동기식 양방향 데이터 통신을 수행
-마스터가 데이터를 송신 또는 수신을 하기 위하여 데이터 SDA는 양방향 신호
-마스터가 데이터를 송신 또는 수신하더라도 클록 신호 SCL은 항상 마스터가 발생
-100Kbps,400Kbps,3.4Mbps의 3가지 전송속도 지원
-마스터가 슬레이브에게 7비트 또는 10비트 어드레스로 지정(어드레스=장치번호 or 장치ID)
-마스터가 전체호출 기능으로 전체 슬레이브를 동시에 지정하는 것이 가능
-멀티마스터 조정 기능 지원
데이터 송신
①마스터가 슬레이브에게 데이터를 송신할 때는 먼저 마스터가 7비트의 슬레이브 어드레스를 보낸다.
②송신을 의미하는 L상태의 1비트를 보낸다.
③지정된 어드레스를 가지고 있는 슬레이브는 L상태의 1비트 확인신호로 응답한다.
④마스터는 n바이트의 데이터를 연속으로 송신하며 각 바이트를 송신할 때마다 해당 슬레이브로부터 확인 비트로 응답을 받는다.
데이터 수신
①마스터가 슬레이브로부터 데이터를 수신할 때는 먼저 마스터가 7비트의 슬레이브 어드레스를 보낸다.
②수신을 의미하는 H상태의 1비트를 보낸다.
③지정된 에드레스를 가지고 있는 슬레이브는 L상태의 1비트 확인 신호로 응답한다.
TWPS를 1로 가정하고 계산해 보면 TWBR이 3이 나온다.
즉, 400Kbps 속도로 하기 위해서는 TWPS 1 이면 TWBR을 3으로 해주어야 한다.
회로 연결
DK128에서 J18번의 1번에는 ATmega 2560 43번에 2번은 44번에 연결해 준다.
'ATMega256' 카테고리의 다른 글
20140610 - TWI 동작 Write/Read 동작 (0) | 2014.06.10 |
---|---|
20140609 - TWI의 데이터 송신 및 수신 포맷, TWI 레지스터 사용, Device Address (0) | 2014.06.09 |
20140603 - DK-128 EXT 배워보쟈 (0) | 2014.06.03 |
20140602 - DK128-EXT 박살내까?? (0) | 2014.06.02 |
20140530 - EEPROM을 박살내기 (0) | 2014.05.30 |