PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-02-2009, 07:52 PM   #1
tiendungkct
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 69
:
Trích:
Nguyên văn bởi namqn View Post
Trước hết, bạn đã chọn tốc độ là 100 kHz. Theo bảng 22-36 trong datasheet của dsPIC30F2010 (phiên bản DS70118G), thời gian bus rỗi tối thiểu là 4.7 us. Với code cho master hiện thời của bạn, tôi cho rằng thời gian này có thể bị vi phạm.
nếu như anh nói thì sau mỗi lần truyền mình phải có thời gian delay >=4.7us hả anh

Trích:
Nguyên văn bởi namqn View Post
Đối với slave, bạn xem lại giá trị địa chỉ được nạp vào thanh ghi I2CADD (giá trị mà bạn đang dùng là 7-bit địa chỉ được dịch trái 1 bit và kết hợp với bit R/W, chứ không phải là 7-bit địa chỉ chính xác). Chú ý rằng các địa chỉ 7 bit hợp lệ nằm trong phạm vi 0x04 - 0x77.
em chưa hỉu lắm ý của anh, anh có thể nói rõ hơn không anh ?.theo em biết thì địa chỉ trong thanh ghi I2CADD<6:0> được so sánh với I2CRSR<7:1> nên em chưa hỉu câu "giá trị mà bạn đang dùng là 7-bit địa chỉ được dịch trái 1 bit và kết hợp với bit R/W, chứ không phải là 7-bit địa chỉ chính xác" .mong anh giải thích cho em hỉu ,em cám ơn anh nhìu
tiendungkct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-02-2009, 08:22 PM   #2
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
Trích:
Nguyên văn bởi tiendungkct View Post
nếu như anh nói thì sau mỗi lần truyền mình phải có thời gian delay >=4.7us hả anh
Bạn nên đảm bảo điều kiện này. Sau điều kiện STOP thì phải có thời gian để bus ở trạng thái IDLE tối thiểu là 4.7 us, rồi mới đến điều kiện START kế tiếp. Vòng lặp chính của bạn có thể chạy quá nhanh ở phần cuối, sau khi hoàn tất điều kiện STOP.

Trích:
Nguyên văn bởi tiendungkct View Post
em chưa hỉu lắm ý của anh, anh có thể nói rõ hơn không anh ?.theo em biết thì địa chỉ trong thanh ghi I2CADD<6:0> được so sánh với I2CRSR<7:1> nên em chưa hỉu câu "giá trị mà bạn đang dùng là 7-bit địa chỉ được dịch trái 1 bit và kết hợp với bit R/W, chứ không phải là 7-bit địa chỉ chính xác" .mong anh giải thích cho em hỉu ,em cám ơn anh nhìu
Trong lệnh đặt địa chỉ slave từ master gửi đi, bạn dùng 0xA0. Trong giá trị 0xA0 này, 7 bit cao nhất của nó là địa chỉ của slave, còn bit thấp nhất là bit R/W. Do đó, trong đoạn code cho slave, bạn phải đặt giá trị (0xA0 >> 1) = 0x50 vào I2CADD, chứ không phải 0xA0.

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
namqn 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à 12:28 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