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 Bài Trong Ngày 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 15-09-2006, 05:53 PM   #1
hoanf
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 51
:
Trích:
Nguyên văn bởi thanhha View Post
Hi các bạn!
Hôm nay I2C không chay, mình dò 1 buổi, phát hiện điện áp cấp 2 Board Master va Slave không đủ 5V và bị lệch(đã nối mass chung 2 board): Master ->4.9V, Slave -> 4.2V. Các bạn nên kiểm tra dòng, áp mạch khi I2C không chạy với chtr đã chuẩn.

Chúc mừng hoanf, bạn đã thành công!!
Hihi! Cám ơn bạn nha.
Ah còn cái vụ nối mass chung là chuối nhất luôn đo'. Làm cho chuẩn I2C từ 2 dây trở thành 3 dây .
Giờ chỉ còn 1 cách đó là nối đất cả 2 board là thành chuẩn 2 dây. Hix.

Ah còn cái zu áp thấp này tui mới thấy đó nha. Đúng là gặp mấy lỗi này thì trời biết. Ông Hà này hay lắm mới tìm ra lỗi này đó.

Thân. Cuối tuần vui vẻ nha.
hoanf
hoanf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-09-2006, 11:45 AM   #2
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Wink

Trích:
À, nếu đang nghiên cứu I2C thì anh nghĩ nhân tiện nên đi cho nó tới nơi tới chốn. Tụi em thử làm cái I2C bằng phần mềm xem, tất nhiên source code thì coi như anh cung cấp rồi , bằng gợi ý.

Ngoài ra, để động viên tinh thần học tập của tụi em, anh xin tặng mỗi em 1 con PIC (nếu tụi em ở SG, thì ghé cửa hàng STH để chọn bất kỳ con nào có ở cửa hàng mà em muốn). Gửi thông tin cá nhân cho anh, để anh nhắn cho anh Lợi.

Hiện tại anh đi rồi nên không thể chuyển phát nhanh cho tụi em được (mỗi lần chuyển tốn tiền, và nếu nhờ Chính chuyển thì tốn tiền của Chính). Anh không biết Hà ở đâu, nhưng hình như Hoàn thì ở HCM và có gặp anh rồi thì phải. Nếu Hà ở nơi khác, Hoàn có thể nhận giúp và chuyển lại cho Hà sau có được không?

Tuỳ tụi em quyết định

Chúc vui.
Ồ, không sao, không sao, một vài triệu thì thiếu, chứ một vài ngàn thì thu xếp được, thu xếp được.

Hoanf có tham gia dự án PID thì phải. Tha hồ mà nhận chip nhẩy. .

Mấy bạn cứ gửi địa chỉ lên đây, mình sẽ chuyển chip cho.

Bạn nào muốn viết code I2C bằng phần mềm, ngôn ngữ ASM, có thể ghé mình, cho mượn tài liệu mà nghiên cứu luôn.

Hiểu được cách viết bằng ASM, chuyển code sang C chắc cũng không có vấn đề gì lớn nhẩy.

__________________


thay đổi nội dung bởi: ntc, 16-09-2006 lúc 11:54 AM.
ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-09-2006, 01:50 AM   #3
chumeodihia
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 17
:
Trời ui sao các cụ lão làng nhà ta lai viết giao tiếp bằng ccs không vậy.Tôi thì viết truyền thông I2C bằng cả hai ngôn ngữ luôn ==masterviết bằng CCS và claver viết bằng ASM chạy cực tốt==.MASTER DÙNG 18F452 VÀ CLAVER DUNG 18F4431.HÔM NÀO TUI POST LÊN CHO ANH EM NGHIÊN CỨU CHƠI,hom nay do không đem theo chương trình.
Bác FALLEAF ơi Tôi là thành viên mới vào diễn đàn ghé qua forum này thấy hay nên nhảy vào không biết sau khi post chương trình này lên thì tui được đệ tử mấy túi nhỉ..8-x hehehe.Hỏi thử cho biết thôi chứ không có gì đau

Phong độ chỉ là thoáng qua
Trình độ mới là vĩnh cửu
Chú mèo đihia tái bút
thanks
chumeodihia vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-09-2006, 02:43 AM   #4
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
HI, mấy túi không quan trọng, vì có thể spam thật nhiều sẽ có nhiều túi . Nhưng điều đó không được khuyến khích trong picvietnam. Ở picvietnam có một cách nhìn hơi lạ một chút với các diễn đàn khác, đó là sự tập trung và làm việc.

Hãy cho những gì bạn muốn lấy. Đó là nguyên tắc vô cùng quan trọng.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2006, 11:42 AM   #5
rmitoday
Đệ tử 2 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 27
:
Talking

Bẩm báo PIC bang chủ và các trưởng lão? Như bang chủ đã nói là lên học viết ASM trước rùi chuyển qua các ngôn ngữ khác sẽ dễ. Em thấy cần một tutorial cho I2C bằng ASM vì em mới học nên chỉ biết ASM thui. Các cao thủ ra chiêu bằng C ào ào chẳng hiểu mô tê chi hết á.
Xin cảm ơn.
rmitoday vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2006, 04:27 PM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Có 2 application notes về master và slave được M cung cấp khá chi tiết, 734, 735 thì phải, không nhớ chính xác là cái nào, bạn có thể tìm hiểu thêm về nó.

Tutorial về I2C bằng MPASM thì Phạm Đức Mạnh đã cung cấp rồi thì phải, bạn tìm lại bài viết của mafd47a.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2006, 05:12 PM   #7
thanhha
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Nơi Cư Ngụ: Ho Chi Minh City
Bài gửi: 9
:
Send a message via Yahoo to thanhha
Vâng! Đúng như Bác F nói !! Hà đã load tài liệu ASM về I2C này ở đây:
http://www.microchip.com/stellent/id...t6_NextRow=101

+Tài liệu AN735 nói về Master.
+Tài liệu AN734 nói về Slave.

Theo Hà nghĩ, mình có thể dùng tài liệu này
để tham khảo tự viết lệnh I2C mới trong CCS C thì rất tốt.
Chương trình viết hay lắm!!

Bạn tham khảo đi !

thay đổi nội dung bởi: thanhha, 18-09-2006 lúc 05:13 PM. Lý do: chỉnh tên cho đúng
thanhha vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-09-2006, 06:26 PM   #8
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
Các bạn tham khảo thêm ở đây về I2C:

http://namqn.byethost7.com/Commu.php
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, 26-10-2008 lúc 12:42 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 02:23 PM   #9
hoangminh1234
Đệ tử 1 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 23
:
Anh oi, em chua hieu ve I2C lam va tren dien dan lai chang thay ai noi ve chuyen nay. Trong giao thuc I2C trong CCS co ham i2c_read(), nhung ham do chi la ham doc tu master truyen xuong slave dung ko a? Cai ma tui em dang can la nhu vay: master truyen xuong 10byte (10byte nay chua gia tri la vi tri muon dieu khien dong co rc), sau do slave se doc 10 byte do va xuat gia tri dieu khien cho tung dong co ung voi tung byte da duoc truyen tu master. Nhung em ko thay ai noi ve chuyen nay va co thac mac nhu sau, anh chi dum em nhe
- Du lieu tu master truyen xuong se vao dau trong slave(eeprom?),neu trong eeprom thi lam sao de con slave co the lay ra va su dung cac gia tri do?
hoangminh1234 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 02:41 PM   #10
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi hoangminh1234 View Post
Anh oi, em chua hieu ve I2C lam va tren dien dan lai chang thay ai noi ve chuyen nay. Trong giao thuc I2C trong CCS co ham i2c_read(), nhung ham do chi la ham doc tu master truyen xuong slave dung ko a? Cai ma tui em dang can la nhu vay: master truyen xuong 10byte (10byte nay chua gia tri la vi tri muon dieu khien dong co rc), sau do slave se doc 10 byte do va xuat gia tri dieu khien cho tung dong co ung voi tung byte da duoc truyen tu master. Nhung em ko thay ai noi ve chuyen nay va co thac mac nhu sau, anh chi dum em nhe
- Du lieu tu master truyen xuong se vao dau trong slave(eeprom?),neu trong eeprom thi lam sao de con slave co the lay ra va su dung cac gia tri do?
Bạn đọc thật kỹ tutorial của picvietnam do Linh viết ở ngay bài đầu tiên của luồng này (falleaf gửi thay cho Linh).

Linh viết bài này có một số vấn đề truyền tải chưa được rõ lắm do cách dùng câu chữ mà thôi. F viết lại đôi chút như sau:

trong giao tiếp I2C, có thể có (1 master và 1 slave) hoặc (1master và nhiều slave). Đây là giao thức chuẩn. Tuy nhiên, cải tiến giao thức này một chút, chúng ta sẽ có mạng I2C (nhiều master, mỗi con thay phiên làm master)..

Chúng ta chỉ đề cập giao tiếp I2C ở dạng chuẩn, tức là có duy nhất 1 master trong mạng.

Khi muốn dữ liệu truyền từ A tới B. Có nhiều trường hợp xảy ra như sau:
A là master, B là slave: khi đó A sẽ gửi một loạt dữ liệu có định dạng sẵn (các bạn xem lại định dạng I2C), thì trong định dạng đó có bao gồm mấy thông tin như sau (master muốn đọc hay muốn ghi? địa chỉ của slave là bao nhiêu? master có muốn kiểm tra bằng xung ACK, tức là xung báo đã truyền nhận đầy đủ hay không? và nội dung dữ liệu (nếu master muốn ghi), và địa chỉ thanh ghi của slave (nếu master muốn đọc một thanh ghi nào đó trong slave).

Nếu A là slave, thì slave không được quyền muốn. Khi nào master kêu nhận thì phải nhận, khi nào master kêu gửi, thì phải gửi. Slave thì không được quyền muốn. Nếu muốn thì làm nô tì I-Sau-ra .

Còn nếu cả A và B đều là slave, khi master cần truyền dữ liệu từ A sang B, thì Master phải yêu cầu A gửi cho master, nhận xong, master gửi lại cho B.

Như vậy vấn đề học giao tiếp I2C, chỉ đơn giản là học cách định dạng dữ liệu trong frame truyền của I2C (mô tả sơ bộ ở trên), và học cách nối mạng giữa mạng điện áp thấp và điện áp cao (vd: một thiết bị I2C 3.3V, kết nối với thiết bị 5V thì làm thế nào?).. kiểu như vậy thôi là các bạn đã có thể thiết kể rất nhiều ứng dụng với I2C, và làm việc với rất nhiều thiết bị rồi.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 04:01 PM   #11
hoangminh1234
Đệ tử 1 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 23
:
tức là con tớ hoàn toàn bị động trong trường hợp này sao? Nó không thể nào lấy tí thông tin nào đem bán cho các điệp viên để kiếm chút cháo sao? Buồn vậy! Vậy theo anh làm sao giải quyết bài toán mà tụi em đang gặp phải nhỉ:

Một con chủ truyền 10 byte cho con tớ và con tớ có toàn quyền sử dụng 10 byte này??
anh cho em xin ý kiến nhé
hoangminh1234 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 09:46 PM   #12
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi hoangminh1234 View Post
Một con chủ truyền 10 byte cho con tớ và con tớ có toàn quyền sử dụng 10 byte này??
anh cho em xin ý kiến nhé
Khi con Slave nhận được dữ liệu, thì nó nằm trong thanh ghi đệm, thanh ghi nào thì F quên rồi, và khi đã nằm trong bộ đệm của nó, thì nó có toàn quyền sử dụng. Nó thích làm gì thì làm.

Các bạn lưu ý rằng, F nói trường hợp nâng cao, thì chúng ta hoàn toàn có quyền sử dụng mạng Multi Master. Khi bạn setup chip ở chế độ Slave, thì nó thụ động. Nhưng hãy thử nghĩ, tôi làm slave cho mạng này, và làm master của một mạng khác, vậy thì có được không? Vì tôi có tới 40 chân chứ không phải 2 chân.

Vậy nếu tôi làm master cho một mạng khác, mà trong đó slave của tôi lại là master của cái mạng mà tôi làm slave . Hoàn toàn được.

Nhưng vấn đề nâng cao ở chỗ nữa, nếu làm như vậy, tôi phải tốn 4 dây để làm 2 mạng. Vấn đề trước đây hình như F đặt ra cho Linh, nhưng Linh chưa giải quyết xong, đó là Multi Master trong một mạng dùng 2 dây thôi.

Vấn đề này F tiếp tục treo ở đây chờ người giải quyết.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-10-2006, 12:41 AM   #13
hoangminh1234
Đệ tử 1 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 23
:
Trích:
Nguyên văn bởi falleaf View Post
Khi con Slave nhận được dữ liệu, thì nó nằm trong thanh ghi đệm, thanh ghi nào thì F quên rồi, và khi đã nằm trong bộ đệm của nó, thì nó có toàn quyền sử dụng. Nó thích làm gì thì làm.

Các bạn lưu ý rằng, F nói trường hợp nâng cao, thì chúng ta hoàn toàn có quyền sử dụng mạng Multi Master. Khi bạn setup chip ở chế độ Slave, thì nó thụ động. Nhưng hãy thử nghĩ, tôi làm slave cho mạng này, và làm master của một mạng khác, vậy thì có được không? Vì tôi có tới 40 chân chứ không phải 2 chân.

Vậy nếu tôi làm master cho một mạng khác, mà trong đó slave của tôi lại là master của cái mạng mà tôi làm slave . Hoàn toàn được.

Nhưng vấn đề nâng cao ở chỗ nữa, nếu làm như vậy, tôi phải tốn 4 dây để làm 2 mạng. Vấn đề trước đây hình như F đặt ra cho Linh, nhưng Linh chưa giải quyết xong, đó là Multi Master trong một mạng dùng 2 dây thôi.

Vấn đề này F tiếp tục treo ở đây chờ người giải quyết.

Chúc vui.
bác Falleaf nghĩ cao siêu quá, cái em hỏi chỉ ở mức cơ sở, chưa nâng cao dữ vậy đâu anh. Theo em nghĩ với yêu cầu truyền một số lượng byte ( 10 byte chẳng hạn) từ một con pic này sang một con pic khác là yêu cầu rất hay gặp . Anh Falleaf nghĩ cao quá nên vẫn chưa trả lời em câu hỏi này nhỉ?
Em nghĩ rằng dữ liệu truyền từ master sang slave sẽ được lưu tạm trong thanh ghi SSPBUF. Nếu mình lấy ra xài đúng lúc thì sẽ giải quyết được câu hỏi mà em đang đặt ra, được ko anh?
hoangminh1234 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 06:17 PM   #14
hoangminh1234
Đệ tử 1 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 23
:
Trích:
Nguyên văn bởi falleaf View Post
và địa chỉ thanh ghi của slave (nếu master muốn đọc một thanh ghi nào đó trong slave).
cai nay sao em ko thay trong CCS noi nang gi toivay anh? Nếu ta biết được địa chỉ thanh ghi bên slave thì hoàn toàn có thể lấy ra xài rồi.
Em vừa đọc cái SPI, thấy con tớ đọc dữ liệu trong thanh ghi SSPBUF ( được master truyền xuống) sau đó xuất ra port B.
file: http://ww1.microchip.com/downloads/en/devicedoc/spi.pdf
Nó làm em nghĩ rằng ko biết mình có thể làm tương tự với i2c ko?? cao huynh nào rành i2c cho ý kiến nhé

thay đổi nội dung bởi: hoangminh1234, 03-10-2006 lúc 06:21 PM.
hoangminh1234 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-10-2006, 09:47 PM   #15
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi hoangminh1234 View Post
cai nay sao em ko thay trong CCS noi nang gi toivay anh? Nếu ta biết được địa chỉ thanh ghi bên slave thì hoàn toàn có thể lấy ra xài rồi.
Em vừa đọc cái SPI, thấy con tớ đọc dữ liệu trong thanh ghi SSPBUF ( được master truyền xuống) sau đó xuất ra port B.
file: http://ww1.microchip.com/downloads/en/devicedoc/spi.pdf
Nó làm em nghĩ rằng ko biết mình có thể làm tương tự với i2c ko?? cao huynh nào rành i2c cho ý kiến nhé
Bạn đọc lại frame truyền từ Master đến Slave ở hai chế độ ghi và đọc

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 03:33 PM.


Đượ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