Chẳng hiểu tại sao I2C chạy ngon với Mega16/32 nhưng với mega8515 thìi chả có dấu hiệu gì nhỉ. Rõ ràng là code y trang, ko thể nhầm lẫn. Thử đổi chân SDA, SCL thì vẫn thế, thử lại bằng protuse thì chạy đc. Liệu với con mega8515 này có cần điều chỉnh gì ko hả mấy bác. MÌnh fuse cho nó chạy 16Mhz. Còn với thằng 8051 thì vấn đề này ko có gì nhưng sang avr muốn dùng cái có sãn cho nhanh nhưng vấp phải quả khó hiểu này_Đọc và test chán chê ko đc.
Thông báo
Collapse
No announcement yet.
Giao tiếp TWI (I2C) giữa các AVR???
Collapse
X
-
#define EEPROM_BUS_ADDRESS 0xa0
Đây là địa chỉ của con EEprom gọi là device address gồm 8 bit [1.0.1.0.A1.A0.R/W]. Nếu mặc định là ghi dữ liệu thì R/W=0, nối phần cứng A1 và A0 xuống GND thì A1=A0=0, do đó EEPROM_BUS_ADDRESS sẽ có giá trị là 0xa0.
còn khi đọc dữ liệu thì EEPROM_BUS_ADDRESS | 1 có nghĩa là R/W=1.
- at24c512 có dung lượng 64Kbyte nên cần 2 byte địa chỉ mới có thể truy cập hết được dữ liệu trong nó.
theo mình hiểu là như vậy! Thân!
Comment
-
code được viết như sau:
#define EEPROM_BUS_ADDRESS 0xa0;
//////////////////////////////////////////////////////
//read a byte from the EEPROM
unsigned char eeprom_read(unsigned char address_H,unsigned char address_L) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address_H);
i2c_write(address_L);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
//////////////////////////////////////////////////////
//write a byte to the EEPROM
void eeprom_write(unsigned char address_H, unsigned char address_L, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address_H);
i2c_write(address_L);
i2c_write(data);
i2c_stop();
}
////////////////////////////////////////////////////
đã test.
Comment
-
Chào các bác .
Em mới tìm hiểu I2C ,thầy giao đề tài là dùng atmega8 1master 1slave ,master nối với switch8 điều khiển slave hiển thị lên 3 led 7 đoạn. Em cũng tìm hiểu datasheet rồi, nhưng vẫn không hiểu cách viết code cho master và slave như thế nào .Mong các bác chỉ giáo giúp em với. Em sài codevision.
Comment
Bài viết mới nhất
Collapse
-
bởi FotiniChào mọi người.
Cấu trúc khung giàn của tôi sử dụng một động cơ servo tích hợp trên mỗi trục (https://www.oyostepper.es/category-8...integrado.html), với một dây nối đất chung.
Việc kích hoạt từng trục riêng lẻ hoạt động tốt, nhưng...-
Channel: Điện tử dành cho người mới bắt đầu
18-06-2026, 14:03 -
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -

Comment