艾鍗學院單晶片韌體-I2C EEPROM 操作

7,151 views
7,582 views

Published on

艾鍗學院-單晶片韌體開發課程講義-- I2C EEPROM 操作

Published in: Technology, Business
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,151
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
46
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

艾鍗學院單晶片韌體-I2C EEPROM 操作

  1. 1. 1
  2. 2. I2C-bus• I2C(Inter-Integrated Circuit)是由飛利浦公司 發表的一種雙向兩線式串列通訊匯流排, 是用來控制IC與IC之間直接通訊的串列通訊 介面。• 這些周邊裝置可以是串列EEPROM、顯示器 驅動器、A/D 轉換器等。 2
  3. 3. I2C-bus• 傳輸速度: – 標準模式 100 Kbit/s – 快速模式 400 Kbit/s – 高速模式 3.4 Mbit/s• 限制: – 連接至I2C-bus的最大元件數,加總電容值應限 制在400pF 3
  4. 4. I2C-bus V+ Rp RpSDASCL MCU EEPROM 溫度 PIC18F4520 24LC32A TC74 4
  5. 5. V+ Rp Rp SDA SCLDATA CLOCK DATA CLOCKOUT OUT OUT OUTDATA CLOCK DATA CLOCK IN IN IN IN 5
  6. 6. I 2 C-bus 的傳送、讀取 接收端 傳送端讀取資料 改變資料 6
  7. 7. START & STOP condition START condition:當 SCL High期間,SDA 產生 High → Low STOP condition:當 SCL High期間,SDA 產生 Low → HighSDASCL START 和 STOP condition 都是由主控端(master)產生 7
  8. 8. I 2 C-bus的一筆交易資料• Every byte put on the SDA line must be 8-bits long.• Each byte has to be followed by an acknowledge bit.• Data is transferred with the most significant bit (MSB) first 8
  9. 9. Acknowledgement 接收端 傳送端讀取資料 改變資料 9
  10. 10. 接收端讀取8位元回應ACK回應ACK讀取8位元 A 1 2 3 4 5 6 7 8 9 10
  11. 11. 傳送端送出8位元讀取ACK讀取ACK送8位元 A 1 2 3 4 5 6 7 8 9 11
  12. 12. I 2 C-bus完整的一筆資料交易 控制碼 資料 資料 12
  13. 13. 控制碼1:主控端讀取資料0:主控端傳送資料指定通訊裝置的位址 13
  14. 14. 主控端-傳送資料 14
  15. 15. 主控端-傳送資料 主控端S 控制碼 A 資料 A 資料 A PR/W = 0 從屬端 15
  16. 16. 主控端-讀取資料 16
  17. 17. 主控端-讀取資料 主控端R/W = 1S 控制碼 A 資料 A 資料 A P 從屬端 17
  18. 18. 混和模式S 控制碼 A 資料 A Sr 控制碼 A 資料 A P 18
  19. 19. 混和模式S 控制碼 A 資料 A 資料 A PSr 控制碼S A 資料 A 資料 A P 19
  20. 20. 混和模式S 控制碼 A 資料 A 資料 A PSr 控制碼S A 資料 A 資料 A P 20
  21. 21. void I2CInit(void);void Sbit(void);void Pbit(void);unsigned char I2CWrite(unsigned char Data);unsigned char I2CRead ( unsigned char ack );void I2Cpoll(unsigned char Dev); 21
  22. 22. 100 kHz and 400 kHz Clock CompatibilityPage Write Time 5 ms max.32-Byte Page Write Buffer Page Latches 寫入保護 22
  23. 23. 23
  24. 24. 24
  25. 25. 25
  26. 26. 提昇電阻 26
  27. 27. 27
  28. 28. 000001002003FFDFFEFFF 指定記憶體位址 28
  29. 29. 29
  30. 30. 30
  31. 31. 31
  32. 32. 32
  33. 33. 24LC32A資料寫入操作 Start 位址 位址 控制碼condition High byte Low byte 指定記憶體位址 資料方向 PIC → 24LC32A Stop 資料 資料 資料 condition 傳送記憶體資料 資料方向 PIC → 24LC32A 33
  34. 34. 24LC32A資料讀取操作 Start 位址 位址 控制碼condition High byte Low byte 指定記憶體位址 資料方向 PIC → 24LC32A Restart Stop 控制碼 資料 資料condition condition 記憶體資料讀取 資料方向 PIC ← 24LC32A 34
  35. 35. 24LC32A資料讀取操作 Start 位址 位址 End 控制碼condition High byte Low byte condition 指定記憶體位址 資料方向 PIC → 24LC32A Start Stop 控制碼 資料 資料condition condition 記憶體資料讀取 資料方向 PIC ← 24LC32A 35
  36. 36. 請完成24LC32A讀寫操作 指定記憶體位址:0x03,連續寫入A,B,C三筆資料 控制碼 位址 位址 S R/W = 0 High byte Low byte 資料 資料 資料 P S P 指定記憶體位址:0x03,連續讀取三筆資料 控制碼 位址 位址 控制碼S R/W = 0 High byte Low byte Sr R/W = 1 資料 資料 資料 PS Sr P 36
  37. 37. 37
  38. 38. J10 38
  39. 39. 指定位址0x03 寫入資料 錯誤處理 39
  40. 40. 指定位址0x03 資料讀取 40

×