Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về giao tiếp I2C

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

  • Cần giúp đỡ về giao tiếp I2C

    Em đang làm bài tập về giao tiếp i2c mà cụ thể là 8051 với 24C04. Code thì tìm được một số trên mạng nhưng em chưa hiểu rõ cụ thể là :
    Cách định địa chỉ để ghi vào đọc ra từ EFPROM ?
    Ghi vào nó thì dữ liệu được cất vào ô nhớ nào để khi xuất dữ liệu còn biết địa chỉ để gọi.
    Mong được chỉ giáo!
    Thanks!

  • #2
    Bạn lên trang của ATMEL tải datasheet của AT24C04 về và ngâm cứu. Trong đó có nói chi tiết cách thức giao tiếp đọc/ghi dữ liệu cho chip đó.
    Giao tiếp i2c cần tối thiểu 4 hàm sau: Start_i2c(), Stop_i2c(), I2c_Read(), I2c_Write() tùy từng người mà cách đặt tên khác nhau.
    EEPROM có các ô nhớ là 8bit và được đặt liên tiếp nhau tương ứng với dung lượng. Ví dụ như 24C04 có 4K bit EEPROM hay 512 Bytes, dải địa chỉ từ 0x000 đến 0x1FF

    Khi bạn muốn ghi dữ liệu vào thì khai báo địa chỉ muốn ghi và data. I2c_Write(0x010, 0x55); // Ghi giá trị 0x55 vào địa chỉ 0x010
    Đọc ra thì dùng hàm Read, truyền địa chỉ muốn đọc. Ví dụ ReadData = I2c_Read(0x010); // Hàm này sẽ trả về giá trị 0x55 mà ta đã ghi ở trên.

    Nhớ đọc kỹ tài liệu, cũng là luyên tiếng anh luôn./
    Ethernet-RS232, PIC Webserver, RFID Reader
    CallerID, Cảnh báo BTS, ...
    0988006696
    linhnc308@gmail.com
    http://linhnc308.blogspot.com

    Comment


    • #3
      Cảm ơn anh Linh nhé! Em mới viết code ASM cho 8051 bằng Keil C thôi nên hình như không hỗ trợ hàm khai báo cả địa chỉ ghi và đọc như của anh ở trên.
      Code ASM tìm được họ chỉ viết các hàm read,write,start,stop nên em chưa được cặn kẽ cho lắm. Dù sao cũng rất cảm ơn anh. Cuối tháng bọn em thi HK nên không có nhiều thời gian để nghiên cứu vấn đề này.
      Chúc vui!

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X