JoJojora Sign in for checkout Check out as guest. No additional charges and fees. Learn More — opens in a new window or tab. There are 50 items available. Read more about the condition. Find out more about your rights as a buyer — opens in a new window or tab and exceptions — opens in a new window or tab.
|Published (Last):||2 November 2017|
|PDF File Size:||2.18 Mb|
|ePub File Size:||18.93 Mb|
|Price:||Free* [*Free Regsitration Required]|
The pages must be on the same bytes block! Alberto Thx for sharing the code. The 1K, 2K, 4K, 8K and 16K EEPROM devices all require an 8-bit device address word following a start condition to enable the chip for a read or write operation The 16K does not use any device address bits but instead the 3 bits are used for memory page addressing.
These page addressing bits on the 4K, 8K and 16K devices should be considered the most significant bits of the data word address which follows. The A0, A1 and A2 pins are no connect. Does that mean it has eight pages of byte?
The documentation also mentions the 11 bit word address. I dunno how Arduino compiler handles that. I know unsigned int.. You have used Wire. Theoretically, the prefix for the first word should be "". When I tried to print Serial. Why the need to convert eaddrr to char? Also, you said: "Three lsb of Device address byte are bits of eeaddr"?
You are right shifting eeaddr by eight bits and then keeping only last three bits. Then you are writing those three bits on last three empty bits on devaddrr using bitwise OR.. That is seven bit long That could fit as a parameter in Wire. Therefore eeaddr should be a 14 bit binary. However, you are taking bits 8,9, and 10 of eeaddr as page address through the previous bitwise operation instead of bits 11, 12, and I understand that the three MSBs of eeaddr will automatically point towards the page address
24C01 ATMEL Corporation, 24C01 Datasheet