Thông báo

Collapse
No announcement yet.

Giao tiếp I2C giữa 2 chú Atmega 128

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giao tiếp I2C giữa 2 chú Atmega 128

    Gửi các bác xem giúp em với
    Tình hình là em đã giao tiếp được 2 con này bằng I2C, nhưng lại gặp vấn đề xảy ra
    + Khi em cắm điện cùng 1 lúc thì 2 con truyền nhận dữ liệu bình thường
    + Khi 2 con đang chạy bình thường, em reset con Slave, thì Slave không nhận được dữ liệu từ Master nữa. em dùng Oscillo đo 2 chân SCL, SDA không thấy xung đâu cả mà là 1 đường thẳng mức 0 hoặc 1 ( 2 chân này em đã treo lên 5V qua trở 4,7K)
    + Khi 2 con đang truyền nhận bình thường, em reset con Master, thì truyền nhận dữ liệu bình thường, thi thoảng gặp trường hợp con Slave không nhận được dữ liệu tức là không thấy xung xuất hiện trên SCL, SDA.

  • #2
    Nguyên văn bởi duongbo Xem bài viết
    Gửi các bác xem giúp em với
    Tình hình là em đã giao tiếp được 2 con này bằng I2C, nhưng lại gặp vấn đề xảy ra
    + Khi em cắm điện cùng 1 lúc thì 2 con truyền nhận dữ liệu bình thường
    + Khi 2 con đang chạy bình thường, em reset con Slave, thì Slave không nhận được dữ liệu từ Master nữa. em dùng Oscillo đo 2 chân SCL, SDA không thấy xung đâu cả mà là 1 đường thẳng mức 0 hoặc 1 ( 2 chân này em đã treo lên 5V qua trở 4,7K)
    + Khi 2 con đang truyền nhận bình thường, em reset con Master, thì truyền nhận dữ liệu bình thường, thi thoảng gặp trường hợp con Slave không nhận được dữ liệu tức là không thấy xung xuất hiện trên SCL, SDA.
    Bạn đến trang này tham khảo nha: http://www.hocavr.com/index.php/vi/lectures/i2c
    Chúc bạn thành công!

    Comment


    • #3
      Nguyên văn bởi duongbo Xem bài viết
      Gửi các bác xem giúp em với
      Tình hình là em đã giao tiếp được 2 con này bằng I2C, nhưng lại gặp vấn đề xảy ra
      + Khi em cắm điện cùng 1 lúc thì 2 con truyền nhận dữ liệu bình thường
      + Khi 2 con đang chạy bình thường, em reset con Slave, thì Slave không nhận được dữ liệu từ Master nữa. em dùng Oscillo đo 2 chân SCL, SDA không thấy xung đâu cả mà là 1 đường thẳng mức 0 hoặc 1 ( 2 chân này em đã treo lên 5V qua trở 4,7K)
      + Khi 2 con đang truyền nhận bình thường, em reset con Master, thì truyền nhận dữ liệu bình thường, thi thoảng gặp trường hợp con Slave không nhận được dữ liệu tức là không thấy xung xuất hiện trên SCL, SDA.
      Bạn vào đây xem project thứ 22 http://www.sangthai.com.vn/ste/goc-cong-nghe/avr, tác giả viết bằng codevision nên rất thân quen. Good luck.

      Comment


      • #4
        Cảm ơn bạn Robocon2011. Mình đã vào trang đó tham khảo và đã giao tiếp được I2C giữa 2 con avr. Em muốn hỏi các bác ở đây là hiện tượng khi 2 con đang giao tiếp với nhau thì 1 con nhấn reset, đo xung trên SCL, SDA thì không còn xung nữa. Các bác giúp em với.

        Comment


        • #5
          Nguyên văn bởi robocon2011 Xem bài viết
          Bạn đến trang này tham khảo nha: http://www.hocavr.com/index.php/vi/lectures/i2c
          Chúc bạn thành công!

          Chào bạn Robocon2011 Mình có vào trang web mà bạn gửi. Mình đã đọc và làm theo và đã truyền được theo I2C. Mình chỉ thắc mắc một điều trong trang web có phần code cho master, trong đó có câu lệnh while((TWCR&0x80)==0x00); // check anh wait for bit TWINT=1
          Khi vđk thực hiện câu lệnh này tức là chờ cho đến khi TWINT=1, chẳng may đường truyền I2C bị đứt hoặc không liên kết thì vi điều khiển cứ dừng ở câu lệnh này để chờ cho đến khi TWINT=1. lúc này chip sẽ không thực hiện việc khác.
          Có cách nào khắc phục không bạn
          Cám ơn

          Comment

          Về tác giả

          Collapse

          duongbo Tìm hiểu thêm về duongbo

          Bài viết mới nhất

          Collapse

          Đang tải...
          X