
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42


본문내용
라이트해서 REPEATED STOP 신호를 보낸다.
REPEATED START 신호를 전송한 후에 TWI 는 STOP 신호를 보내지 않고도
같은 슬레이브를 다시 엑세스하거나 새로운 슬레이브를 엑세스할수 있다.
[표] TWSR의 상태코드
[그림] 마스터 송신 모드의 단계별 동작
-마스터 수신모드 : 마스터 수신 모드에서 여러 데이터가 슬레이브 송신기로 부터 수신됩니다. 마스터 모드가 되기 위하여 START 신호를 전송하여야 합니다. 그리고 이어지는 어드레서 패킷은 마스터 송신(MT) 또는 마스터 수신(MR) 모드를 결정한다.
즉, SLA+W 가 송신되면 MT 모드가 되고, SLA+R 이 송신되면 MR 모드가 된다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 START 신호를 송신한다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWSTA 비트는 START 신호를 출력하기 위하여 1 을 라이트 한다.
TWINT 비트에 1 을 라이트해서 TWINT 플래그를 클리어 시켜야 한다.
START 신호가 출력되면 하드웨어에 의해서 TWINT 플래그는 1 로 셋 된다. 그리고
TWSR 레지스터는 0x08 이 된다.
MR 모드가 되기 위하여 SLA+R 가 전송되어야 한다. 이를 위해서 TWDR 레지스터에 SLA+R 를 라이트 한다.
그리고 (TWINT 비트에 1 을 써서) TWINT 비트를 클리어시켜야 한다.
이것은 아래 그림과 같은 값을 TWCR 에 라이트해서 수행한다.
SLA+R 신호가 전송되고 확인 신호(acknowledgement) 가 수신되면 TWINT 는 다시 1 이 되고, 상태 코드가 TWSR 레지스터에 쓰여집니다. 마스터 모드에서 가능한 상태 코드는 0x38, 0x40, 0x48 이다.
각각의 상태 코드 값에 따라서 적당한 조치를 취해야 한다.
수신된 데이터는 TWINT 플래그가 하드웨어에 의해서 1 로 셋되었을 때 TWDR 레지스터에서 읽을 수 있다.
이런 구성(scheme) 은 마지막 데이터가 전송될 때까지 반복된다.
마지막 데이터가 수신되면 MR 은 NACK 를 ST 에게 보내주어야 한다.
STOP 신호나 REPEATED START 신호를 보내면 전송은 종료됩니다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 STOP 신호를 낸다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 REPEATED STOP 신호를 보낸다.
REPEATED START 신호를 전송한 후에 TWI 는 STOP 신호를 보내지 않고도
같은 슬레이브를 다시 엑세스하거나 새로운 슬레이브를 엑세스할수 있다.
[그림] 마스터 수신모드의 단계별 동작
[표]TWSR의 상태 코드
- 슬레이브 수신 모드 (Slave Receiver Mode)
슬레이브 수신 모드에서 여러 데이터가 마스터 송신기로 부터 수신된다.
슬레이브 수신 모드를 시작하기 위하여, TWAR 과 TWCR 은 다음과 같은 값을 갖는다.
상위 7 비트는 마스터가 주소 지정을 하면 응답하는 주소다. 만약 최하위 비트(TWGCE) 가 1 이면 general call 주소(0x00) 에 응답한다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWEA 비트는 1 로 해서 주소값에 대한 확인 신호를 보낼 수 있도록 한다.
TWAR 과 TWCR 이 초기화 되면TWI 는 자신의 주소가 지정될 때까지 기다린다.
주소가 지정되면 뒤 따르는 데이터 방향 비트에 의해서, 0 이면슬레이브 수신 모드(SR)
또는 1 이면 슬레이브 송신 모드(ST) 가 된다.
자신의 주소와 라이트 비트가 수신되면 TWINT 플래그는 1 이 되고 TWSR 로 부터 상태 코드를 읽을 수 있다.
슬레이브 수신 모드는 또한 TWI 마스터 모드에서 조정(Arbitration)에 실패(lost) 했을 때 들어가 진다. (States 0x68 and 0x78)
[표 ] 슬레이브 수신의 상태코드
[그림] 슬레이브 수신모드의 단계별 동작
- 슬레이브 송신 모드 (Slave Receiver Mode)
슬레이브 송신 모드에서 여러 데이터가 마스터 수신기로 송신된다.
슬레이브 송신 모드를 시작하기 위하여, TWAR 과 TWCR 은 다음과 같은 값을 갖는다.
상위 7 비트는 마스터가 주소 지정을 하면 응답하는 주소다. 만약 최하위 비트(TWGCE) 가 1 이면 general call 주소(0x00) 에 응답합니다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWEA 비트는 1 로 해서 주소값에 대한 확인 신호를 보낼 수 있도록 한다.
TWAR 과 TWCR 이 초기화 되면TWI 는 자신의 주소가 지정될 때까지 기다린다.
주소가 지정되면 뒤 따르는 데이터 방향 비트에 의해서, 0 이면슬레이브 수신 모드(SR)
또는 1 이면 슬레이브 송신 모드(ST) 가 된다.
자신의 주소와 라이트 비트가 수신되면 TWINT 플래그는 1 이 되고 TWSR 로 부터 상태 코드를 읽을 수 있다.
슬레이브 수신 모드는 또한 TWI 마스터 모드에서 조정(Arbitration)에 실패(lost) 했을 때 들어가 진다. (State 0xB0)
[표 ] 슬레이브 송신의 상태코드
[그림] 슬레이브 수신모드의 단계별 동작
(2) TWI 직렬 통신 응용 프로그램
AT24C16 : I2C 직렬 통신 방식으로 액세스하는 2048ⅹ8비트 구조의 8핀 EEPROM
A2~A0 : 슬레이브 어드레스 설정
WP : 라이트 금지 신호
-디바이스 어드레스 형식
P2~p0 : 페이지 어드레스를 지정
(AT24C16은 256바이트의 페이지가 8개)
-바이트 라이트 : 임의 번지를 지정하여 1바이트 데이터를 라이트 하는 방식
-페이지라이트 : 지정된 메모리 어드레스로 부터 16바이트로 구성되는 1페이지를 연속으로
라이트하는 방식 (1페이지를 16바이트로 간주)
-현재의 어드레스 리드 : 가장 최근에 리드 또는 라이트 하였던 메모리 소자 내부의 워드 어드레스 카운터 값을 기억하고 있다가 이 번지를 읽는 방식
-랜덤 리드 : 읽고자 하는 워드 어드레스를 라이트하는 더미라이트 동작을 먼저 수행한후 이 어드레스에서 리드동작을 수행 (임의의 번지를 읽는데 유용)
-시
REPEATED START 신호를 전송한 후에 TWI 는 STOP 신호를 보내지 않고도
같은 슬레이브를 다시 엑세스하거나 새로운 슬레이브를 엑세스할수 있다.
[표] TWSR의 상태코드
[그림] 마스터 송신 모드의 단계별 동작
-마스터 수신모드 : 마스터 수신 모드에서 여러 데이터가 슬레이브 송신기로 부터 수신됩니다. 마스터 모드가 되기 위하여 START 신호를 전송하여야 합니다. 그리고 이어지는 어드레서 패킷은 마스터 송신(MT) 또는 마스터 수신(MR) 모드를 결정한다.
즉, SLA+W 가 송신되면 MT 모드가 되고, SLA+R 이 송신되면 MR 모드가 된다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 START 신호를 송신한다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWSTA 비트는 START 신호를 출력하기 위하여 1 을 라이트 한다.
TWINT 비트에 1 을 라이트해서 TWINT 플래그를 클리어 시켜야 한다.
START 신호가 출력되면 하드웨어에 의해서 TWINT 플래그는 1 로 셋 된다. 그리고
TWSR 레지스터는 0x08 이 된다.
MR 모드가 되기 위하여 SLA+R 가 전송되어야 한다. 이를 위해서 TWDR 레지스터에 SLA+R 를 라이트 한다.
그리고 (TWINT 비트에 1 을 써서) TWINT 비트를 클리어시켜야 한다.
이것은 아래 그림과 같은 값을 TWCR 에 라이트해서 수행한다.
SLA+R 신호가 전송되고 확인 신호(acknowledgement) 가 수신되면 TWINT 는 다시 1 이 되고, 상태 코드가 TWSR 레지스터에 쓰여집니다. 마스터 모드에서 가능한 상태 코드는 0x38, 0x40, 0x48 이다.
각각의 상태 코드 값에 따라서 적당한 조치를 취해야 한다.
수신된 데이터는 TWINT 플래그가 하드웨어에 의해서 1 로 셋되었을 때 TWDR 레지스터에서 읽을 수 있다.
이런 구성(scheme) 은 마지막 데이터가 전송될 때까지 반복된다.
마지막 데이터가 수신되면 MR 은 NACK 를 ST 에게 보내주어야 한다.
STOP 신호나 REPEATED START 신호를 보내면 전송은 종료됩니다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 STOP 신호를 낸다.
TWCR 레지스터에 아래 그림과 같은 값을 라이트해서 REPEATED STOP 신호를 보낸다.
REPEATED START 신호를 전송한 후에 TWI 는 STOP 신호를 보내지 않고도
같은 슬레이브를 다시 엑세스하거나 새로운 슬레이브를 엑세스할수 있다.
[그림] 마스터 수신모드의 단계별 동작
[표]TWSR의 상태 코드
- 슬레이브 수신 모드 (Slave Receiver Mode)
슬레이브 수신 모드에서 여러 데이터가 마스터 송신기로 부터 수신된다.
슬레이브 수신 모드를 시작하기 위하여, TWAR 과 TWCR 은 다음과 같은 값을 갖는다.
상위 7 비트는 마스터가 주소 지정을 하면 응답하는 주소다. 만약 최하위 비트(TWGCE) 가 1 이면 general call 주소(0x00) 에 응답한다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWEA 비트는 1 로 해서 주소값에 대한 확인 신호를 보낼 수 있도록 한다.
TWAR 과 TWCR 이 초기화 되면TWI 는 자신의 주소가 지정될 때까지 기다린다.
주소가 지정되면 뒤 따르는 데이터 방향 비트에 의해서, 0 이면슬레이브 수신 모드(SR)
또는 1 이면 슬레이브 송신 모드(ST) 가 된다.
자신의 주소와 라이트 비트가 수신되면 TWINT 플래그는 1 이 되고 TWSR 로 부터 상태 코드를 읽을 수 있다.
슬레이브 수신 모드는 또한 TWI 마스터 모드에서 조정(Arbitration)에 실패(lost) 했을 때 들어가 진다. (States 0x68 and 0x78)
[표 ] 슬레이브 수신의 상태코드
[그림] 슬레이브 수신모드의 단계별 동작
- 슬레이브 송신 모드 (Slave Receiver Mode)
슬레이브 송신 모드에서 여러 데이터가 마스터 수신기로 송신된다.
슬레이브 송신 모드를 시작하기 위하여, TWAR 과 TWCR 은 다음과 같은 값을 갖는다.
상위 7 비트는 마스터가 주소 지정을 하면 응답하는 주소다. 만약 최하위 비트(TWGCE) 가 1 이면 general call 주소(0x00) 에 응답합니다.
TWEN 비트에 1 을 라이트해서 TWI 를 가능하게 한다.
TWEA 비트는 1 로 해서 주소값에 대한 확인 신호를 보낼 수 있도록 한다.
TWAR 과 TWCR 이 초기화 되면TWI 는 자신의 주소가 지정될 때까지 기다린다.
주소가 지정되면 뒤 따르는 데이터 방향 비트에 의해서, 0 이면슬레이브 수신 모드(SR)
또는 1 이면 슬레이브 송신 모드(ST) 가 된다.
자신의 주소와 라이트 비트가 수신되면 TWINT 플래그는 1 이 되고 TWSR 로 부터 상태 코드를 읽을 수 있다.
슬레이브 수신 모드는 또한 TWI 마스터 모드에서 조정(Arbitration)에 실패(lost) 했을 때 들어가 진다. (State 0xB0)
[표 ] 슬레이브 송신의 상태코드
[그림] 슬레이브 수신모드의 단계별 동작
(2) TWI 직렬 통신 응용 프로그램
AT24C16 : I2C 직렬 통신 방식으로 액세스하는 2048ⅹ8비트 구조의 8핀 EEPROM
A2~A0 : 슬레이브 어드레스 설정
WP : 라이트 금지 신호
-디바이스 어드레스 형식
P2~p0 : 페이지 어드레스를 지정
(AT24C16은 256바이트의 페이지가 8개)
-바이트 라이트 : 임의 번지를 지정하여 1바이트 데이터를 라이트 하는 방식
-페이지라이트 : 지정된 메모리 어드레스로 부터 16바이트로 구성되는 1페이지를 연속으로
라이트하는 방식 (1페이지를 16바이트로 간주)
-현재의 어드레스 리드 : 가장 최근에 리드 또는 라이트 하였던 메모리 소자 내부의 워드 어드레스 카운터 값을 기억하고 있다가 이 번지를 읽는 방식
-랜덤 리드 : 읽고자 하는 워드 어드레스를 라이트하는 더미라이트 동작을 먼저 수행한후 이 어드레스에서 리드동작을 수행 (임의의 번지를 읽는데 유용)
-시
소개글