PDA

View Full Version : I2C Slave Library?


tuanva
07-11-2005, 11:39 AM
Một số PIC hỗ trợ cả 2 chuẩn I2C và SPI nhưng chỉ dùng được 1 trong 2. Vậy nếu giả sử tôi cần ghép nối serial bus (ví dụ I2C) giữa 2 PIC trong khi mỗi PIC cũng có giao tiếp với các ngoại vi khác (RTC, DAC,...)thì phải làm thế nào? Xin các cao thủ giúp đỡ.

Cám ơn.

mafd_47a
07-11-2005, 09:20 PM
Một số PIC hỗ trợ cả 2 chuẩn I2C và SPI nhưng chỉ dùng được 1 trong 2. Vậy nếu giả sử tôi cần ghép nối serial bus (ví dụ I2C) giữa 2 PIC trong khi mỗi PIC cũng có giao tiếp với các ngoại vi khác (RTC, DAC,...)thì phải làm thế nào? Xin các cao thủ giúp đỡ.

Cám ơn.


I2C, SPI co the mac noi tiep duoc nhieu VDK, hay cac thiet bi ngoai vi tren mot duong truyen ma ??????????

Con neu bac dung SPI cho mot thiet bi ngoai vi, va muon dung I2C cho viec ket noi voi VDK khac ( o che do Master ) ban co the dung phan mem.

Trong muc nay toi co bai viet dung phan mem cho I2C roi day

tuanva
08-11-2005, 09:01 AM
Ý tôi là thế này: Tôi có 1 PIC kết nối I2C với DAC và 1 PIC khác nối I2C với EEPROM, RTC. Bây giờ nối 2 PIC với nhau như thế nào?

mafd_47a
08-11-2005, 10:34 AM
Ý tôi là thế này: Tôi có 1 PIC kết nối I2C với DAC và 1 PIC khác nối I2C với EEPROM, RTC. Bây giờ nối 2 PIC với nhau như thế nào?

Ban dùng USART nối Master và Slave ( tất nhiếu nếu như trong ứng dụng của bạn ko kết nối với PC )

linhnc308
19-02-2006, 03:15 AM
Việc giao tiếp giữa các VDK với nhau thông qua I2C hay bất kỳ giao tiếp nào là vấn đề hay. Về I2C tôi đã làm xong rồi, lấy đơn giản giưa 2 con PIC 88 và 877, 877 là master. Tôi cho truyền một chuỗi ký tự sang 88, 88 nhận được và phản hồi lại. 877 sẽ hiển thị trên LCD. Quan trọng nhất tron giao tiếp này là việc xử lý dữ liệu ở con Slave. Khi nó nhận được yêu cầu đọc từ master thì cần truyền byte ra. Khi dùng CCS ta sử dụng ngắt #INT_SSP

Nguyên văn bởi tuanva:
Ý tôi là thế này: Tôi có 1 PIC kết nối I2C với DAC và 1 PIC khác nối I2C với EEPROM, RTC. Bây giờ nối 2 PIC với nhau như thế nào?

Đơn giản là bạn nối chúng với đường I2C, gán cho một địa chỉ. Như vậy cả hai đều dùng được tại nguyên của nhau.

Ngắt SSP
#INT_SSP
I2C_ISR {
byte data_in

if (i2c_state_isr < 0x80)
i2c_write(data_to_send_to_master)
else
data_in = i2c_read()

}
// Đây chỉ là ví dụ đơn giản cho Slave.

thanhlong156
05-03-2009, 08:46 PM
bác nào có tài liệu về I2C thì cho tui với.tui cũng không hiểu về nó lắm.Giả sử tôi muốn gắn 1 cái webcam với 1 VDK thì làm thế nào để 2 con đó giao tiếp với nhau.mong các bác chỉ giúp

hopeman
06-03-2009, 09:02 AM
bạn hãy đọc mục này nhé
http://www.picvietnam.com/forum/showthread.php?t=611