![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#151 |
Nhập môn đệ tử
Tham gia ngày: Jan 2010
Bài gửi: 1
: |
Mình vừa mới vào topic đã thấy mọi người nói là làm I2C với CCS, vậy không biết CCS là gì và cài đặt như thế nào, mong các pro chỉ giúp! Thanks!
|
![]() |
![]() |
![]() |
#152 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 11
: |
Các bác ơi em làm đồ án về truyền thông I2C ,nhưng em không biết khoảng cách của nó truyền được bao xa ,và có hay bị nhiễu không ,nếu muốn truyến với khoảng cách xa thì có loại IC nào hỗ trợ không ,các bác giúp em với .
Thanks |
![]() |
![]() |
![]() |
#153 | |
Trưởng lão PIC bang
|
Trích:
http://www.interfacebus.com/I2C_Inte..._Standard.html http://namqn.byethost7.com/Commu.php#i2c http://www.esacademy.com/en/library/...s/i2c-faq.html Không có con số cụ thể cho khoảng cách truyền tối đa, vì nó phụ thuộc vào tốc độ clock, loại cáp được dùng, và số vi mạch trên bus. Chú ý là có thể dùng các bộ lặp tín hiệu để nâng khoảng cách. 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 thay đổi nội dung bởi: namqn, 25-01-2010 lúc 12:58 PM. |
|
![]() |
![]() |
![]() |
#154 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 11
: |
Vâng ạ em cảm ơn anh .
Đề tài của em làm là nhà thông minh ý định của em là định sử dụng 10-15con PIC6F88 slave đặt ở các khu vực hiện trường(như cầu thang,cửa,nhà bếp....)và 1 con master 16F877A mater thu thập dữ liệu từ các slave và kết nối với PC,tốc độ xung clock của em là 500khz,cáp xoắn đôi thì những ý tưởng của em đó liệu trong thực tế có ổn không anh? Mong các bá giúp đỡ thanks các bác nhiều. |
![]() |
![]() |
![]() |
#155 |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 11
: |
Em tìm hiểu trên mạng thì được biết có con IC 82B715 để nâng cao khoảng cách truyền thông I2C ,nhưng em ko biết con này có mặt trên thị trường không nhỉ?em tìm mua mà không thấy có ,bác nào biết chỉ giùm em với.
thanks |
![]() |
![]() |
![]() |
#156 | |
Đệ tử 1 túi
Tham gia ngày: Oct 2008
Bài gửi: 11
: |
Trích:
|
|
![]() |
![]() |
![]() |
#157 | |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 8
: |
Trích:
![]() Mình đã dùng con này, truyền được 15m ngon. |
|
![]() |
![]() |
![]() |
#158 |
Đệ tử 6 túi
Tham gia ngày: Apr 2009
Bài gửi: 132
: |
không có hình các bạn ơi????????????mình không hiểu
|
![]() |
![]() |
![]() |
#159 |
Nhập môn đệ tử
Tham gia ngày: Apr 2010
Bài gửi: 3
: |
bác nào có chương trình giao tiếp i2c với con TC74 và 16F877A ko,cho mình xin với
|
![]() |
![]() |
![]() |
#160 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 10
: |
khi giao tiếp i2c giữa hai pic 16f877a có bác nào gặp trường hợp M truyền không đúng địa chỉ nhưng S vẫn nhận khí thế không? cái này em chưa làm mạch thật, mới mô phỏng và thấy vậy.
|
![]() |
![]() |
![]() |
#161 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 10
: |
hì, giờ mới làm mạch thật giao tiếp I2C giữa 1 con master ( 16f877a ) và 2 con sleve ( 16f877a ) thấy nó đều hoạt động đúng, chứ không như mô phỏng. ngày trước thì chỉ là làm giao tiếp với ds1307 thôi, mãi đến hôm nay có người nhờ mới làm tới giao tiếp giữa các pic với nhau. non quá, mong các bác giúp đỡ nhiều nhé.
|
![]() |
![]() |
![]() |
#162 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 10
: |
à, tới em định học về ARM có bác nào rỗi rãi chỉ giúp em nhé
|
![]() |
![]() |
![]() |
#163 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 10
: |
bác namquan cho em hỏi, vì sao khi em nạp luôn ct example về ethenet của 16f877a có sẵn trong mikroc lại không chạy gì cả, nhưng vẫn cái mạch ấy em nạp ct của con 18f4580 vẫn chạy ạ, đó là vì sao hả bác?
|
![]() |
![]() |
![]() |
#164 |
Đệ tử 1 túi
Tham gia ngày: Dec 2009
Bài gửi: 24
: |
I2C không chịu chay.
Các bác giúp e vụ i2c này với. code lấy của bác Hoàn. mô phỏng thì chạy cứ ầm ầm. nhưng vô mạch thật thì ... híc híc e nó nằm im.
Đây là code của Master Code:
#include <16F877A.H> #fuses XT,NOWDT,NOPROTECT,NOLVP #use Delay(Clock=4000000) #use i2c(master, sda=PIN_C4, scl=PIN_C3, force_hw) void write_I2C(int8 value, int8 slave_addr) { i2c_start(); i2c_write(slave_addr); i2c_write(value); i2c_stop(); } int8 read_I2C(int8 slave_addr) { int8 value_re; i2c_start(); i2c_write(slave_addr + 1); value_re = i2c_read(0); i2c_stop(); return value_re; } void main() { int8 value_re; int8 i; const int8 N = 8; const int8 DIGITS[N] ={ 0b11111111, 0b11111110, 0b11111100, 0b11111000, 0b11110000, 0b11100000, 0b11000000, 0b10000000, }; const int8 slave_addr = 0x10; set_tris_b(0x00); while(1){ for(i = 0; i<8; i++){ write_I2C(DIGITS[i], slave_addr); delay_ms(500); value_re = read_I2C(slave_addr); output_b(value_re); } } } Còn đây là code của Slave: Code:
#include <16F877A.H> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(Clock=4000000) #use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0x10, force_hw) int8 value = 0x01; #INT_SSP void i2c_isr() { int8 state; state = i2c_isr_state(); if(state < 0x80) value = i2c_read(); if(state == 0x80){ i2c_write(value); } } void main() { enable_interrupts(GLOBAL); enable_interrupts(INT_SSP); set_tris_d(0x00); while(1){ output_d(value); } } thay đổi nội dung bởi: chungcb86, 11-10-2010 lúc 04:50 PM. |
![]() |
![]() |
![]() |
#165 |
Đệ tử 1 túi
Tham gia ngày: Dec 2009
Bài gửi: 24
: |
Bác nào sử bít code bị mắc ở đâu sửa giúp mình với.
|
![]() |
![]() |
![]() |
|
|