Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

flash based PICs

Status
Not open for further replies.

samcheetah

New Member
im a bit confused in differentiating which PIC is EEPROM based and which is FLASH based. the first page of the 628 datasheet says

PIC16F62X
Data Sheet
FLASH-Based
8-Bit CMOS Microcontroller

while the 628 isnt FLASH, its EEPROM

the first page of the 628A datasheet says

PIC16F627A/628A/648A
Data Sheet
Flash-Based 8-Bit CMOS
Microcontrollers with nanoWatt Technology

so does that mean that both the 628 and the 628A are flash. then why was there the need for the 628A?

one thing more, the datasheet of the 628A says

High Endurance Flash/EEPROM Cell
- 100,000 write Flash endurance
- 1,000,000 write EEPROM endurance
- 100 year data retention

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.

sorry if im wrong. and plz guide me.

thanx
 
eeprom/flash

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.
 
Re: eeprom/flash

laroche73 said:
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.
 
flash and eeprom

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).
 
Re: flash and eeprom

laroche73 said:
Atmel's been building true flash memories for a long time, I'd guess their micro's would incorporate this technology.

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.

Thanks muchie.
 
falleafd said:
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.

There's no difference as far as the user is concerned, only the programmer software is different.
 
falleafd said:
no, I meant hardware inside the chip? the physical construction! Is there any differences?

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?

Sorry, but I don't release my 32 bit source code, the older 16 bit code is available for free download though.
 
differences between EEPROM and Flash

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.

https://www.electro-tech-online.com/threads/sda-2083-a015.6393/ * you can look up the details of both methods online
 
Last edited by a moderator:
falleafd said:
thanks laroche and nigel.

where can I download the old 16bit version of yours, nigel? I would like to take a look on source code for an easy view. thanks muchie nigel.

You can download it here https://www.dontronics.com/download.html#nigel. It's written using Delphi 1.0, and it's first version was probably the first Windows PIC programmer software.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top