PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 16-08-2008, 10:08 AM   #1
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Vậy trong www.dientuvietnam.net bạn có biết topic nào nói về I2C không thì chỉ cho mình với nhé?Hoặc có trang web tiếng việt nào bàn về I2C ko thì báo dùm mình với nhé!!!Thanks.
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-08-2008, 07:31 PM   #2
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
I2C trên MikroC

I2C với Pic 16f877A:
http://www.picvietnam.com/forum//showthread.php?t=2644

I2C với Pic 16f84A:
http://www.picvietnam.com/forum//showthread.php?t=2671

thay đổi nội dung bởi: minhsondaklak, 17-08-2008 lúc 10:27 PM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-08-2008, 04:30 PM   #3
hmk
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 1
:
Chào các bạn,

Tôi đang dùng PIC 18F4520 làm đồng hồ thời gian thực sử dụng ds1307. Dùng MPLAB C18 để lập trình và các thư viện chuẩn của MCC18. Tôi mô phỏng trên proteus thì chạy ngon lành nhwng mang ra làm mạch thật thì không chạy. Tôi dùng hàm OpenI2C(MASTER, SLEW_OFF) để cho phép I2C và tạo tốc độ 100kHz trên SCL (theo chú thích trong thư viện) nhưng thực tế thì khi dùng osciloscope để đo tần số trên SCL thì thấy tốc độ khoảng 500kHz khi có truyền dữ liệu. Bạn nào biết lý do tại sao và cách khắc phục thi giúp tôi nhé. Thanks nhiều.

hmk
hmk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2008, 06:45 PM   #4
ntn60
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 1
:
Trích:
Nguyên văn bởi hmk View Post
Chào các bạn,

Tôi đang dùng PIC 18F4520 làm đồng hồ thời gian thực sử dụng ds1307. Dùng MPLAB C18 để lập trình và các thư viện chuẩn của MCC18. Tôi mô phỏng trên proteus thì chạy ngon lành nhwng mang ra làm mạch thật thì không chạy. Tôi dùng hàm OpenI2C(MASTER, SLEW_OFF) để cho phép I2C và tạo tốc độ 100kHz trên SCL (theo chú thích trong thư viện) nhưng thực tế thì khi dùng osciloscope để đo tần số trên SCL thì thấy tốc độ khoảng 500kHz khi có truyền dữ liệu. Bạn nào biết lý do tại sao và cách khắc phục thi giúp tôi nhé. Thanks nhiều.

hmk
Có thể do bạn dùng thạch anh tần số gấp 5 lần, thường thì các hàm trong thư viện dùng với thạch anh 4MHz
ntn60 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2008, 04:01 PM   #5
hopeman
Đệ tử 6 túi
 
hopeman's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 146
:
Trích:
Nguyên văn bởi hmk View Post
Chào các bạn,

Tôi đang dùng PIC 18F4520 làm đồng hồ thời gian thực sử dụng ds1307. Dùng MPLAB C18 để lập trình và các thư viện chuẩn của MCC18. Tôi mô phỏng trên proteus thì chạy ngon lành nhwng mang ra làm mạch thật thì không chạy. Tôi dùng hàm OpenI2C(MASTER, SLEW_OFF) để cho phép I2C và tạo tốc độ 100kHz trên SCL (theo chú thích trong thư viện) nhưng thực tế thì khi dùng osciloscope để đo tần số trên SCL thì thấy tốc độ khoảng 500kHz khi có truyền dữ liệu. Bạn nào biết lý do tại sao và cách khắc phục thi giúp tôi nhé. Thanks nhiều.

hmk
bạn hãy để ý lại phần khai báo tần số dao động của mình, tôi nghĩ là đã có nhầm lẫn ở đâu đó trong phần này dẫn tới các hàm của bạn dùng tính toán với tần số dao động bị sai
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com
hopeman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-09-2008, 11:06 AM   #6
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Chào!Mình đang nghiên cứ giao tiếp giữa LCD thường với I2c điều khiển bởi Master là Pic.Vậy giao tiếp giữa LCD và I2C trên thực tế phần cứng mình phải giao tiếp như thế nào đây,giao tiếp những chân nào với nhau ?Còn đối vớ Rom thì sao?Vì Rom ngoài địa chỉ Slave ra còn có địa chỉ của từng thanh ghi trong Rom ,Mình sẽ giao tiếp với từng thanh ghi như thế nào đây?Trên thị trường hiện nay có Lcd,Rom nào tích hợp sẵn I2C không nhỉ?Hepl me!Please!
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-09-2008, 11:11 AM   #7
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Àh,hình như chuẩn I2C không có cơ chế báo lỗi bit trên đường truyền phải không các bạn?Ngoài ACK chỉ dùng báo khi truyền hết một byte dữ liệu còn Nack chỉ dùng khi không nhận được vậy còn cơ chế báo lỗi ,kiểm tra lỗi bit hay lỗi trên đường truyên thì không có phải không?Ai biết giúp mình với nhé!Thanks.
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-09-2008, 11:22 AM   #8
hopeman
Đệ tử 6 túi
 
hopeman's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 146
:
Trích:
Nguyên văn bởi dientubk3 View Post
Àh,hình như chuẩn I2C không có cơ chế báo lỗi bit trên đường truyền phải không các bạn?Ngoài ACK chỉ dùng báo khi truyền hết một byte dữ liệu còn Nack chỉ dùng khi không nhận được vậy còn cơ chế báo lỗi ,kiểm tra lỗi bit hay lỗi trên đường truyên thì không có phải không?Ai biết giúp mình với nhé!Thanks.
việc ở trạng thái thông thường cả SDA và SCL ở mức cao cũng là một cách để nhận biết được sự cố "đứt dây" trong quá trình truyền, còn cơ chế báo lỗi bit thì thực sự là mình chưa nghe nói đến ở chuẩn giao tiếp I2C
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com
hopeman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-09-2008, 06:37 PM   #9
tallht
Đệ tử 5 túi
 
tallht's Avatar
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: Bình Thạnh, TPHCM
Bài gửi: 98
:
theo mình được biết thì có mấy loại eeprom của atmel có tích hợp i2c đó: At24c01,at24c02,04,...
__________________
-------------------------------------------------------------------
Cung cấp bo mạch thực hành Arduino và các mạch sáng tạo.
Mời tham quan: https://www.facebook.com/eshop1109

Cung cấp dịch vụ order hàng từ Aliexpress
Liên hệ: https://www.facebook.com/Mua-h%E1%BB...5265931515571/
tallht vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-09-2008, 12:46 AM   #10
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Chà !Sao ko thấy anh em giúp mình vậy cà?Help me ,please!!!
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-09-2008, 12:52 AM   #11
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Àh,còn câu hỏi nữa là các đường SDA,SCL sử dụng theo hàm "And "nối dây.Vậy thì trên một bus I2C có nhiều Mater và Slave thì cấu trúc mạch thực tế như thế nào ?Có hàm And nối dây trên mạch hay không ?Có gì úp dùm mình một tấm hình thực tế nhé!Mình nghĩ đây cũng là những điều cơ bản về I2C.Chắc mọi người sẽ dành thời gian giúp mình .Thanks a lot!
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-09-2008, 02:57 PM   #12
piano lover
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 5
:
Cho mình hỏi cách khai báo tốc độ truyền I2C trong CCS như thế nào, vì phần cứng chỉ hổ trợ tối đa 400 Kbps nhưng trong phần help có ví dụ fast=450000 (sets the target speed to 450 KBSP) và giá trị đó khai báo bao nhiêu cũng không báo lỗi, chẳng bít thằng CCS nó hiểu như thế nào? và 400Kbps là tốc độ tối đa trong Pic hay là tốc độ tối đa của chuẩn I2C? chiều dài tối đa của bus I2C hổ trợ là bao nhiêu? trên trang web này nó bảo là 100m ở tốc độ 500Hz http://www.esacademy.com/faq/i2c/q_and_a/faq/i2cqa1.htm
piano lover vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-09-2008, 05:47 PM   #13
thienthan_den
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 3
:
Đồng Bộ Trong Giao Tiếp I2C

Em có một chút thắc mắc về giao tiếp I2C: Không biết quá trình truyền và nhận dữ liệu giữa master và slave được đồng bộ nhờ phần cứng hay là nhờ thằng CSS hoặc là tự mình phải làm lấy? Chuyện gì xảy ra khi master truyền dữ liệu mà không nhận được ACK từ slave? Nó sẽ truyền lại byte dó hay là cứ chờ? Một vấn đề nữa là khi dùng hàm i2c_isr_state() đọc trạng thái của bus i2c và trả về giá trị <0x80 thì mình có phải đợi cho dữ liệu ổn định bằng cách dùng delay_ms(x) trước khi dùng i2c_read() không? Chương trình của em viết khi không có delay_ms() thì slave không đọc được giá trị về? Không biết có phải em viết sai không. Mong mọi người giúp đỡ.
PS: hôm nay không mang code theo nên không up lên được,mong mọi người thông cảm.
thienthan_den vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-09-2008, 05:49 PM   #14
piano lover
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 5
:
Sao không ai giúp mình hết vậy?
piano lover vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-10-2008, 10:19 PM   #15
dientubk3
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 14
:
Mình đang làm về I2CSB,dùng để diều khiển các thiết bị thụ động như LCD ,ram.Bây giờ mình ra ngoài thị trường mua loại LCD bình thường không tích hợp bus I2C và một Pic có tích hợp I2C làm Master điều khiển.con I2CSB mình sẽ tạo ra ,vậy mình nên mua lạoi LCD nào ?Pic nào phổ biến trên thị trường để phục vụ cho nghiên cứu của mình đây!Vui lòng giúp mình nhé!!!Thanks
dientubk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:01 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam