Các bác cho em hỏi, em dùng chân RC3(SCK)+RC5(SD0) để làm chân truyền dữ liệu SPI làm bảng quang báo, bây giờ em muốn giao tiếp đồng hồ ds1307. Nhưng con này giao tiếp i2c, nên cần chân RC3(SCL)+RC4(SDA). Vậy sẽ bị trùng chân RC3. Không biết phải làm sao đây? Các bác giúp em xem có cách nào sử dụng cả 2 I2C và SPI?
Thông báo
Collapse
No announcement yet.
Hỏi về I2C và SPI
Collapse
X
-
i2c
mình có thử dùng các file trong hell của ccs để giao tiếp pic với 24c64.Nguyên văn bởi thienthan_de Xem bài viếtCái này nếu bạn viết chương trình cho vdk bằng C (CSS C) thì không có khó khăn gì vì CSS có thể tự động sinh mã điều khiển I2C bằng phần mềm. Do đó có thể dùng bất cứ chân I/O nào của vdk làm SCL và SDA chỉ cần mình khai báo các chân đó trong #useic2c(master,scl=rc0,sda=rc1......)
Chúc vui.
mình đã chạy thử các file 2464.c, 24512.. trong css.
nhưng mình thấy khi ghi vào 1 byte và đọc ra 1 byte thì được nhưng nếu ghi vào 2 hay nhiều byte rồi đọc ra thì không chạy được. nếu bạn đã làm được giao tiếp pic với 24c64 bằng ccs thì giúp mình vớiLMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.
Comment
-
ìc
Cái này chắc bạn mô phỏng trên Proteus phải không?! Mình cũng đã từng chạy thử mấy file trong help của css như bạn nói => không được thật. Theo mình nghĩ có thể tại Proteus mô phỏng không thật sự chính xác, mình cũng bị trường hợp tương tụ khi mô phỏng giao tiếp ìc với 2 slave. Cũng không rõ lí do. Nhưng trong trường hợp của bạn không nên đọc và ghi nhiều byte liên tục như trong vd trong help, nó dùng biến state để làm con trỏ cho mảng nên đó có thể là lý do mô phỏng không đúng!?.
Để cải thiện bạn nên dùng một biến độc lập khác để làm con trỏ trỏ tới buffer cần lưu dữ liệu, cứ mỗi lần có ngắt ssp thì lại tăng biến con trỏ này lên, ngược lại khi gửi dữ liệu lên cho master. Cũng nên dùng một biến khác nữa để lưu giá trị nhận được khi master gửi xuống ( vd: biến indata=i2c_read()...). Mình cũng khuyên bạn nên dùng delay_ms(1) trong phục vụ ngắt #int_ssp sau hàm state=i2c_isr_state(), cái này mình không rõ lý do nữa, có thể phải đợi cho dữ liệu ổn định trên bus cúng có thể tai proteus... Nếu có điều kiện làm mạch thật sẽ giải quyết các vấn đề trên.
Cái này mình làm chạy rùi nhưng hôm nay không mang code rheo nên không up lên cho bạn được. Mong thông cảm.
Chúc may mắn.
Comment
-
i2c
cảm ơn bạn nhiều !Nguyên văn bởi thienthan_de Xem bài viếtCái này chắc bạn mô phỏng trên Proteus phải không?! Mình cũng đã từng chạy thử mấy file trong help của css như bạn nói => không được thật. Theo mình nghĩ có thể tại Proteus mô phỏng không thật sự chính xác, mình cũng bị trường hợp tương tụ khi mô phỏng giao tiếp ìc với 2 slave. Cũng không rõ lí do. Nhưng trong trường hợp của bạn không nên đọc và ghi nhiều byte liên tục như trong vd trong help, nó dùng biến state để làm con trỏ cho mảng nên đó có thể là lý do mô phỏng không đúng!?.
Để cải thiện bạn nên dùng một biến độc lập khác để làm con trỏ trỏ tới buffer cần lưu dữ liệu, cứ mỗi lần có ngắt ssp thì lại tăng biến con trỏ này lên, ngược lại khi gửi dữ liệu lên cho master. Cũng nên dùng một biến khác nữa để lưu giá trị nhận được khi master gửi xuống ( vd: biến indata=i2c_read()...). Mình cũng khuyên bạn nên dùng delay_ms(1) trong phục vụ ngắt #int_ssp sau hàm state=i2c_isr_state(), cái này mình không rõ lý do nữa, có thể phải đợi cho dữ liệu ổn định trên bus cúng có thể tai proteus... Nếu có điều kiện làm mạch thật sẽ giải quyết các vấn đề trên.
Cái này mình làm chạy rùi nhưng hôm nay không mang code rheo nên không up lên cho bạn được. Mong thông cảm.
Chúc may mắn.
đúng là proteus không mô phỏng được. mình đã làm mạch thật và chạy rất tốt.LMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.
Comment
Bài viết mới nhất
Collapse
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -

Comment