2 마스터와 슬레이브 동작을 할 수 있습니다.
3. 송신기와 수신기로 동작할 수 있습니다.
4. 7 비트 주소로 최대 128 개의 다른 슬레이브 주소를 만들수 있습니다.
5. 멀티 마스터 조정(Arbitration) 기능이 있습니다.
6. 최대 400 KHz 데이터 전달 속도를 지원합니다.
SCL 은 단방향으로 항상 마스터가 발생합니다.
SDA 는 양방향으로 데이터를 전달합니다.
마스터가 데이터를 송신할 때는 마스터 송신기(MT) 로 동작하고
마스터가 데이터를 수신할 때는 마스터 수신기(MR) 로 도작합니다.
슬레이브가 데이터를 송신할 때는 슬레이브 송신기(ST) 로 동작하고
슬레이브가 데이터를 수신할 때는 슬레이브 수신기(SR) 로 동작합니다.
TWI 버스 상에서 데이터(비트) 를 전달할 때는 클럭(SCL) 펄스에 의해서 수행된다
클럭이 높은 레벨일 때는 데이터는 일정하게 유지하고 있어야 합니다. 데이터의 변화는 클럭이 낮은
레벨일 때만 이루어 진다.
예외적으로 START 와 STOP 상태는 클럭이 높은 레벨에서 이루어 진다.
TWBR 은 비트 레이트 발생기의 나눗셈 비율을 결정합니다. 비트 레이트 발생기는 마스터 모드에서 SCL 의 주파수를 발생하는 주파수 분배기입니다.
TWCR 은 TWI 의 동작을 제어합니다.
7 TWINT (TWI Interrupt Flag)
TWI 의 현재 작업이 끝나고, 응용 프로그램의 응답을 기다릴 때 셋됩니다. 이 비트가 셋 된 동안은 SCL 은 로(LOW) 상태로 유지됩니다. 이 비트에 1 을 써서 소프트웨어적으로 클리어 시켜주어야 합니다. 인터럽트 루틴이 실행되어도 클리어 되지 않습니다.
6 TWEA (TWI Enable Acknoledge bit)
TWEA 비트는 확인 신호(Acknoledge) 펄스를 발생시키는 것을 제어합니다.
TWEA 비트에 1 을 쓰면 아래 조건을 만났을 때 ACK 신호를 발생합니다.
1. 디바이스의 슬레이브 주소를 수신했을 때
2. TWGCE 비트가 1 이고 general call 을 수신했을 때
3. 마스터 수신 또는 슬레이브 수신 상태에서 데이터 바이트를 수신했을 때
5 TWSTA (TWI START Condition bit)
2 선 시리얼 버스(Two-Wire Serial Bus) 상에서 마스터가 되고자 할 때 TWSTA 비트에 1 을 씁니다. TWI 하드웨어는 버스가 활용할 수 있는 상태인지를 체크하고나서 START 신호를 발생합니다.
TWSTA 비트는 START 비트가 발생한 후에 소프트웨어적으로 클리어시켜 주어야 합니다.
4 TWSTO (TWI STOP Condition bit)
마스터 모드에서 2 선 시리얼 버스(Two-Wire Serial Bus) 상에서 STOP 신호를 발생시키기 위하여 1 을 씁니다. TWSTO 비트는 자동으로 클리어됩니다.
3 TWWC (TWI Write Collistion Flag)
TWINT 비트가 로(LOW) 인 상태에서 TWI 데이터 레지스터(TWDR) 에 쓰려고 할 때 TWWC 플래그가 1 이 됩니다. 이 플래그는 TWINT 플래그가 1 인 상태에서 TWDR 레지스터에 쓰면 클리어 됩니다.
2 TWEN (TWI Enable bit)
TWEN 비트에 1 을 쓰면 TWI 작동이 가능하게 됩니다.
TWEN 비트에 0 을 쓰면 TWI 작동은 불가능으로 됩니다.
1 Res (Reserved Bit)
0 TWIE (TWI Interrupt Enable bit)
이 비트가 1 이고 SREG 레지스터의 I 비트가 1 로 셋되어 있으면 TWINT 플래그가 1 이 동안 TWI 인터럽트 요구가 활성화됩니다.
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014.06.12 업무보고 출석번호 5번 김상엽 (13) | 2014.06.12 |
---|---|
2014.06.11 출석3번 김대희 필기 (12) | 2014.06.11 |
[140610] 2번 고한솔 업무일지 (14) | 2014.06.10 |
TWI.c/TWI.h (0) | 2014.06.10 |
2014년 6월 5일 업무일지 허수웅 [출석번호 22번] (14) | 2014.06.07 |
2014.06.03 업무일지 출석번호 21 이재우 (12) | 2014.06.03 |
06.02 업무일지 [20. 이경진] (15) | 2014.06.02 |
추가보드 스위치 (0) | 2014.06.02 |