Založen: Feb 14, 2005 Příspěvky: 8977 Bydliště: Brno (JN89GF)
Zaslal: út červen 04 2019, 17:31 Předmět: Vadná EEPROM u PIC?
Setkal se někdo s vadnou EEPROM u PICu? Dělám teď jednu kostrukci a občas mi čtení z EEPROMky vrátí hodnotu 0xFF místo té, co tam má být. Procedura čtení z EEPROM vypadá takto, úplně standardně:
Přerušení je v tu dobu zakázaný. Zatím jsem nezkoušel, jestli se to projeví dvakrát za sebou, zatím jsem vždy vadnou hodnotou přepsal, ale vyzkouším ji nepřepisovat. PIC je starej, vyndanej z něčeho, co jsem kuchal, naprosto netuším, co má naběháno.
Založen: Jun 14, 2003 Příspěvky: 2794 Bydliště: Blížejov
Zaslal: út červen 04 2019, 18:34 Předmět:
Ještě se mi nedostal do ruky PIC s vadnou EEPROM, ale už se mi ji podařilo "zdevastovat" chybou v programu, kdy tam zapisoval a zapisoval... I když měl jen občas zapsat pokud se změnilo nastavení
Založen: May 01, 2015 Příspěvky: 1155 Bydliště: Doupě kdesi v severních horách :-)
Zaslal: út červen 04 2019, 21:28 Předmět:
Pokud se dobře pamatuji, tak u některých PICek výrobce v DS psal, že se nemá používat nultá buňka EEPROM, protože zapomíná, nebo se přepisuje. Už si to nepamatuji, je to už fakt moc dlouho. V té době kralovala 16F84
Takže se když tak zkus podívat do katalogu, jestli tam není podobná poznámka. _________________ Jsem na cestě k šípku.
Založen: Feb 14, 2005 Příspěvky: 8977 Bydliště: Brno (JN89GF)
Zaslal: st červen 05 2019, 8:35 Předmět:
Nic takovýho jsem tam nenašel. Adresu 0x00 sice používám, ale zaznamenaný chyby čtení zatím nastaly na jiných (0x01 a 0x03). Všechno samozřejmě ze začátku, kde se dá čekat, že to používá každej. Stane se to tak v jednom čtení asi z padesáti, takže nijak často. Poprvé se to stalo, když byl PIC asi týden bez napájení, podruhé ale nebyl. Čtení EEPROM probíhá na začátku programu, nic jinýho v tu dobu ani neběží, nic to přerušit nemůže. Ani zatím nereaguje na vstupy. Každopádně zatím jsem přidal do programu kontrolu a při zjištění hodnoty 0xFF hodí hned chybu a zastaví běh.
V nejhorším napíšu nějakej Memtest a pustím ho na něm.
Založen: Feb 14, 2005 Příspěvky: 8977 Bydliště: Brno (JN89GF)
Zaslal: st červen 05 2019, 8:59 Předmět:
To ne, ale zapisuju do ní jen zřídka. A shodou náhod obě chyby se projevily zrovna u hodnot, který jsem nezapisoval mezi jednotlivýma startama PICu vůbec. Vím, že zápis je celkem choulostivej, detekci chyby zápisu jsem zatím nezařadil, protože to mám snad ošetřeno správně. Opět je samozřejmě vyplý přerušení a program při zápisu na nic nereaguje.
Hodně mi pomůže, až se to zase stane, že to jen vypnu a zapnu. Jestli se to opět načte špatně, nebo správně. Na to momentálně čekám, jenže zatím marně.
Jo a adresy EEPROM mám v programu nacvakaný růčo fůčo, ani při zápisu, ani při čtení, se nedosazují pomocí nějakých proměnných, že by mohla být chyba v algoritmu jejich generování.
...Každopádně zatím jsem přidal do programu kontrolu a při zjištění hodnoty 0xFF hodí hned chybu a zastaví běh.
V nejhorším napíšu nějakej Memtest a pustím ho na něm.
No možná by stačilo tu kontrolu rozšířit o opakované čtení právě zjištěné chyby v dostatečně dlouhé časové smyčce a výsledky uložit. Mohlo by to napovědět.
Založen: Feb 14, 2005 Příspěvky: 8977 Bydliště: Brno (JN89GF)
Zaslal: st červen 05 2019, 9:53 Předmět:
To jo, zatím ale spíš ladím program samotnej, tak nějaký větší složitosti zbytečně nevytvářím. Tu detekci čtení 0xFF jsem tam dal i proto, abych právě neladil program s vadnýma datama.
Pokud se mi opravdu prokáže, že přečtu 0xFF z jedné adresy opakovaně i po restartu PICu, tak napíšu něco speciálně na testování.
Ja s tou spolehlivosti eeprom integrovanych v MCU mam taky nevalne zkusenosti a pouzivam to dost nerad. Nejen ze se to obcas blbe nacte, ale i sem tam neco prepise. Deje se to nahodne, nepodarilo se mi vysledovat nejaky mechanismus, snad mam jen pocit ze to muze mit neco spolecneho s prechodovymi deji pri kratkych vypadcich napajeni, silnym EMC rusenim apod. Kdyz uz tohle pouzivam, radeji tam zapisuju vsechno 3x a data se daji v naproste vetsine pripadu jednoduse automaticky obnovit. Pokud jsem eeprom v MCU nahradil externimi pametmi, problemy vzdy ustaly. V posledni dobe jsem si oblibil FRAM, jsou rychle a maji velky pocet zapisu takze je mozne nekdy je pouzivat i jako nahradu za RAM.
Cau, zablokovany napajeni mas ?
zapis funguje ? on totiz trva docela dlouho ...
kdyz ty data zapises tak je hned precti pro kontrolu ...
nevim vhodnost programu a zapojeni ale po precteni spatne hodnoty skusit precist programatorem ...jestly data opravdu souhlasi s tim co si precet programove
Založen: Aug 02, 2009 Příspěvky: 1321 Bydliště: Praha
Zaslal: so červenec 06 2019, 23:45 Předmět:
Pokud by to bylo ojetou EEPROM, tak by problem byl spis opacny - jednickove bity by se cetly jako nuly. Teoreticky pokud by se utnul zapis predcasne, tak by se mohla 0 zapsat nespolehlive a pak nekdy precist jako 1. Nevim jak na PICech, ale na AVR je nejaka signalizace, jestli byl zapis dokoncen nebo ta zapisovaci funkce blokuje dokud zapis neni hotov, protoze to trva nekolik ms... Zkusil bych to opakovane vycitani EEPROM programatorem jak radil kolega nade mnou, zavolat v nake davce treba 1000x precist do souboru s inkrementalnim nazvem a pak na to pustit compare a uvidis...
Založen: Feb 14, 2005 Příspěvky: 8977 Bydliště: Brno (JN89GF)
Zaslal: ne červenec 07 2019, 12:23 Předmět:
Tak jsem to dlouho nezaznamenal, až včera. Nahrál jsem do PICu novou verzi a při programování cíleně zaškrtnul "preserve EEPROM data", abych je nepřepsal. A ihned po nahrátí a resetu se to stalo opakovaně třikrát za sebou. Program skončí chybou hned na začátku, když detekuje vadnou hodnotu při čtení. Nic se nezapisuje. Takže to poškodilo programování, ne nedokončenej zápis, nebo samo od sebe. V těch minulých případech to možná bylo taky tak, to už si nevybavím, jestli to bylo po nahrávání. Každopádně, když jsem EEPROM přepsal spolu s programovou pamětí, tak je to v pořádku.
Ještě jsem včera zjistil, že se mi tvořila asi zemní smyčka přes programátor, tak to možná bylo tím, ale hlavní program se nikdy špatně nenahrál a verifikace vždy prošla.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.