OK, em hiểu rồi.
Nếu ta cấu hình chip như thế này : _FOSC(CSW_FSCM_OFF & FRC & XT_PLL16); _FOSC(CSW_FSCM_OFF & FRC & XTL); Thì trong cả hai trường hợp này XT_PLL16 và XTL là không có ý nghĩa. Trong cả hai trường hợp trên chip đều sử dụng mạch dao động FRC trong, nhưng cấu hình của FPR<3:0> vẫn để ở XT_PLL16 hoặc XTL. Vậy mục đích của việc thiết kế này chỉ là để làm hài lòng người dùng thôi ư, nếu người sử dụng muốn thay đổi nguồn clock việc gì mà không cấu hình lại từ đầu. Hay mục đích của việc này là nhờ vào clock switch để 1 chip có thể chạy nhiều tần số khác nhau ở những khoảng khác nhau . Hi , thấy nó cứ là lạ. |
Trích:
Thân, |
Mong các bác chỉ giúp em phần I2C slave cho dsPIC.
Đây là toàn bộ chương trình cho con slave : Code:
#include <p30f4011.h> |
hic,sao kô thấy các cao thủ có cao kiến gì vậy? Chẳng lẽ chưa ai tìm hiểu về I2C Slave trên dsPIC?
|
Giả sử các hằng số _R_W và _D_A đã được bạn định nghĩa đúng, chương trình bên phía slave của bạn về giải thuật là ổn. Tuy nhiên, chương trình bên phía master của bạn ra sao, phần cứng của bạn thế nào thì bạn chưa nói. Master của bạn làm việc với EEPROM không có nghĩa là nó sẽ làm việc với một slave dsPIC. Bạn có thể cần chỉnh lại phần cứng, có thể cần phải thay đổi chương trình của master (địa chỉ slave mới chẳng hạn), và những vấn đề thực tế khác (thời gian chờ giữa các giai đoạn chẳng hạn, phần này khi giao tiếp với EEPROM thì hardware của EEPROM thực hiện cho bạn, còn khi viết slave thì bạn phải hiện thực nó).
Thân, |
Về phần cứng,ban đầu em dùng 2 điện trở 1.5k kéo lên;sau khi tham khảo datasheet,em đổi sang dùng điện trở 2.2k,kết quả vẫn như nhau.
Về chương trình Master,em viết theo chương trình Tutorial về I2C của anh,kiểm tra bit _Ackstat sau mỗi lần gửi,nếu ko có tín hiệu Ack trả về thì dừng,và báo lỗi qua UART2(do đó,em biết được I2C bị lỗi ở giai đoạn nào).Nếu có tín hiệu Ack trả về,thì tiếp tục truyền (như vậy ko biết em còn phải chờ gì nữa?).Còn về phần địa chỉ, em cũng đã thử thay đổi địa chỉ slave nằm trong vùng địa chỉ cho phép, nhưng cũng ko ăn thua. Hiện tại em ko biết mình sai ở phần nào,phần cứng hay phần mềm? |
Múi giờ GMT. Hiện tại là 12:04 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam