View Single Post
Old 21-06-2007, 12:46 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhquancdt View Post
1. Em muốn sử dụng đồng thời hai hoặc nhiều module trong cùng một nhóm chân, ví dụ UART và I2C hay SPI chẳng hạn. Phải chăng thiết cấu hình từng module, xử lý dữ liệu rồi xóa cấu hình đó đi, thiết lập cấu hình module khác, xử lý dữ liệu,... Có cách nào tiện lợi hơn không anh?

2. Trong chuẩn I2C, em không tìm thấy thanh ghi nào thiết lập dspic ở chế độ master hay slave!
1. Giả sử phần cứng được thiết kế thích hợp, chúng ta sẽ cho phép module nào đó hoạt động khi cần thiết, và cấm nó khi không cần thiết để module khác có thể sử dụng các chân dùng chung. Nguyên tắc là vậy, theo tôi biết thì không còn cách nào tiện lợi hơn. Về UART và I2C hay SPI, Microchip đã dự kiến khả năng này, do đó module UART có thể dùng các chân thay thế, nhường hẳn cặp chân chính của nó cho module I2C hay SPI.

2. dsPIC khi kích hoạt module I2C thì nó sẽ làm việc luôn ở 2 chế độ master và slave, chính xác hơn là cả 2 mạch logic cho master và slave đều cùng hoạt động. Bạn đọc tài liệu 'dsPIC30F Family Reference Manual', ký hiệu tài liệu là DS70046 (phiên bản hiện tại là DS70046E), để có thêm thông tin về module I2C cũng như những ngoại vi khác. Tôi tạm dịch một phần trong mục 21.4-Enabling I2C operation của tài liệu đó:
Trích:
The module is enabled by setting the I2CEN (I2CCON<15>) bit.
The I2C module fully implements all master and slave functions. When the module is enabled, the master and slave functions are active simultaneously and will respond according to the software or the bus events.
When initially enabled, the module will release SDA and SCL pins, putting the bus into the Idle state. The master functions will remain in the Idle state unless software sets a control bit to initiate a master event. The slave functions will begin to monitor the bus. If the slave logic detects a Start event and a valid address on the bus, the slave logic will begin a slave transaction.
Trích:
Module được cho phép (hoạt động) bằng cách bật bit I2CEN (bit I2CCON<15>).
Module I2C hiện thực đầy đủ tất cả các chức năng master và slave. Khi module được cho phép, các chức năng master và slave được kích hoạt đồng thời và sẽ đáp ứng tương ứng với các sự kiện phần mềm hay trên bus.
Ban đầu khi được cho phép, module sẽ thả các chân SDA và SCL, đặt bus vào trạng thái Idle. Các chức năng master sẽ ở trạng thái Idle trừ khi phần mềm đặt một bit điều khiển để kích hoạt một sự kiện master. Các chức năng slave sẽ bắt đầu giám sát bus. Nếu logic slave phát hiện một sự kiện Start và một địa chỉ hợp lệ trên bus, logic slave sẽ bắt đầu một giao tác slave.
Hy vọng đã giải đáp thắc mắc của bạn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn