Sau một thời gian làm I2C với dsPIC mình rút ra đươc 1 số kinh nghiệm sau:
- Khi setup modul I2C cần phải thống nhất mode địa chỉ giữa master và slave, cái này được thiết lập tại I2CCON.10 (đối với dsPIC30)
- Với mode 7bits địa chỉ thì giá trị nằm trong khoảng 0x04-0x77. Byte đầu tiên được gửi từ master sau xung start phải là:
+ slave address << 1 //master yêu cầu gửi dữ liệu tới slave
+ (save address << 1 ) + 1 //master yêu cầu đọc dữ liệu từ slave
- Thay vì việc chờ bít TBF xuống thấp ta delay 1 khoảng vài trăm us thì chắc chắn byte dữ liệu đã được truyền xong.
Hy vọng có thể giúp được mọi người khi làm với I2C.
Thân,
|