??? 04/22/10 06:18 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#175258 - Time to closely read data sheet. Responding to: ???'s previous message |
It is time for you to closely read and re-read the data sheet for the AT24C1024 part. You will find that you cannot expect blocks of bytes to work in contiguous sequences that straddle across even 256 byte address boundaries on the part. When you set the start address for a block shift at say 0xF0 and then shift in 0x20 bytes they end up going to the last 16 bytes of the page and then wrap around to the first 16 bytes of the same page.
The way to fix this in your code will be to always check if the block of 80 bytes you want to write will cross the next 256 byte boundary. If it will you have to break up the transfer into two separate commands, one to write from the start address through to the last byte of the current page and then finish the remainder at the start of the next page. Never underestimate the importance of reading the data sheet until you comprehend what it is saying in every detail. Michael Karas |
Topic | Author | Date |
I2C page write and interrupts | 01/01/70 00:00 | |
Some Important Things to Consider | 01/01/70 00:00 | |
Re: Some Important Things to Consider | 01/01/70 00:00 | |
You just buffer things | 01/01/70 00:00 | |
ISR + superloop normally enough | 01/01/70 00:00 | |
A Quick Reply | 01/01/70 00:00 | |
Re: A Quick Reply | 01/01/70 00:00 | |
Confirmation | 01/01/70 00:00 | |
The Atmel Scheduler | 01/01/70 00:00 | |
Re: The Atmel Scheduler | 01/01/70 00:00 | |
Your times seem quite long | 01/01/70 00:00 | |
Re: Your times seem quite long | 01/01/70 00:00 | |
The problem seems to be different | 01/01/70 00:00 | |
Time to closely read data sheet. | 01/01/70 00:00 | |
Re: Time to closely read data sheet. | 01/01/70 00:00 | |
Write a generic function.![]() | 01/01/70 00:00 | |
Paged operation very common | 01/01/70 00:00 |