Giao tiếp I2C và SPI

honghiep

Cố Vấn CLB
Staff member
Anh chị cho e hỏi: PIC16F887 có cả I2C và SPI nhưng sử dụng chung chân RC3 và RC4. Vậy PIC có thể sử dụng đồng thời cả 2 giao thức này không?:5cool_sweat:
 

nguyenquoctrung-hhk

Thành Viên PIF
Theo như anh nghĩ thì hai chức năng này không hoạt động cùng lúc, nhưng có thể thay phiên nhau tuần tự thì được. khi SPI hoạt động thì I2C se tắt, và ngược lại. nếu hai cái hoạt động cùng lúc thì sẽ xung đột data ==> PIC sẽ nguy cơ bị gì đó, hehe
 
theo thiết kế của nhà sản xuất thì nên dùng 1 chức năng tại 1 thời điểm thôi em nhé.
nhưng xét vì mặt lý thuyết, do giao thức I2C thường ko mất nhiều thời gian truyền-nhận nên hoàn toàn có thể lập trình để 2 giao thức này hoạt động trên cùng chân. Khi đó ta phải code sao cho sau một khoảng thời gian thì SPI tạm dừng cho I2C hoạt động. xung clock cho 2 cái này có thể dùng chung.
thực tế/chi tiết thì anh ko rõ:D tại hồi đó cũng muốn tìm hiểu, nhưng tới lý thuyết thôi là mình đã chọn sang phương án khác rồi =))

P/S:google để biết thêm chi tiết - tất nhiên là bằng tiếng Anh.
 

Manhdd

Cố Vấn CLB
Staff member
Uhm. Trong trường hợp khó khăn trong việc dùng cả 2 cho cùng đường truyền, bạn có thể lập trình IO cho 1 đường truyền. SPI sẽ dễ viết hơn, nhất là trong trường hợp xuất cho 74HC595 :1cool_byebye:
 
Top