Sơ đồ khối của I2C

Một phần của tài liệu TỔNG QUAN VI XỬ LÝ LPC2300 HƯỚNG DẪN SỬ DỤNG BOARD MCB 2300 (Trang 78 - 84)

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 72

I.15.5.1 Bộ lọc ngõ vào và điều chỉnh ngõ ra.

Những tín hiệu ở ngõ vào được đồng bộ với xung nội bộ, và các gai tín hiệu ngắn hơn 3 xung đồng hồ sẽ được loại bỏ.

Ngõ ra cho I2C cũng được thiết kế đặc biệt để đáp ứng đặc tả của I2C.

I.15.5.2 Thanh ghi địa chỉ I2ADDR

Thanh ghi này sẽ chứa 7 bit địa chỉ và được dùng trong trường hợp thiết bị là Slave (truyền hay nhận). Bit cuối cùng (LSB) được dùng để nhận dạng lời gọi địa chỉ chung (0x00).

I.15.5.3 Bộ so sánh.

Bộ so sánh sẽ phát hiện và yêu cầu ngắt khi 7 bits địa chỉ Slave trùng với địa chỉ Slave của chính nó (7 bits cao trong thanh ghi I2ADR). Bộ so sánh cũng phát hiện trường hợp byte nhận đầu tiên là lời gọi địa chỉ tổng quát (0x00). Khi có yêu cầu ngắt, các bit trạng thái cũng được gán giá trị.

I.15.5.4 Thanh ghi dịch I2DAT.

Thanh ghi 8 bits này chứa một byte dữ liệu cần truyền hay vừa nhận được. Dữ liệu trong I2DAT luôn dịch từ phải sang trái (bit MSB được dịch đầu tiên). Thanh ghi I2DAT luôn chứa giá trị byte cuối cùng xuất hiện trên kênh truyền.

I.15.5.5 Xung đồng bộ.

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 73

I.15.5.6 Bộ tạo xung tuần tự

Bộ tạo xung này hoạt động khi thiết bị đóng vai trò Master, và được tắt khi thiết bị đóng vai trò Slave. Tần số và tỉ lệ xung tích cực có thể lập trình thông qua việc gán giá trị cho 2 thanh ghi là I2CSCLL và I2CSCLH.

I.15.5.7 Điều khiển và định thời.

Bộ điều khiển/ định thời có chức năng tạo ra xung để dịch thanh ghi I2DAT, kích khởi bộ so sánh, tạo ra hay phát hiện tín hiệu START/ STOP, nhận và truyền bit ACK, điều khiển chế độ Master hay Slave, phát hiện những điều kiện để yêu cầu ngắt và theo dõi tình trạng của kênh truyền I2C.

I.15.5.8 Thanh ghi điều khiển I2CONSET và I2CONCLR

Các thanh ghi này chứa những bit mà giá trị của chúng quyết định chức năng của các khối I2C, bắt đầu, khởi tạo hay kết thúc việc truyền tín hiệu tuần tự. Các thanh ghi này cũng quyết định tốc độ truyền, phát hiện địa chỉ và tín hiện ACK.

I.15.6 Địa chỉ thanh ghi

Hình 39 Địa chỉ thanh ghi I2C

Generic Name

Description Access Reset

value

I2Cn Register Name & Address

I2CONSE T

I2C Control Set Register.When a one is written to a bit of this register, the corresponding bit in the I2C control register is set. Writing a zero has no effect on the corresponding bit in the I2C control register.

R/W 0x00 I2C0CONSET - 0xE001 C000

I2C1CONSET - 0xE005 C000 I2C2CONSET - 0xE008 0000

I2STAT I2C Status Register.During I2C

operation, this register provides detailed status codes that allow software to determine the next action needed.

RO 0xF8 I2C0STAT - 0xE001 C004

I2C1STAT - 0xE005 C004 I2C2STAT - 0xE008 0004

I2DAT I2C Data Register.During master or

slave transmit mode, data to be

R/W 0x00 I2C0DAT - 0xE001 C008

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 74

transmitted is written to this register. During master or slave receive mode, data that has been received may be read from this register.

I2C2DAT - 0xE008 0008

I2ADR I2C Slave Address Register.Contains

the 7 bit slave address for operation of the I2C interface in slave mode, and is not used in master mode. The least significant bit determines whether a slave responds to the general call address.

I2C0ADR - 0xE001 C00C I2C1ADR - 0xE005 C00C I2C2ADR - 0xE008 000C

I2SCLH SCH Duty Cycle Register High Half

Word.Determines the high time of the I2C clock

R/W 0x04 I2C0SCLH - 0xE001 C010

I2C1SCLH - 0xE005 C010 I2C2SCLH - 0xE008 0010

I2SCLL SCL Duty Cycle Register Low Half

Word.Determines the low time of the I2C clock. I2nSCLL and I2nSCLH together determine the clock frequency generated by an I2C master and certain times used in slave mode.

R/W 0x04 I2C0SCLL - 0xE001 C014

I2C1SCLL - 0xE005 C014 I2C2SCLL - 0xE008 0014

I2CONCL R

I2C Control Clear Register.When a one is written to a bit of this register, the corresponding bit in the I2C control register is cleared. Writing a zero has no effect on the corresponding bit in the I2C control register.

WO NA I2C0CONCLR - 0xE001 C018 I2C1CONCLR - 0xE005 C018 I2C2CONCLR - 0xE008 0018

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 75

I.15.6.1 I2C Control Set Register (I2C[0/1/2]CONSET: 0xE001 C000, 0xE005

C000, 0xE008 0000)

I2CCONSET là thanh ghi điều khiển các bit của thanh ghi I2CON như bảng dưới đây. Bảng 38 Mô tả các bit của thanh ghi I2CCONSET

Bit Symbol Description Reset

Value

1:0 - Reserved. User software should not write ones to reserved bits. The value

read from a reserved bit is not defined.

NA

2 AA Assert acknowledge flag. 0

3 SI I2C interrupt flag. 0

4 STO STOP flag. 0

5 STA START flag. 0

6 I2EN I2C interface enable. 0

7 - Reserved. User software should not write ones to reserved bits. The value

read from a reserved bit is not defined.

-

I.15.6.2 I2C Control Clear Register (I2C[0/1/2]CONCLR: 0xE001 C018, 0xE005

C018, 0xE008 0018)

I2CCONCLR là thanh ghi điều khiển các bit của thanh ghi I2CON như bảng dưới đây. Bảng 39 Mô tả các bit của thanh ghi I2CCONCLR

Bit Symbol Description Reset

Value

1:0 - Reserved. User software should not write ones to reserved bits. The value

read from a reserved bit is not defined.

NA

2 AA Assert acknowledge Clear bit 0

3 SIC I2C interrupt Clear bit. 0

4 - Reserved. User software should not write ones to reserved bits. The

value read from a reserved bit is not defined.

0

5 STAC START flag Clear bit. 0

6 I2ENC I2C interface Disable bit. 0

7 - Reserved. User software should not write ones to reserved bits. The value

read from a reserved bit is not defined.

-

I.15.6.3I2C Status Register (I2C[0/1/2]STAT - 0xE001 C004, 0xE005 C004,

0xE008 0004)

Mỗi thanh ghi I2CSTAT phản ánh trạng thái tương ứng của I2C.

I.15.6.4I2C Data Register (I2C[0/1/2]DAT - 0xE001 C008, 0xE005 C008, 0xE008

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 76

I2CDAT có nhiệm vụ chứa các dữ liệu được truyền hoặc các dữ liệu vừa nhận được. CPU cũng có thể đọc và ghi vào thanh ghi này. Dữ liệu trong I2CDAT luôn luôn chuyển từ phải sang trái: bit đầu tiên được truyền đi là MSB (bit 7), và sau khi một byte đã được nhận, bit đầu tiên của dữ liệu nhận được đặt tại MSB của I2CDAT.

I.15.6.5 I2C Slave Address Register (I2C[0/1/2]ADR - 0xE001 C00C,

0xE005 C00C, 0xE008 000C)

I2CADR chỉ được thiết lập ở chế độ Slave, ở chế độ master thanh ghi này không có hiệu lực.

I.15.6.6 I2C SCL High Duty Cycle Register (I2C[0/1/2]SCLH - 0xE001

C010, 0xE0015 C010, 0xE008 0010)

Tính cho SCL lựa chọn khoảng thời gian HIGH

I.15.6.7 I2C SCL Low Duty Cycle Register (I2C[0/1/2]SCLL - 0xE001 C014,

0xE0015 C014, 0xE008 0014)

Tính cho SCL lựa chọn khoảng thời gian LOW

I.15.6.8 Lựa chọn c tốc độ dữ liệu I2C và duty cyclethích hợp

Phần mềm phải set giá trị của I2SCLH và I2SCLL để lựa chọn tốc độ dữ liệu và duty cycle thích hợp.

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 77

Một phần của tài liệu TỔNG QUAN VI XỬ LÝ LPC2300 HƯỚNG DẪN SỬ DỤNG BOARD MCB 2300 (Trang 78 - 84)

Tải bản đầy đủ (PDF)

(97 trang)