2008年5月19日 星期一

24LC04B用I2C讀寫

筆記:
http://www.google.com/notebook/public/12398140405581905258/BDQGMIgoQ3f676KAi

  • SCL可以到100KHZ但是寫入後要DELAY 10MS 左右,但一般都由MASTER控制,除非SLAVE端有 clock stretching 模式。
  • ACK、NOACK有兩種解釋,一個是MASTER發出的,一個是來自SLAVER(24LC04B)的,兩者SDA的方向是不同的。
  • 硬體接腳~WP一定要接好,不可浮接,否則寫入會失常。

寫入的流程…
Start();
Write8Bit(WriteDeviceAddress);
TestAck();
Write8Bit(RomAddress);
TestAck();
Write8Bit(*Wdata);
TestAck();
Stop();
DelayMs(10);

讀出的流程…
Start();
Write8Bit(WriteDeviceAddress);
TestAck();
Write8Bit(RomAddress);
TestAck();
Start();
Write8Bit(ReadDviceAddress);
TestAck()
Read8Bit();
Ack(); …
Read8Bit();
NoAck();
Stop();

沒有留言:

更高效處理 micro second 的方式

更高效處理 micro second 的方式…  以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) {     HAL_IncTick();     sys_tick += (SysTi...