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

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
lesana87
Příspěvky: 4400
Registrován: 20 zář 2014, 00:00

#16 Příspěvek od lesana87 »

Ale v tom diagramu se provádí verifikace a podle jejího výsledku se přidávají další 100us pulsy. Tak jak můžeš ten algoritmus dodržet bez verifikace?
Uživatelský avatar
astromik
Příspěvky: 40
Registrován: 28 úno 2014, 00:00
Bydliště: Milevsko
Kontaktovat uživatele:

#17 Příspěvek od astromik »

lesana87:

Dobře, zkusím zapsat "0x0000" i s tou verifikací.
Provedl jsem jen tu úvodní smyčku pro všechny adresy s jedním impulzem.

Pak jsem to vypnul, přepnul datový expander na vstup a všechny data z paměti načetl a uložil do souboru.

Při prvním zápisu to takhle fungovalo, ale protože jsem měl chybu v hardwaru, byla data na špatných adresách. Při pokusu o další zapisovací smyčku (opět s jedním 100us impulzem) se nic nedělo - data zůstala stejná jako po prvním zápisu.

Zítra dám vědět, jak to dopadlo.
Uživatelský avatar
lesana87
Příspěvky: 4400
Registrován: 20 zář 2014, 00:00

#18 Příspěvek od lesana87 »

A aspoň to časování dodržuješ? Data + adresa, >2us počkat, zápisový puls 100us, >4us počkat, další data + adresa, ....
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#19 Příspěvek od Bernard »

Šla kdysi taková fáma, že OTP EPROMky jdou smazat roentgenovým zářením. Jeden kolega měl za manželku zubařku v nemocnici, tak jí to podstrčil na ozáření, ale nějak to nedopadlo na 100%. Tenkrát jsme ty OTB brali z nouze, Tesla nestíhala ta keramická pouzdra, a sovětské K176 byly značně nespolehlivé.
Uživatelský avatar
astromik
Příspěvky: 40
Registrován: 28 úno 2014, 00:00
Bydliště: Milevsko
Kontaktovat uživatele:

#20 Příspěvek od astromik »

lesana87:

Časování mám bezpečně nad požadovanými limity.
U 100us impulzu je tolerance 5%. Ten generuji v Arduinu takto:

Kód: Vybrat vše

void setup()
{
    pinMode(4, OUTPUT);         // D4 dava 100us impulzy
    attachInterrupt(0, preruseni, FALLING);   // INT0 ceka na sestupnou hranu
}



void loop()
{
}


void preruseni()   // po sestupne hrane na INT0 se vygeneruje 100us impulz
{
  digitalWrite(4, LOW);
  delayMicroseconds(97); //doladeni sirky impulzu na 100us podle osciloskopu
  digitalWrite(4, HIGH); 
}





a program pro Raspberry Pi pro zápis dat vypadá takhle:


Kód: Vybrat vše

#!/usr/bin/python

import smbus
import time


bus = smbus.SMBus(1)    # novejsi verze Raspberry Pi (512MB)

bus.write_byte_data(0x20,0x00,0x00) # port A ridiciho expanderu na vystup
bus.write_byte_data(0x20,0x01,0x00) # port B ridiciho expanderu na vystup

bus.write_byte_data(0x21,0x00,0x00) # port A adresoveho expanderu na vystup
bus.write_byte_data(0x21,0x01,0x00) # port B adresoveho expanderu na vystup

bus.write_byte_data(0x26,0x00,0x00) # port A datoveho expanderu na vystup
bus.write_byte_data(0x26,0x01,0x00) # port B datoveho expanderu na vystup


bus.write_byte_data(0x20,0x12,0b00000001) # pin A0 ridiciho expanderu do "1"



file = open('data-eeprom.txt', 'r')

for line in file:
   
    adrh = int(line[0:3])    # hornich 8 bitu adresy
    adrl = int(line[4:7])     # spodnich 8 bitu adresy
    dath = int(line[8:11])   # hornich 8 bitu dat
    datl = int(line[12:15])   # spodnich 8 bitu dat


    bus.write_byte_data(0x21,0x12,adrl) # port A adresoveho expanderu nastavit na spodni cast adresy
    bus.write_byte_data(0x21,0x13,adrh) # port B adresoveho expanderu nastavit na horni cast adresy

    bus.write_byte_data(0x26,0x12,datl) # port A datoveho expanderu nastavit na spodni cast dat
    bus.write_byte_data(0x26,0x13,dath) # port B datoveho expanderu nastavit na horni cast dat


    time.sleep(0.001) # pauza pred zapisovacim impulzem

    bus.write_byte_data(0x20,0x12,0b00000000) # pin A0 ridiciho expanderu do "0"
    time.sleep(0.001)                         # arduino si na zaklade tehle H->L  hrany vygeneruje 100us
    bus.write_byte_data(0x20,0x12,0b00000001) # pin A0 ridiciho expanderu zpatky do "1"



    print adrh , adrl, dath, datl




Data v souboru "data-eeprom.txt" mají takovouto strukturu (výřez části dat):

Kód: Vybrat vše

.....
115;109;003;089
115;110;003;118
115;111;003;147
115;112;003;176
115;113;003;205
115;114;131;234
115;115;000;007
115;116;000;036
115;117;000;065
115;118;000;094
115;119;000;123
......
Uživatelský avatar
EKKAR
Příspěvky: 35015
Registrován: 16 bře 2005, 00:00
Bydliště: Česká Třebová, JN89FW21

#21 Příspěvek od EKKAR »

Bernard píše:Šla kdysi taková fáma, že OTP EPROMky jdou smazat roentgenovým zářením. Jeden kolega měl za manželku zubařku v nemocnici, tak jí to podstrčil na ozáření, ale nějak to nedopadlo na 100%. Tenkrát jsme ty OTB brali z nouze, Tesla nestíhala ta keramická pouzdra, a sovětské K176 byly značně nespolehlivé.
To není fáma, to je fakt - OTP neboli One Time Programmable (E)PROM jdou smazat RTG zářením, akorát to musí bejt trochu silnější záření, než dávají lékařský diagnostický zářiče - nevím kolik eV musí to záření mít, ale na jistejch defektoskopickejch pracovištích, kde se rentgenujou sváry na oceli nebo obecně kovech o síle klidně 25-50mm se takový OTP paměti mazaly - stačilo je ozářit po dobu několika minut právě tím defektoskopickým RTG zářičem - a byly plný FF ... Určitým vodítkem pro určení energetický hladiny záření by mohlo bejt, že takovej rentgen má na anodě rentgenky napětí v řádu 100 - 150kV, kolik má energii v eV se mi nepovedlo od nikoho vyzvědět ...
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...
A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!
Uživatelský avatar
lesana87
Příspěvky: 4400
Registrován: 20 zář 2014, 00:00

#22 Příspěvek od lesana87 »

Rentgenka má spojité spektrum záření se špičkami na charakteristických energiích materiálu anody. U wolframu jsou ty špičky kolem 60keV.
Docela bych se divila, kdyby ta EPROMka po několika minutách v takovém záření ještě spolehlivě fungovala. Na internetu jsem našla, že by se pak ten čip musel ohřát na 600°C, aby se odstranilo poškození, způsobené tím tvrdým zářením. A už vidím to plastové pouzdro při 600°C.
Uživatelský avatar
danhard
Příspěvky: 6648
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#23 Příspěvek od danhard »

Brzdné rtg záření je širokopásmové a maximální energie je daná urychlovacím napětím :D
Charakteristické záření dané materiálem anody se začne objevovat až po překročení exitačních energií materiálu anody, prakticky až pro 80kV a více.
Uživatelský avatar
astromik
Příspěvky: 40
Registrován: 28 úno 2014, 00:00
Bydliště: Milevsko
Kontaktovat uživatele:

#24 Příspěvek od astromik »

Tak jsem vyzkoušel doplnění té verifikace a vypadne to hned na první adrese po 10. zápisovém impulzu. Data, která jsou v paměti, není možné přepsat.

Takže to vypadá, že je ta paměť asi špatná.

Další postup bude sehnat novou paměť a pokusit se o nahrání dat na první pokus.
Uživatelský avatar
lesana87
Příspěvky: 4400
Registrován: 20 zář 2014, 00:00

#25 Příspěvek od lesana87 »

Co radši použít AT49F1025? Nebo požádat někoho, kdo má funkční programátor na tu OTP.

Edit: Mám tu haldu OTP pamětí poloviční kapacity AT27C516-55JC. Zkusila jsem je v programátoru přečíst a přepsat některé 1 na 0 a bez problémů. Jediný problém byl, že se ty paměti identifikují 001Eh/002Ah místo 001Eh/00F2h, takže bylo potřeba zakázat ID check.

Edit2: Dokonce i paměti od ST M27C516 se identifikují (0020h/01FFh) místo (0020h/000Fh). Aby to nakonec nebyly všechno nějaké zakuklené přeznačené Flashky. :D
Uživatelský avatar
monterjirka
Příspěvky: 2855
Registrován: 14 čer 2003, 00:00
Bydliště: Blížejov

#26 Příspěvek od monterjirka »

Bernard píše:Šla kdysi taková fáma, že OTP EPROMky jdou smazat roentgenovým zářením. ....

Mám dojem, že to tvrdil i autor knihy Rozeberte si PC.
Uživatelský avatar
astromik
Příspěvky: 40
Registrován: 28 úno 2014, 00:00
Bydliště: Milevsko
Kontaktovat uživatele:

#27 Příspěvek od astromik »

Sice s velkým zpožděním, ale podle bodu 7d) pravidel fóra oznamuji, že je problém vyřešen.

Po neúspěšném pokusu s první pamětí jsem zkusil vypálit data do druhé paměti stejného typu.
I tady ale došlo asi po 20kB bezproblémového programování k jejímu zničení (zase se zablokovala tak, že do ní už nebylo možné nic zapsat.)

Na třetí pokus jsem tedy poslechl radu Lesany87 a místo OTP EPROM jsem použil přepisovatelnou FLASH "AT49F1025".
Protože má téměř stejné rozložení vývodů, stačilo jen trochu upravit vypalovací program a všechna data se podařilo zapsat hned napoprvé.

Opožděně tedy děkuji za radu.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“