??? 04/22/10 04:08 Read: times |
#175252 - The problem seems to be different Responding to: ???'s previous message |
Everything that was spoken here was correct, about how an ISR may damage a I2C bit-bang software page write routine, but unfortunatelly for me the problem seems to be different.
I had moved the code that was writting into the I2C memory in the ISR, and this possible source of errors is removed, but my odd behaviour still remains and is like this: 1. I write a page of 80 bytes starting 00000h address, which work just fine, because I checked it by reading back the memory. 2. I write another page of 80 bytes starting at 00050h address and again all is fine. 3. I am writing once again 80 bytes at address 000A0h address which it seems to be written ok, but the first 80 bytes from step 1, address 00000h seems to overwritten too with 0. I don't understand why when I am writtin at 000A0h the first 80 bytes are reset to zero? What is interesting is that this happens periodically for example if I am writting at 005A0h, 80 bytes from 00500h are reset on zero too. The memory module I am using is AT24C1024B. |
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 |