Chế độ nhận Master

Một phần của tài liệu Thiết kế đồng hồ thời gian thực dùng vi điều khiển AT MEGA 16 (Trang 27 - 29)

Hình2.6.2.: Dữ liệu được truyền trong Master Receiver Mode.

Điều kiện START gửi để ghi các giá trị đến TWCR như sau:

TWEN phải được ghi lên 1 để khởi tạo đường truyền 2 dây, TWSTA phải được ghi thành 1 để truyền điều kiện START vàTWINT phải ghi thành 1 để xóa cờ TWINT. TWI sẽ kiểm tra sau trên đường truyền 2 dây và phát ra điều kiện START càng sớm càng tốt bus đang còn rảnh. Sau khi điều kiện START được truyền đi, cờ TWINT được lập bởi phần cứng, và mã trạng thái ở TWSR sẽ là $08 . Để vào chế độ MR, SLA+R phải được truyền. Nó làm việc do sự ghi SLA+R vào TWDR. Sau đó TWINT bit nên được xóa (ghi thành 1) để tiếp tục truyền. Nó được hoàn thành bởi ghi các giá trị của TWCR như sau.

Khi SLA+R được truyền và sự nhận bit đã nhận ra, TWINT được lập lại và số trạng thái mã ở TWSR có thể thực hiện được. Các mã trạng thái ở chế độ Master là $38, $40, or $48. Quá trình nhận dữ liệu có thể được đọc từ thanh ghi TWDR khi cờ TWINT đươc lập bằng 1 do phần cứng. Lược đồ này cứ lặp lại

mãi cho đến khi byte cuối cùng được nhận. Sau khi byte cuối cùng được nhận, MR nên gửi đến ST bởi gửi NACK sau khi đã nhận byte dữ liệu cuối cùng. Quá trình nhận này kết thúc khi phát ra điều kiện STOP hoặc lặp lại điều kiện

START. Các điều kiện STOP được phát ra bằng cách ghi giá trị vào TWCR như sau:

Các điều kiện REPEATED START được phát ra bằng cách ghi giá trị vào TWCR như sau:

Sau khi lặp lại điều kiện START (trạng thái $10) chế độ truyền nhận 2 dây có thể đáp ứng cùng với Slave lại, hoặc là Slave mới được truyền với điều kiện STOP. Sự lặp lại điều kiện START khởi tạo chủ để chuyển chế độ truyền Slaves,Master và chế độ nhận Master mà không mất điều khiển bus.

Một phần của tài liệu Thiết kế đồng hồ thời gian thực dùng vi điều khiển AT MEGA 16 (Trang 27 - 29)

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

(97 trang)
w