Stránka 1 z 2

VYŘEŠENO - Je možné vymazat obsah v OTP EPROM?

Napsal: 22 srp 2015, 17:48
od astromik
Potřeboval jsem si do paměti AT27C1024 (http://www.atmel.com/images/doc0019.pdf) vypálit nějaká data. Vytvořil jsem si jednoduchý programátor a pomocí Raspíčka a Arduina jsem ta data vypálil.
Problém je v tom, že jsem v tom programátoru měl zkratované nějaké adresovací vstupy, takže data v paměti jsou poškozená a paměť je na vyhození.

Chtěl jsem po opravě programátoru zkusit, jestli nepůjdou do té paměti vypálit samé "0x0000".
Tím bych si na té špatné paměti vyzkoušel, že teď už programátor funguje a je možné adresovat celou paměť (64k).
Výsledkem je, že data jsou pořád stejná, jako byla po prvním zápisu.

Zajímalo by mne tedy, jestli OTP EPROM znamená, že se po prvním naprogramování paměťová buňka nějak zamkne, takže se už nedá vůbec změnit?

Nebo by mělo být možné jedničkové bity v datech dalším pokusem o zápis přepsat do nuly? - to by znamenalo, že mi teď v tom programátoru něco odešlo, protože zápis "0x0000" nefunguje.

-----
... jen pro ukázku, takhle ten "bastl programátor" vypadá:
http://www.astromik.org/forum/promprog2.jpg
http://www.astromik.org/forum/promprog1.jpg

Napsal: 22 srp 2015, 18:06
od astromik
Tahle EPROM nemá mazací okýnko.

Je to vidět na fotce http://www.astromik.org/forum/promprog1.jpg na tý modrý desce.

Napsal: 22 srp 2015, 18:08
od Yarda1
Tuhle paměť neznám. S pamětmi EPROM co jsem s nimi měl co do činění to bylo tak, že měly skleněné okénko a mazaly se ultrafialovým světlem. A někdy ty paměti byly označené jako OTP - to okénko tam nebylo a tak je nebylo jak mazat (údajně takové paměti dělala TESLA, dokud se nenaučili udělat speciální sklo na to okénko).
IMHO se smiř s tím, že tu paměť můžeš použít jako střelivo do praku.

Napsal: 22 srp 2015, 18:10
od astromik
Yarda:
Jasně, že jsem se smířil s tím, že paměť je na vyhození. Chtěl jsem ale před zničením další paměti otestovat, jestli teď už ten programátor funguje.

Napsal: 22 srp 2015, 18:12
od masar
To on už se smířil a místo do praku ji chce použít jako tester programátoru.
Myslím, že by měla jít "doprogramovat" na samé nuly. Jen je třeba dodržet programovací podmínky a např. tento diagram:
:wink:

Napsal: 22 srp 2015, 18:20
od astromik
masar:

Tohle jsem právě zkoušel, ale nic se nepřepsalo. Data jsou tam pořád původní.
Takže to vypadá, že odešlo něco v tom programátoru (možná ty 100us pulzy nejsou dost přesné).

Ještě to zkusím prověřit...

Napsal: 22 srp 2015, 18:23
od Yarda1
Ta deska s pamětí vypadá jako kupovaná - pokud je to tak, dost mne udivilo, že tam výrobce dal OTP - dá se předpokládat, že kutil tam bude nějaký program odlaďovat a bude potřebovat mazat (ale v současné době bych tam čekal nějakou elektricky mazatelnou). Verzi OTP bych čekal v nějakém průmyslovém zařízení, co se vyrábí sériově a program nebo data se tam napálí při výrobě a nikdo už se v tom nebude šťourat.
Jednou se mi podařilo smazat EPROMku (2708 nebo 2716) bez UV světla - do programovadla jsem ji dal obráceně a pak byla jako nová - akorát už nešla naprogramovat :(

Napsal: 22 srp 2015, 18:28
od Yarda1
masar píše:....Myslím, že by měla jít "doprogramovat" na samé nuly...
Nemůže být v té paměti cosi co po naprogramování tu paměť zamkne a další programování už nedovolí? Jen mne to napadlo, jak jsem psal, tuhle paměť neznám.

Napsal: 22 srp 2015, 18:29
od astromik
Yarda:
To je moje deska. Navrhoval jsem si jí sám a nechal vyrábět u Číňanů.
Je to součást většího zařízení - proto je tam kolem ta spousta konektorů.

Na tý hnědý univerzální desce (to je ten programátor) jsou jen dva I2C expandery MCP23017. Jeden se stará o nastavení 16-bitové adresy. Druhý se stará o nastavení 16-bitových dat.
Arduino je tam kvůli generování přesného zapisovacího impulzu 100us.

A celé je to řízené Raspíčkem, které si tahá data z excelovského souboru a přes I2C je posílá do expanderů....

Yarda1 píše: Verzi OTP bych čekal v nějakém průmyslovém zařízení, co se vyrábí sériově a program nebo data se tam napálí při výrobě a nikdo už se v tom nebude šťourat.
Je to tak, jak píšeš. Akorát to není žádná sériová výroba, ale jen jeden kus a v těch datech už se nikdo šťourat nebude. Potřeboval jsem 16-bitový data a co nejkratší přenosovou dobu mezi nastavením adresy a získáním dat.

Yarda1 píše:Nemůže být v té paměti cosi co po naprogramování tu paměť zamkne a další programování už nedovolí?
To je právě ten můj původní dotaz.

Napsal: 22 srp 2015, 18:33
od masar
Yarda1 píše:...Nemůže být v té paměti cosi co po naprogramování tu paměť zamkne a další programování už nedovolí? Jen mne to napadlo, jak jsem psal, tuhle paměť neznám.
To by snad v datasheetu o tom byla zmínka. Ale není. :wink:

edit: A kde jsou spínače Vpp a Vcc?

Napsal: 22 srp 2015, 18:57
od astromik
masar píše: edit: A kde jsou spínače Vpp a Vcc?
Tyhle dvě napětí řeším externími zdroji 6,5V a 13V.
Zapínám i vypínám je sice ručně, ale podle kat. listu ve správném pořadí.

Při zapínání nejdřív Vcc (6,5V) a pak Vpp (13V).
Při vypínání opačně.

Napsal: 22 srp 2015, 19:06
od lesana87
A selže ti to tedy po tom desátém verifikačním cyklu?

Napsal: 22 srp 2015, 19:09
od masar
astromik píše:...Při zapínání nejdřív Vcc (6,5V) a pak Vpp (13V).
Při vypínání opačně.
Já to tam vidím obráceně. :wink:

edit: Ale slovní popis souhlasí s tvým.

Napsal: 22 srp 2015, 19:11
od astromik
lesana87 píše:A selže ti to tedy po tom desátém verifikačním cyklu?
Neprovádím průběžnou verifikaci.
Prostě jsem to jen zapsal, jak je to uvedeno v tom diagramu výše. Pak jsem to vypnul, nastavil Vcc na normálních 5V, Přepnul OE do "0", datový expander na vstup, a začal jsem postupně nastavovat adresy a číst data. Načtená data jsem průběžně ukládal do souboru..

Napsal: 22 srp 2015, 19:14
od astromik
masar píše:
astromik píše:...Při zapínání nejdřív Vcc (6,5V) a pak Vpp (13V).
Při vypínání opačně.
Já to tam vidím obráceně. :wink:
"VCC must be applied simultaneously with or before VPP, and removed simultaneously with or after VPP." (starna 4, tabulka 5-3, note 1)