Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   what is the eeprom write bandwidth? (http://www.chiefdelphi.com/forums/showthread.php?t=64302)

gnormhurst 16-02-2008 19:37

what is the eeprom write bandwidth?
 
If I want to fill the eeprom with data in a period of 15 seconds, that's 1024/15 = 69 bytes per second. I know that the bandwidth is less than 38 bytes per second, otherwise eeprom.c would not need a queue.

I'm trying to size the queue to not overflow at 69 bytes per second. I guess I could make it 1024 bytes (but is that itself a problem?).

Kevin Watson 16-02-2008 20:31

Re: what is the eeprom write bandwidth?
 
Quote:

Originally Posted by gnormhurst (Post 700412)
If I want to fill the eeprom with data in a period of 15 seconds, that's 1024/15 = 69 bytes per second. I know that the bandwidth is less than 38 bytes per second, otherwise eeprom.c would not need a queue.

I'm trying to size the queue to not overflow at 69 bytes per second. I guess I could make it 1024 bytes (but is that itself a problem?).

If you're referring to my code, you can also call EEPROM_Write_Handler() multiple times per 26ms loop. Just be aware that
EEPROM_Write_Handler() takes about two milliseconds to execute.

-Kevin

gnormhurst 17-02-2008 23:47

Re: what is the eeprom write bandwidth?
 
Quote:

Originally Posted by Kevin Watson (Post 700448)
If you're referring to my code, you can also call EEPROM_Write_Handler() multiple times per 26ms loop. Just be aware that
EEPROM_Write_Handler() takes about two milliseconds to execute.

-Kevin

I am using your code (thanks!). And if had taken a moment to look at the write handler I would have seen that the queue size is decremented every call. (I had imagined that the eeprom write operation was asynchronous, and the write handler was just periodically checking to see if the current byte was done.)

I think that means that I can add a second call to the write handler and get a write bandwidth of 38 * 2 = 76 bytes per second, which is (on average) fast enough to fill the eeprom during autonomous (15 * 76 = 1140 > 1024). The only question that remains is whether I will overrun the queue buffer with a burst. I guess I'll just have to try it.


All times are GMT -5. The time now is 01:00.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi