Các thanhghi điều khiển I2C

Một phần của tài liệu Tìm hiểu về AVR MCU ATMEL (Trang 40)

VI I TV-I2C

3. Các thanhghi điều khiển I2C

- Là 1 thanh ghi 8 bit quy định tốc độ phát xung giữ nhịp trên đuờng SCL của chip Master. Tốc độ phát xung giữ nhịp đuợc tính theo công thức:

SCL írequency = ^CỊọckừggụ^ 16+2(TWBR)-4

Trong đó CPU Clock írequency là tần số hoạt động chính của AVR, TWBR

là giá trị thanh thi TWBR và TWPS là giá trị của 2 bits TWPS1 và TWPS0 nằm trong thanh thi trạng thái TWSR. Hai bits này đuợc gọi là bit prescaler,

thông thường người ta hay set TWPS1:0 =00 để chọn Prescaler là 1 (40=1).

b. TWCR (TWI Control Register):

- Là thanh ghi 8 bit điều khiển hoạt động của I2C. Các bit được mô tả như sau:

• Bit 7- TWINT (TWI Interrupt Flag): bit này được tự động set lên 1 khi TWI kết thúc một quá trình bất kỳ nào đó (như phát/nhận START, phát nhận địa chỉ...).

• Bit 6 - TWEA (TWI Enable Acknowledge Bit): là bit kích hoạt tín hiệu xác nhận. Đổi với chip Slave, nếu bit này được set thì tín hiệu xác nhận ACK sẽ được gởi trong các trường hợp sau: địa chỉ do Master phát ra trùng khớp với địa chỉ của Slave; một cuộc gọi chung

đang xảy ra và Slave này cho phép cuộc gọi chung; dữ liệu đã được

Slave nhận từ Master. Khi set một chip ở chế độ Slave, chúng ta cần

7 6 5 4 3 2 1 0

TWS6 TWS5 TWS4 TWS3 -

^TWPS0j TWSR

Read/VVrite R R R R R R RíW R/W

Initĩal Value 1 1 1 1 1 0 0 0

TWPS1 TVVPSO Prescaler Value

0 0 1 0 1 4 1 0 16 1 1 64 7 6 5 4 3 2 1 0 TWD6 TWD5 TWD4 TWD3 TWD2 TWD1 TWD0 1 TWDR Read/Write R/W R/W R/W R/W R/W R/W R/W R/W Initial Value 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0

TWA5 TWA4 TWA3 TWA2 TWA1 TVVGCE ITVVAO TWAR

Read.'Write R;W R/W R/W R;W R/W RAV R/W R/w

Initial Value 1 1 1 1 1 1 1 0

đế báo cho Slave là mình đã nhận được và muốn tiếp tục nhận từ Slave.

• Bit 5 - TWSTA (TWI START Condition Bit): là bit tạo START condition. Khi một chip muốn trở thành Master đế thực hiện 1 cuộc

gọi, bit này cần được set và một START condition được tạo ra trên đường truyền nếu đường truyền đang rỗi.

• Bit 4 - TWSTO (TWI STOP Condition Bit): là bit tạo STOP condition cho TWI. Khi Master muốn kết thúc một cuộc gọi, nó sẽ phát STOP condition bằng cách viết giá trị 1 vào bit TWSTO. Slave cũng có thế tác động vào bit này, nếu một cuộc gọi bị lỗi, viết 1 vào TWSTO trên Slave sẽ reset đường truyền về trạng thái rỗi ban đầu. • Bit 3 - TWWC (TWI Write Coììision Flag): khi cờ TWINT đang ở

mức thấp túc TWI đang bận, nếu chúng ta viết dữ liệu vào thanh ghi

dữ liệu (TWDR) thì một lỗi xảy ra, khi đó bit TWWC tự động được set lên 1. Vì thế, trong quá trình truyền dữ liệu, bit TWINT cần được

giữ mức cao khi ghi dữ liệu vào thanh ghi TWDR và sau đó xóa khi

dữ liệu đã sẵn sàng.

• Bit 2 - TWEN (TWI Enable Bit): bit kích hoạt TWI trên AVR, khi TWEN được set lên 1, TWI sẵn sàng hoạt động.

• Bit 1 - Reserve: không sử dụng.

• Bit 0 - TWIE (TWI Interrupt Enable Bit): bit cho phép ngắt TWI, khi bit nay được set bằng 1 đồng thời bit I trong thanh ghi trạng thái

chung được set, một ngắt TWI xảy ra khi bit TWINT được set bởi

c. TWSR - TWI Status Register:

d. Là 1 thanh ghi 8 bit trong đó có 5 bit chứa code trạng thái của TWI và 2 bit

chọn prescaler.

e. Chọn prescaler:Table 73. TWI Bít Rate Prescaler

f. TWDR - TWI Data Register:

- Là thanh ghi dữ liệu chính của TWI. Trong quá trình nhận, dữ liệu nhận về sẽ được lưu trong TWDR. Trong quá trình gởi, dữ liệu chứa trong TWDR

sẽ được chuyển ra đường SDA.

e. TWAR - TWI Address Register:

- Là thanh ghi chứa device address của chip Slave.

4. Sử dụng TVVI-I2C:

a. Quá trình giao tiếp:

- Truyền dữ liệu từ chủ đến tớ : • Master xung START

• Khi nhận đúng ACK Master bắt đầu gửi dữ liệu từng byte một ra bus

và kèm theo ACK

• Ket thúc quá trình giao tiếp bằng bit STOP

Đọc dữ liệu từ ĩave:

• Master tạo xung START

• Master gửi địa chỉ đến Slave R/W=l và xung ACK

• Khi nhận đúng ACK Slave bắt đầu gửi dữ liệu từng byte một ra bus và

KÉT LUẬN

Qua đề tài tìm hiểu về MCU AVR nhóm chúng em đã học thêm được rất nhiều kiến thức. Quá trình tìm hiểu nhóm đã thực hiện được một số demo nhỏ như led

đơn, LCD, ADC...Tuy nhiên vì kiến thức còn nhiều hạn chế nên đề tài chưa được mở

rộng với những ứng dụng thực tế. Trong thời gian tới nhóm sẽ cố gắng tìm nhieu nhiều úng dụng cụ thế hơn nữa.

Em xin gửi lời cám ơn chân thành đến thầy Lê Hoài Nghĩa và xin chúc thầy sức khỏe.

TẢI LIÊU THAM KHẢO:

Một phần của tài liệu Tìm hiểu về AVR MCU ATMEL (Trang 40)

w