EEPROM, EPROM, MMC ,sarja-Bios-piirit



EEPROM
Dip8 eeprom

Mikä on  eeprom ?


Eepromissa säilytetään laitteen asetustietoja, jotta käytäjällä oli helpompaa. Samoin siinä voidaan säilytää salasanoja, käyttökertalaskuria tai puhelinnumeroita.  Eprom ei ole kiintolevy eikä RAM vaan pienikokoinen ilman sähköä tietoja tallentava muisti.
Eeprom voi olla oma piirinsä tai prosessorin sisällä oleva laite. Se ei ole sama kuin prosessorin flash muisti. Flashin tyhjentäminen on hankalampaa ja se kestää vähemmän kirjoituskertoja kuin EEPROM. Flash on edullisempi isoissa muisteissa.

Monta kertaa voidaan lukea 
eeprommista?
Monta kertaa voidaan kirjoitaa
eeprommiin?


Eepromiin voidaan kirjoittaa 8 bitin tavuja hyvin monta kertaa. Käytänössä ihmisen tekemät talletusmäärät eivät lopu. Esimerkiksi Microchipin piireihin voi kirjoittaa 10 miljoonaa kertaa. Tietokoneella saadaan kuitenkin tämä määrä täyteen. Mitä tapahtuu kun määrä on täysi?
En tiedä, koska kolmeen kymmeneen vuoteen ei ole sellaita mimulle tapahtunut. Tieto ei vamaankaan enää mene piirin muistiin oikein ja käynnistyksessä käyttäjä saa vialliset arvot laitteeseensa.   

Lukemiseen ei ole rajoituksia.

Epromin nimessä on yleensä koko kilobitteinä ei kilotavuina 25LC01 on 1 kilobitin eprompiiri. Se on yksi pienimmistä eeprompiireistä.
Laiteen hinta ei kuitenkaan ole suoraan verrannollinen kokoon vaan valmistus- ja myyntimääriin.

Onko eeprom suojattu?

Eeprom piirit eivät ole suojattuja, vaan kuka tahansa voi lukea niitä. Lukeminen tapahtuu erillisellä ohjelmointilaitteella tai prosessorilla. Esim
PICKIT2 tai Willem USB PRO GQ4
Useimmat piirit voidaan kuitenkin suojata tahalliselta kirjoittamiselta suojausnastan toiminnan avulla. 

Kuka keksi eprommin?

Eeprom on kohtuullisen uusi piiri. Intel keksi rinnakkaisen EEPROMin vasta 1983 (2816).
Atmelin AT28C256 ( DIP28) on samantapainen rinnakkainen piiri, jota on edelleenkin saatavilla. Se toimii melkein kuin tavallinen EPROM, mutta ohjelmointi ei vaadi suurta jännitettä, 5V riittää. Ohjelmointi on hitaanpaa kuin lukeminen, se ei toimii kuten stattinen RAM.  
Paristolla varustetut staattiset RAM-piirit toimivat hieman samaan tapaan kuin eepromit, mutta niiden kirjoittaminen on paljon nopeampaa. Ne ovat kalliimpia kuin eprommit ja käyttöjännitten loppuessa ne menettävät tietonsa. Paristolla (esim. CR2022) voi suojata  RAMin tiedot. Vanhojen PC:n kello- ja Bios-piirien paristot ovat aina loppu. Joissakin laitteissa on koko ohjelma RAMissa. Näiden laitteiden paristot voi vaihtaa vain kun laite on verkkosähkössä. 1980-luvun alussa tehtiin näin ja olen joutunut ohjelmoimaan tälläisia laitteita monta kertaa sähkökatkoksien jälkeen.

EPROMin datan luku

Ohjelmoitaessa valitaan ensin luettava osoite, 1 tai 2 tavua ja sitten kirjoitetaan tai luetaan data. Piirien datalehdissä kerrotaan koska pitää kirjoittaa 1 tai 2 tavua. Yli 2k  eeprommeilla pitää antaa kaksi tavua osoitteeksi A0-A7 on alatavu ja A8-15 on ylätavu. 64l kohdalla taas osoitteet loppuvat, pitää käytää kolmea osoitettavua. A16->eteenpäin. 
Kirjoitettaessa ja luettaessa data on aina yksi tavu.

EPROMin nopeus

Piirin tyypin jäljessä on luku, joka ilmasee kuinka nopeasti annon data on saataviilla kun oikeat osoitteet on laitettu piirin ja anto on sallittu.
Esim. luku 12  tyypissä  2716-12   tarkoittaa 120ns.
Jos jossakin laitteessa on piiri 27C256-10 se ei tarkoita, että juuri tässä laitteessa ei hitaimmat piirit toimi. Valmistaja on vain sattunut käyttämään näin nopeaa piiriä.
Tietysti ei kannata ehdoin tähden laittamaan hitaampaa piiriä. Koskaan ei minulle ole tullut tilannetta, että EPROM olisi liian hidas ( nimimerkki 40 vuotta Eprommien kanssa) .

"Standardi" 2716 piiri

2716 piiri on hyvin epästandardi. Alunperin TI  teki  TMS2716 jossa oli samoin kuin Intelin 2708:ssa kolme jännitettä (+5V, +12V, -5V).  2708 ja  TMS2716  on sama ohjelmointijännite  (25V). Jotkut valmistajat alkoivat kloonata TI suunnitelemaa piiriä. Kaikki piirit  merkittiin samalla  "2716" leimalla. Jotkut paransivat muistia ja poistivat +12V ja -5V jännitteet, mutta pitivät osoite- ja datanastojen paikat samoina. TI teki myös parannetun painoksen piiristä vain yhdellä käyttöjännitteellä, mutta nimesi sen TMS2516.  Muiden 2716 nimi oli saman kuin TI:n TMS2516.
Tähän aikaan oli jokainen valmistaja saattoi käytää omaa ohjelmointijännittetänsä.

Jotta voisit polttaa 2716-piirin, sinun pitää tietää valmistajan käyttö- ja ohjelmointijännitteet.
Ne löytyy kunkin valmistajan datalehdistä. Toinen asia on miten ohjelmointilaitteesi osaa valita oikeat jännitteet ko. piirille. No tämä ei oikeastaan ollut aikoinaan ongelma, sillä kaikki tekivät omat ohjelmointilaitteensa.
Kyllä valmiitakin löytyi, mutta ne olivat aivan liian kalliita.
Minäkin tein VIC20:lle, HP85:lle ja Commodore 64:lle (kuva alla) omat ohjelmointilaitteensa. PC aikana alkoi olla jo kohtuuhintaisia Taiwanilaisia ohjelmointilaita. Needham's Electronics hallitsi 20 vuotta kohtuuhintaisia ohjelmointilaitteita. Kunnes Needham meni konkourssiin noin 2009.
Siis sinun pitää ohjemoida  2716 ja kohdelaitteessa on vain 5V muista, että et voi käyttää TMS2716 piiriä.
Useimmat 2716 käyttävät 25V ohjelmointijännitettä. Myöhemmin isomissa piireissä vakiintui 21V ja 12V käyttöjännite. 
Juuri hiljattain yritin ohjelmioda SGS:n    ET2716Q piiriä. Tuota Q versiota ei löytänyt SGS:n valikoimasta.
Kokeilin Intel 2716, laite ei ohjelmoinut yhtään byteä.


EEPROMin kirjoitus ja luku

Kun piirin koko menee yli 256 kbitin, pitää käyttää useita laiteosoitteita. Esim. jos I2C-tyyppisen eepromin  laiteosoite A0, niin ylämuistin laiteosoite on A1. Tästä johtuu, että nykyään suositaan isommissa eepromissa vain I2C tyylisiä piirejä (sarjaflash piirit ovat eri asia, ne eivät ole eeprommeja).  Microchipillä on myös yhden johdon Uni I/O-sarja (esim.  
11AA160   1-16kBit)  eprompiirejä.  
EEPROM koot loppuvat yleensä 1 Mbittiin.
Laittamalla näitä 8 kappaletta rinnakkain saadaan 8 MByteä EEPROM muistia. Tämä on jo kohtuullinen määrä tavallisiin tiedonkeruulaitteisiin.

EEPROMien etuna on yksinkertainen ohjelmonti, hinta  ja liitäntä prosessoreihin. Haittana on isompien muistien saatavauus. Muuntyyppiset  muistit (USB, Flash-kiintolevyt  ja muistikortit) ovat edullisempia. On turha tuoda markkinoille isoja EEPROM-piirejä. 
Flash piirit pitää tyhjentää kerralla (tai isoissa lohkoissa), EEPROM jokaiseen tavuun voi kirjoittaa erikseen. Tässä on ero Flash ja EEPROM piirien välillä.

MMC

MMC muistikortin liitäntäkuvat ja ohjelmakoodi ( PICC/CCS)  PIC16F876:lle on Probyte PICCD:llä.


MMC kortilla voi tehdä 256M muistin neljällä johdolla.
Koska MMC-muistille kirjoitetaan 512 k bittiä kerralla, tiedonkeruussa tarvitaan apuna 24LC515  eeprom piiri. Uudemmissa prosessoireissa on riittävästi vapaata RAM-muistia.
1.8 -3.3V käyttöjännitteellä toimiva MMC kortteja käytetään tiedonkeruussa sen helpon liitettävyyden vuoksi. Muistiin voidaan tallettaa dataa miljoona kertaa samaan paikkaan.
MMC-luokkia on monta: 
MMC RS-MMC MMCplus SecureMMC SDIO SD miniSD microSD
Näissä on monia erilaisia piirejä, ja nastamääriä.
Paras katsoa wikipediasta tarkemmat tiedot: http://en.wikipedia.org/wiki/MultiMediaCard








28FXXX-yy  on Flash piiri, joka pitää tyhjentää kokonaan ennen kirjoitusta. Monia eri koteloita
Tunnettuja valmistajia: Intel ja Atmel, Samsung.
Samsung KM2816A-25  2k*8 EEPROM kotelo  DIP24.koteloisisa. Näitä on tallella 12 kpl


28Cxxx on rinnakkainen eeprom, johon voi kirjoittaa tavu kerrallaan, kotelo  DIP 28
Tunnettuja valmistajia ovat Microchip ja Atmel
AM28E256 DIP32  kotelossa.
SST 29EE512 on  512 kbitin FLASH, tätä varastossa DIO32 kotelossa.
MX 29F002NTCP  on  2M bitin  Flash DIP32 kotelossa


93Cxxx on SPI-liitäntäinen eeprom piiri  DIP8 tai SOIC8
Tunnettuja valmistajia ovat Microchip ja Atmel



24Cxxx on I2C liitäntäinen eeprom piiri. DIP8 tai SOIC8.
Tunnettuja valmistajia ovat  Microchip ja Atmel.
Kun tiedon tarve on megatavuja, Flash-piirit ovat edullisempia, mutta ne eivät ole yhtä käteviä kuin EEPROMit.
Monilla valmistajilla on lisäksi omia tyyppejään erikoistarkoituksiin.

25LCxxxx sarja toimii SPI tekniikalla. Siitäkin on saatavilla 1Mbitin versio 25LC1024  

SPI tekniikka tarkoitaa, sitä että siinä on neljä johtoa. Yksi johto on Enable-signaali, se menee yleensä alaspäin ( 5V) ja siten siinä on kello, johon datattahdistetaan. Ensimmäinen data on DO-signlaali (Data out) , jonka avulla kirjotettaan data piirille. Seuraava on lukudata eli SI  (Signal in) Read) . Lisäksi näissä on  kirjoitussuoja jonka avulla piirin ohjelmointi voidaan estää.

25LC-sarja voi olla 8 napaisessa DIP-kotelossa tai SOIC-kotelossa .


Tässä pm 25LC1024 ohjelmointiperiaate  siitä miten piiriltä luetaan data. Eli aluksi CS maihin sen jälkeen annetaan ensimmäinen databitti ja sitten kellotetetaan se positiivisella kello signaalilli sisään. jne.



Sarjamuotoiset
SPI-tyyppiset flashbiospiirit ovat korvanneet PLCC32 piirit PC:n emolevyiltä BIOS:na.
Esim ST:n M25PE16 on 16MBittiä 50MHz nopeudella toimiva Flash piiri. Tässä on 4kB sektorit ja sektoreita on 32 yhdessä sivussa. Sivuja on 256 kappaletta . Yhden sektorin voi tyhjentää kerrallaan. Tätä piiriä käytettäessä tiedon talletukseen laitteessa pitää olla vielä 128k apuEEPROM piiri tai RAM.  
SPI ohjelmointi vaatii 5 -napaisen liittimen ( 3.3V, maa, enable, Clock, data In ja data Out)


Kotelo
on S08W  (W=wide), mitat  5*6mm
Muistiin voi kirjoitaa 100000 kertaa, virrankulutus lepotilassa 1uA
Kuva PC:n emolevyltä.
====================================
Sarja Bios-piirien ohjelmointiin on erikoistunut
Willem ohjelmointilaite

Samalla ohjelmointilaitteella voi ohjelmoida myös tavallisia prosessoreita, Microchip, Atmel ja Intel-8051 piirejä, EPROMeja ja tietysti EEPROMeja.
Tämä on USB-liitäntäinen malli, edullinen, ilmaiset päivitykset. Sopii Windows-koneisiin.
Suosittelen.
P.Ritamäki



 EPROM


EPROMyypit

27Cxxx  
on rinnakkaisliitäntäinen  EPROM piiri, joka pitää tyhjentää UV valolla. Kotelotyypit ovat DIP24, DIP28, DIP32 ja PLCC32.
Jos piirin nimessä on C se tarkoittaa CMOS mallia, jossa on pienempi virrankulutus kuin NMOS  mallissa. Jos piirin lopussa numeroiden jälkeen on A, se tarkoittaa 12.5V ohjelmointijännitettä alkuperäisen 25V asemasta.

Piirissä on osoitelinjoja ( A0 -Axx) ,datalinjoja ( D0-D8), ohjauslinjoja ( R/W, CE,OE, PGR) ja teholähdenastat (VCC, GND)

Tunnettuja valmistajia on kymmenittäin. Esim. Intel. Atmel, Microchip, Hitachi. SST, SGS, jne.




Epromin keksi Intelin varajohtaja
Dov Frohman   Israelissa (Intelin paikallissuunnittelutoimisto) 1972.  Patentti http://www.google.com/patents?id=vcwtAAAAEBAJ&printsec=abstract#v=onepage&q&f=false


Epromin hinta on edullinen, mutta eprom vaatii paljon nastoja prosessorista. Intel -51 sarjassa on yhteiset datalinjat ja ala-osoittet.  Epromista data haettaessa valitaan Eprom !CE ja !OE nastoilla.
Piiriä ohjelmoitaessa PGR-nastaan laitetaan 12.5/25V ohjelmointijännite.
Yhden tavun kirjoitaminen kesti aikanaan 50ms, joka olisi pitkä aika nykyisillä muistitypeillä.
EPROM alkaa olla hieman vanhanaikainen.  Epromia ei voi suojata ohjelman kopioinnilta.
Olen tehnyt ohjelmointilaiteita
  • HP85 tietokoneelle HP-IP väylä 
  • VIC-20 User portti
  • C64 user portti

C64 ohjelmointilaite, jonka olen tehty noin 1984  
Kiertokytkimellä pysyti valitsemaan monta eri mallia



Nanossa (kuva yllä, suomalainen prosessori ) oli myös oma ohjelmointilaite ERPOMEILLE
Siinä oli 1802 CMOS prosessori, video modulaattori ja oikea näppäimistö. Euro1 liiitin ulkoisille laitteille.
Suomalaista designia (Osmo Kainulainen).


Nano alta.

 Huomaa Osmo Kainulaisen nimikirjaimet
Osmo Kainulainen ota yhteyttä. Mikrohistoria kiinnostaa Pekka Ritamäki
oh3gdo@gmail.com 



Purkulaitteet
Kuvassa edullinen Datarase II purkulaite (24V)  Datarase II
EPROM pitää tyhjentää erityisellä ultravielettivalolla toimivalla tyjennyslaitteella. Tätä varten epromissa on kvartsi-ikkuna. Edullisemmissa malleissa ei ole ikkunaa, mutta ne ovatkin sitten kertakäyttöisiä. Ne sopivat massatuotantoon.

Ohjelmointiin tarvitaan erityinen ERROM ohjelmointilaite.
Ohjelmointilaitetta käytetään yleensä PC:llä. Binääritiedosto muutetaan ensin HEX tiedostoksi (Intel HEX32, Motorola S-tiedosto tai Tektronix-tiedostomuoto). Hex-tiedosto tulee yleensä ristikääntäjän lopputuloksena. Tiedostossa voi olla ohjelma tai datatietoja tai molempia.  
Epromiin mahtuva muisti on yleensä laitteen nimessä.
2716 tyyppiin mahtuu 16kbitti eli 2ktavua ( *8 bittiä)
27- oli alunperin TI:n käyttämä EPROM-alkunumero.
Yli megabitin malleissa käyteään esim. 27C040 nimeä. Tässä on 4Mbittiä eli 256ktavua.
Tyypin lopussa oleva numerosarja tarkoitta piirin nopeutta eli kuinka kauan kestää siitä kuin osoitteet ovat oikein siihen kunnes annossa on oikeat datat.
-10 tarkoittas 100ns
-20 tarkoittaa 200ns
-35 tarkoittaa 350 ns

Tässä on toinen purkulaite.Se on saatavilla :
http://probyte.fi/catalog/product_info.php?products_id=150
Sillä voi tyhjentää 5 eprommia kerralla ja sen toimintajännite on 12V. Siinä on myös aikakytkin.
Se on metallikoteloinen.




Emulointi


Epromin ohjelmointi on hidasta, siksi tuotekehityksessä käytetään eprom-emulaattoria. Kuvassa Tech-Tools  
ER3-512 joka emuloi 27512 piireihin saakka. Ohjelma ladataan laitteessa olevaan RAM-muistiin. Laitteen kanta laitetaan kehitettävän epromin paikalle. Lopuksi poltetaan varsinainen eprom, kun testit ovat valmiit.
Emulaattori lataa testiin uuden ohjelman parissa sekunnissa. Eprommaus kestää  piirin vaihtoineen minuutin verran.

Emulaattorilla ei tarvitse tehdä erityisiä toimenpiteitä ohjelmaa vaihdettaessa kuten joududaan tekemään EPROM-piirillä
Tämä emulaattori vaatii rinnakkaisportin, jota ei useinkaan ole kannettavissa tietokoneissa.


 
Toinen Emulaattori on EETOOLSin 

EeRom-8U USB

Tämä toimii USB-kaapelilla ja sillä voidaan emuloida 8Mbittiin saakka
 

Sillä voi emuloida :
EPROM
DATA : 8BIT 27C64 EPROM (2764) 8K
27C128 EPROM (27128) 16K
27C256 EPROM (27256) 32K
27C512 EPROM (27512) 64K
27C020 EPROM (27020) 256K
27C040 EPROM (27040) 512K
27C080 EPROM (27080) 1M
EEPROM
DATA : 8BIT 2864 EEPROM (2864) 8K
28512 EEPROM (28256) 32K
FLASH ROM
DATA : 8BIT 29512 FLASH (29512) 64K
29010 FLASH (29010) 128K
29020 FLASH (29020) 256K
29040 FLASH (29040) 512K




Varastossa olevat eprom mallit  

1k*8 piirit
AM2708 DIP24  tämä piiri vaati +5/+12/-12V 
 MM2708C
MM52030 DIP24  


2k*8 piirit

Hitachi
HN46216G   2k*8  24DIP   5kpl
Toshiba  TM323D 216-3DD0   2k*8 2kpl
NEC D2716D  
2k*8 1kpl
Fujitsu MB6816 K14 DIP24
Näissä kaikissa on 25V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.
 

4k*8 piirit
Hitachi HN2732G    DIP24 12 kpl
 
Hitachi HN2732A    DIP24   14kpl
Näissä kaikissa on 25V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.


8k*8 piirit 
ST M2764AFI    DIP28    2 kpl

National NMC27C64Q    DIP28   12.5V ohjelmointijännte    2 kpl
Intel D2764A    DIP28    3 kpl
Mitsubishi M5L2764K  
 
Näissä kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.

16k*8 
27C128   4  kpl
27128   1 kpl
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.

32k*8 
INTEL D27C256  DIP28  1 kpl
ST M27C256-15XFI   5KPL
27 256   2 kpl 
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.

64k*8  

TSM27C512-150JL DIP28  
FUJITSU MPM27C512-250  DIP28  30 kpl
A27C512-250DI  DIP28  3 kpl
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.


128k *8 
 27C010   DIP32   39kpl
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.
128k *8 
Intel I27C020 INTEL DIP32   2kpl
ST M27C1001-12FI  1 kpl
AM27C010120DC  DIP28   1 kpl   
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.


256*8 = 2MBit eprom   DIP32

ST   M27C2001I-20FI   1 kpl  
Käytössä sama kuin 27C201
Eroa on vain ohjelmointialgorimissa
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.


512k* 8
AM27C040-120DC  DIP32  19 kpl  
 
kaikissa on 12,5V ohjelmointiijännite ja käytössa tarvitaan vain 5V jännite.



EEPROM tietoa lisää:
http://wiki.xtronics.com/index.php/How_EPROMS_Work


Myynnissä olevat   eeprom ja eprom piirit
24C sarja ( I2C)    kotelo DIP8


24C01   koko 1kBit, , varasto1 kpl
24C02   koko 2kBit,  , varasto1 kpl
24C04   koko 4kBit,   varasto 1   kpl
24C08   koko 8kBit,

24C16   koko 16kBit   25 kpl  , Microchip
24C32     koko 32kBit,
24C65  koko 65kBit,
24C128  koko 128 kBit,
24C256  koko 256k, , varasto 1 kpl
24C515   koko 512 kbit, h  varasto 25 kpl 
24C1024  koko 1024kbit,  , varasto 5kpl
X24C02   EXAR    1kpl


  93C sarja DIP8   SPI liitäntä ( !CS, kello, data in ja out)


93C46N (DIP8)    koko 1kbit ( 256 tavua)   Microchip   hinta 1e, varasto 30   kpl ( Stamp1 muisti)
93C56 (DIP8)   koko 1kbit, Microchip,   varasto 20   kpl
X25043P   EXAR , 3kpl, watchdog ja eeprom yhdessä. Sopii Intel -51 sarjan watchdog käyttöön.

Rinnakkaiset EEPROM-piirit

AT28C256   DIP28 0.6" leveä, 256 kbittiä, varasto 5 kpl, toimii yhdellä jännitteellä 5V.   


Muita eeprom piirejä
PDC8572   DIP8, Philips
Flash MX29E002NTPC- 12    DIP32  
SST   Flash   PH29EE512 DIP32  

Flash AM29E256 DIP32  


http://probyte.fi
Lisätietoja

Pekka Ritamäki
Päivitetty 21.3.2019
Päivitetty 2.6.2017
Päivitetty 21.1.2016
Päivitetty 6.8.2014  
Päivitety 24.9.2013 

Päivitetty 11.11.2012
Päivitetty 3.11.2012
Päivitetty 23.9.2010