does the endurance tell the amount of write/re-write cycles. if yes then should FLASH be more endurable? because ive read in a book that FLASH can be written more times than EEPROM.
They all use flash for program memory (indicated by the "F" in the part #). What may be confusing you is that most newer PICs also contain a small amount of on-chip EEPROM (128 bytes for the F628) which can be used for non-volatile parameter storage and the like.
ive read in a book that FLASH can be written more times than EEPROM
Not true, most EEPROM memory today is guaranteed for at least 1 million write cycles, while flash may be rated from as little as 100 cycles (on some flash-based CPLDs) to 100K cycles (10K-100K is typical).
The 628A is just a newer version of the 628, check the errata sheet for any differences.
The only EEPROM based PIC I'm aware of (there probably were more) was the older PIC16C84 series, since replaced by the flashed based 'F84.
They all use flash for program memory (indicated by the "F" in the part #). What may be confusing you is that most newer PICs also contain a small amount of on-chip EEPROM (128 bytes for the F628) which can be used for non-volatile parameter storage and the like.
No, most F series PIC's are actually EEPROM technology, the 877A was one of the first MicroChip FLASH based parts. As far as I'm aware (based on how you actually program it) the 628A is still an EEPROM based device. Programming FLASH based PIC's uses a different algorithm, the 628A is the same as the 628 (or the 16C84 for that matter).
MicroChip started calling their EEPROM based chips FLASH to compete with Atmel, who called their EEPROM based chips FLASH. Basically it was simply an advertising ploy, and didn't refer to the technology of the device.
Both MicroChip and Atmel now produce true FLASH chips, I can't comment on Atmel, but many of MicroChips are still EEPROM rather than FLASH. I don't see as it makes any difference though!.
The only EEPROM based PIC I'm aware of (there probably were more) was the older PIC16C84 series, since replaced by the flashed based 'F84.
The 16F84 was just a later silicon revision of the C84, basically to cure the poor code protection on the C84, it used exactly the same EEPROM technology.
Thanks for the history lesson, Nigel. I'll take your word for it, you're the PIC expert . I drew my conclusions from the MicroChip datasheets. The 'C84 is described as an EEPROM micro having EEPROM program memory, while the 'F84 is described as a Flash/EEPROM micro, with flash program memory (as is the 'F628) and a separate EEPROM storage area. It's not surprising if MicroChip played fast and loose with memory terminology descriptions for marketing reasons. Identical programming algorithms & times for the C84/F84 certainly would indicate the underlying program memory type is the same.
I can't comment on Atmel, but many of MicroChips are still EEPROM rather than FLASH. I don't see as it makes any difference though!.
Atmel's been building true flash memories for a long time, I'd guess their micro's would incorporate this technology.
No, it wouldn't make much difference with the small program memories in typical PICs, but it would as program memories get larger. Flash has significant write/erase speed and density (~ 1/3 the area) advantages over EEPROM. About the only advantage EEPROM offers is the ability to alter a single byte at a time, while flash is erased in bulk (or at least on a paged basis in newer gen flash).
Yes, I would presume so as well - but, as far as I know, it was Atmel who first started marketing EEPROM processors as FLASH - basically FLASH was the new buzzword!.
No, it wouldn't make much difference with the small program memories in typical PICs, but it would as program memories get larger. Flash has significant write/erase speed and density (~ 1/3 the area) advantages over EEPROM. About the only advantage EEPROM offers is the ability to alter a single byte at a time, while flash is erased in bulk (or at least on a paged basis in newer gen flash).
This is one of the differences in the programming algorithms, EEPROM based PIC processors are written a byte at a time, the FLASH PIC processors are written more than one at a time - the 877A is four bytes at a time, which speeds programming up considerably.
The 628A uses exactly the same algorithm as the 628, and for that matter as the 16C84! - which leads me to believe it's EEPROM and not FLASH.
So, we have 2 point here, FLASH is faster programming and can program with more than 1 byte at a time?
Nigel, may you explain me about the algorithm and hardware to program for PIC? Hardware is programmer, to set PIC to Program Mode, and I see it many PICs can program with ICSP, so what do you mean as it can program more than 1 byte at a time? Is it parallel programming?
Is there any differences in hardware of FLASH and EEPROM? Pls explain me about that.
So, we have 2 point here, FLASH is faster programming and can program with more than 1 byte at a time?
Nigel, may you explain me about the algorithm and hardware to program for PIC? Hardware is programmer, to set PIC to Program Mode, and I see it many PICs can program with ICSP, so what do you mean as it can program more than 1 byte at a time? Is it parallel programming?
No, with an EEPROM chip you write a single word, wait for the programming delay time, them carry on to the next word.
With FLASH you transfer multiple words in turn, for the 877A it's four words, then send a 'write' instruction, then wait for a single programming delay.
Because you have only a single delay for four words it's almost four times as fast to program.
Is there any differences in hardware of FLASH and EEPROM? Pls explain me about that.
Presumably they are totally different, EEPROM and FLASH are very different technologies. I've no idea what exactly is inside, and presumably it's not something that MicroChip release. You could try looking for patents, they would probably explain the technology involved?.
May you support for your programmer source code? I would like to understand how to write a programmer software. May I?
falleafd, Intel had some good notes on the differences between flash and EEPROM (AR468, ER-20). I don't have scanned copies, but here's a summary. Like Nigel noted, it makes very little difference to the end user, with the exception of programming time.
EEPROM generally uses two transistors/bit, one for storage and one for selection. Programming a byte uses a method called "Fowler-Nordheim Tunneling"*, which takes ~ 5 mS/byte. Flash EPROM is very similar in construction to UV or OTP EPROMs, with the advantage of electrical erasability. Here, a method called "hot electron injection"* is used, and it takes < 100 uS to program a byte.
My old Needhams' PB-10 programmer confirms this (at least to ballpark standards). It took ~ 30 seconds to program an Exar 2804 (512 bits x 8 EEPROM) using the standard 5mS programming algorithm, and ~ 7-8 seconds for an Intel 28F001 flash prom (128kb x 8 ) using a "smart" (checks the bits after a programming pulse to see if they're done) algorithm.
Many non-volatile memories today have self-timed programming, check out Atmel's DataFlash parts for a good alternative to high density EEPROMs.