Technical discussions about Freescale (Motorola) DSPs (including the DSP56000, DSP56300, DSP56600, 56800 DSPs).
|
In my product I need to store unvolatile data when the power supply goes down. Internal flash memory seem be right for this. The problem is that I not know the maximun programming time of internal flash. Does anyone have an idea on this time ? It seems difficult to obtain!! Thanks Giuliano |
|
|
|
It depends on how much data you need to save. The Page Erase time (page = 256 words) is 20ms minimum, and the Mass Erase (all Data Flash) time is 100ms minimum. Then you have to program each word (20us minimum for each word). Your choices are limited to Data Flash or Boot Flash, because attempting to use Program Flash will crash your program. Also, doing a Mass Erase of Boot Flash will destroy your Reset and One (COP timeout) vectors, making the system unusable. The simplest would be to allocate one page in Boot Flash for this purpose, as erasing and programming it will not require big changes in your software. If you want to use Data Flash, it is much more difficult. Please see my message "RE: [motoroladsp] Data from RAM to flash data memory" on October 4, 2002, at about 6:57am. I hope this helps. Regards, Art Johnson Senior Systems Analyst PMC Prime Mover Controls Inc. 3600 Gilmore Way Burnaby, B.C., Canada V5G 4R8 Phone: 604 433-4644 FAX: 604 433-5570 Email: http://www.pmc-controls.com -----Original Message----- From: [mailto:] Sent: Friday, October 11, 2002 6:01 AM To: Subject: [motoroladsp] Maximun flash program word time in 5680x In my product I need to store unvolatile data when the power supply goes down. Internal flash memory seem be right for this. The problem is that I not know the maximun programming time of internal flash. Does anyone have an idea on this time ? It seems difficult to obtain!! Thanks Giuliano _____________________________________ /groups.php3 |
|
Motorola will have to answer this one for you. All the Data Sheet shows is minimum times. The total time for each word is the sum of: Tads = Address setup time, Tprog = Word program time, and Tadh = Address hold time There are also Tnvs + Tpgs at the start of the whole cycle, and Tpgh + Tnvh at the end of the cycle, but these are small compared to the total cycle time. I think as a quick guess that 100us per word (ie 10 words per millisecond) would be a very safe assumption. Regards, Art Johnson Senior Systems Analyst PMC Prime Mover Controls Inc. 3600 Gilmore Way Burnaby, B.C., Canada V5G 4R8 Phone: 604 433-4644 FAX: 604 433-5570 Email: http://www.pmc-controls.com -----Original Message----- From: [mailto:] Sent: Friday, October 11, 2002 7:19 AM To: Art Johnson Cc: Subject: Rif: RE: [motoroladsp] Maximun flash program word time in 5680x >It depends on how much data you need to save. The Page Erase time (page = 256 words) >is 20ms minimum, and the Mass Erase (all Data Flash) time is 100ms minimum. Then you >have to program each word (20us minimum for each word). Ok, I'm interest to know the maxium word program time.If I have the maxium program time for one word, after I can calculate my program time multiply the time for my word number. Also when I want write, all the memory location are already erased, so sector erase time is not important for me. I need to write only in Data Flash. If I haven't this time I need to use a external serial FRAM memory!!! Regards, Giuliano -----Original Message----- From: [mailto:] Sent: Friday, October 11, 2002 6:01 AM To: Subject: [motoroladsp] Maximun flash program word time in 5680x In my product I need to store unvolatile data when the power supply goes down. Internal flash memory seem be right for this. The problem is that I not know the maximun programming time of internal flash. Does anyone have an idea on this time ? It seems difficult to obtain!! Thanks Giuliano _____________________________________ /groups.php3 |
|
If your
bootflash is filled, and the number of non-volatile data words is small (<= 64) let me offer
another suggestion.
Each of
the flash interface units includes a small 64word "information block" than can be swapped in
instead of the normal "main memory block". (Reference the IFREN bit)
We use
the "information block" portion of the boot flash to store non-volatile parameters. This
allows us to use the full 2K for the bootloader. Since bootloader code is not accessed
during normal operation (in our application), it is safe to write to it at any
time.
Regards,
William C.
Yochum
Microwave Data Systems Inc.
|
|
Hi, Information-> Timing expericen for a complete programming of an application My experice for programming the P-Flash by downloading and flashing a complete application with the Size of about 32kWord into the Flash 56807 (using a parallel DP-RAM for Communication) will take about 8s. This includes the protocol overhead, handshaking with the hostsystem, checking if it is required to delete and program the new page, calculating checksum and so on. That will take an average (8s/32k) of 250us per Word. By optimizing the programming algorithmus (not to wait until the word is programmed) it can be redused. rgds Chris ----- Original Message ----- From: "Art Johnson" <> To: <> Cc: <> Sent: Friday, October 11, 2002 4:40 PM Subject: RE: RE: [motoroladsp] Maximun flash program word time in 5680x > Motorola will have to answer this one for you. All the Data Sheet shows is minimum times. The total time for each word is the sum of: > > Tads = Address setup time, > Tprog = Word program time, and > Tadh = Address hold time > > There are also Tnvs + Tpgs at the start of the whole cycle, and Tpgh + Tnvh at the end of the cycle, but these are small compared to the total cycle time. > > I think as a quick guess that 100us per word (ie 10 words per millisecond) would be a very safe assumption. > > Regards, > > Art Johnson > Senior Systems Analyst > PMC Prime Mover Controls Inc. > 3600 Gilmore Way > Burnaby, B.C., Canada > V5G 4R8 > Phone: 604 433-4644 > FAX: 604 433-5570 > Email: > http://www.pmc-controls.com > > > -----Original Message----- > From: [mailto:] > Sent: Friday, October 11, 2002 7:19 AM > To: Art Johnson > Cc: > Subject: Rif: RE: [motoroladsp] Maximun flash program word time in 5680x > > > >It depends on how much data you need to save. The Page Erase time (page > = 256 words) >is 20ms minimum, and the Mass Erase (all Data Flash) time is > 100ms minimum. Then you >have to program each word (20us minimum for each > word). > > Ok, I'm interest to know the maxium word program time.If I have the maxium > program time for one word, after I can calculate my program time multiply > the time for my word number. > Also when I want write, all the memory location are already erased, so > sector erase time is not important for me. > I need to write only in Data Flash. > > If I haven't this time I need to use a external serial FRAM memory!!! > Regards, > Giuliano > > > -----Original Message----- > From: [mailto:] > Sent: Friday, October 11, 2002 6:01 AM > To: > Subject: [motoroladsp] Maximun flash program word time in 5680x > In my product I need to store unvolatile data when the power supply goes > down. > Internal flash memory seem be right for this. The problem is that I not > know the maximun > programming time of internal flash. Does anyone have an idea on this time ? > It seems difficult to obtain!! > Thanks > Giuliano > > > _____________________________________ > /groups.php3 > > > _____________________________________ > /groups.php3 |
|
The
previous analysis greatly overstates the time it takes to program a word from an internal
program. The time to program a word is around 20 usecs. The 250 usecs is caused by the overhead
of the transfer, the host program, and the Mechanism of interfacing to the FIUs via the JTAG
port.
But I think I
should clairfy a couple of items. The time required to program a word is set by the user. The
data sheet numbers refer to requirements placed upon the user to ensure proper
programming. This is important because if you violate the data sheet requriements in your
programming algorithm then you will not be guaranteed of the memory retention specifications.
Section 3.4 of the Data Sheet talks about the timing requirements for the flash
programming. Basically the important timing requirements are listed in table 25. The users
manual has a whole chapter (#5) on the flash memory interface unit. The flash interface unit is
what must be used to program the internal flash blocks. The CodeWarrior tool and I think most
customers use the intelligent flash programming mode. Basically the Intelligent flash
programming mode uses a set of internal timers to the FIU that are all based off of the IP bus
clock. The reset values are correct for an IP bus clock of 40 Mhz. But if you are not running
at 40 Mhz IP bus clock then the timer registers need to be modified so they match up with the
requirements from the data sheet. I have included a spread sheet that shows the proper FIU
timer values to ensure proper programming depending on the IP bus
clock.
Just as a note the CodeWarrior tool and the SDK flash over JTAG programming tool do
not set the PLL and hence do not operate the part at full rate when programming the flash. The
values in the flash.cfg file set up the timers in the FIU to be correct if a standard value
oscillator is clocking the device. Thanks !
-
Bill
| |||
|