|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:18 am
как да се запазят надеждно данни в еепром ,живот на еепрома
| Автор |
Съобщение |
|
sigkill
Ранг: Популярен
Регистриран на: Чет Ное 29, 2007 2:22 pm Мнения: 309 Местоположение: Vratsa
|
 как да се запазят надеждно данни в еепром ,живот на еепрома
Предложете начин за подигуряване на записаните данни (вграден ееп на пик16Ф) , актуализират се примерно 48 пъти на денонощие.
По хардуерна причина пазенето в рам и записа при отпадане на захранването не е изпълним ( за сега). Смятам да дублирам данните няколко пъти (3 или 4) , да проверявам за съвпадение и отделно да пазя чексума за всеки запис , при настъпване на събитие се ъпдейтва записа и чексумата , да правя проверка след това, чексумите ще ги пиша в такава последователност че да мога чрез тях да знам не само кой запис е безгрешен но и кой е последен .Мога да добава байт сочещ адреса , и при грешка да премествам данните за да удължа живота на паметта ..
Дали не е разумно да пазя данните дублирани и отделно при невъзможност за правилен запис да ги местя на друг адрес ?
|
| Нед Окт 03, 2010 1:20 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Едва ли и година ще изкара с такова темпо на писане.
|
| Нед Окт 03, 2010 1:32 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
По спецификация на епрома му дават 1млн. цикъла на запис ,което при твоя темп значи 50години. Грешките идват по-скоро от недобра процедура за запис, а не от развалени клетки. Не ми се вярва Микрочип да са писали даташита наизуст защото хич не е трудно да се провери реално. Например ако правиш запис всяка секунда, лимита от 1млн. се изчерпва за 11.5дена. Може и сам да си направиш такъв тест да видиш колко ще ти изкара конкретния епром.
|
| Нед Окт 03, 2010 2:35 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Абе, вярно че 1 000 000 цикъла пише, аз защо бях останал с убеждението, че са 10 000?!?
|
| Нед Окт 03, 2010 2:54 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
10'000 беше за Флаш паметта, даже по едно време и само 1000 беше, но сега гледам пишат 100'000. Само да не стане като ватовете на китайските тонколонки.  Ако е толкова критично приложението ,нищо не струва да се жертва един чип с реален тест.
Иначе проблема с чексумата е ,че ще се обновява още по-често и ще изгори първа, затова трябва да се пази в рам и да се записва по-нарядко.
|
| Нед Окт 03, 2010 3:03 pm |
|
 |
|
sigkill
Ранг: Популярен
Регистриран на: Чет Ное 29, 2007 2:22 pm Мнения: 309 Местоположение: Vratsa
|
Мога да пазя това което се променя често в заделени адреси за и при грешка да го местя и отделно да си пазя дублирана последната сигурна стойност за да я променям доста по-рядко ( или само при достигане на определена стойност и/или настъпване на определено събитие) ?
|
| Нед Окт 03, 2010 3:08 pm |
|
 |
|
a_stankov
Ранг: Новодошъл
Регистриран на: Съб Дек 06, 2008 9:22 am Мнения: 119 Местоположение: Пловдив
|
Имах проект в който трябваше често да се съхраняват данни в EEPROM-a. Направих си опитна постановка и тестова програма която записваше различни числа в една и съща клетка като всеки път се проверяваше коректността на записа. Процесора изкара 2 500 000 цикъла на презапис без проблем опитите ги прекратих. Микрочип има апликейшъни за това, като тези презаписи 1 000 000 са за захранващо напрежение 5 волта. Ако процесора работи на по-ниско захранване циклите на презапис се увеличават.
Проекта все още не е реализиран до край така, че не мога да кажа дали това ще е валидно за повече от два процесора с които съм пробвал тестовата установка. Процесорите за проба бяха ПИК 12Ф675
|
| Нед Окт 03, 2010 4:06 pm |
|
 |
|
sigkill
Ранг: Популярен
Регистриран на: Чет Ное 29, 2007 2:22 pm Мнения: 309 Местоположение: Vratsa
|
При чест запис в една клетка тези клетки в които не се записва трябва да се рефрешнат на определен брой цикли
( http://mientki.ruhosting.nl/data_www/pi ... blems.html), аз пусках пробен запис през 10 мс ( без да отчитам времето нужно за еепрома) и го циклих това към час без да даде грешка , смятам да си остана с просто дублиране на записа + чексуми и писане ама на по-нарядко. Е ще трябва да му мисля на кое от всичките да вярвам когато се окажат различни ...
Та оказва се че клетките в които се пише често не са толко проблем , проблема е в останалите ако там се пазят важни константи , аз имам такива но при първото стартиране пика ще ги копира на флаша си , след това ще сетне един флаг и чексумата на еепрома.
|
| Нед Окт 03, 2010 4:25 pm |
|
 |
|
mitko_el
Ранг: Форумен бог
Регистриран на: Вто Яну 24, 2006 6:34 pm Мнения: 1753 Местоположение: Варна
|
Правих с подобни съображения следното: EEprom-a примерно го бях разделил на 8 дяла . Клетка която е извън тези 8 дяла , помни кой дял е актуален.
След всеки ресет , чета последния дял , пиша го в следващия и увеличавам "Клетка N-дял" . Ако се прецака нещо-се връщаш на предишния дял.
_________________ За пари сичко праим,даже и работим...
|
| Нед Окт 03, 2010 6:14 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
И един полезен съвет, който и друг път съм го давал  . След всяко писане или четене записвай в EEADR адрес който никога няма да ползваш - дано да не ти трябва целия  . Проблема (както се описва по разни форуми на Microchip) е, че при отпадане на захранването, се случвало чипа да скочи на частта дето пише в еепрома и да ти запише нещо незнайно. Този проблем може да се отстрани и с BOR, ама не е излишно. Аз имах точно такъв проблем и направо бях полудял - след дълго ровене по форумите го намерих това, направих го и оттогава не съм имал такива случаи.
|
| Нед Окт 03, 2010 6:52 pm |
|
 |
|
sigkill
Ранг: Популярен
Регистриран на: Чет Ное 29, 2007 2:22 pm Мнения: 309 Местоположение: Vratsa
|
Да запознат съм с този проблем началните адреси ми се освобождават след първият пуск на устройството ,отделно и бор ми е включен ( пак поради хардуерна особенност има ситуация при която ПОР не сработва , кученцето за сега е офф , кода е доста чистичък и праволинеен тане очаквам да джафка псето ).
|
| Нед Окт 03, 2010 8:39 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Интересен проблем имаш, първо не да те отчайвам но да занеш, случайността е голямо нещо, точно в таква ситуация с 3 записа и чексума, се казва че и записите и чексумата излизат, но това не е регулярен запис защото и самата процедура се логва преди д започне и като свърши а лог няма, та случайността е голяма работа, това обаче с просто crc.
Иначе това е сравнително надежден, да не кажа много надежен начин, това което ти казвам се случи, но веднъж от над 200 хил проддени изделия за период от над 8 години, може да е имало и други но не се е разбирало.
Сега може би имаш някаква причина, ама що не позлваш външен епром, и най-вече защо не пробваш fram, ако търсиш надеждност, мисли за външни памети, дали фрам, дали батерийно резервиран рам . нещо такова.
|
| Пон Окт 04, 2010 12:17 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
зависи - ако пишеш на различни адреси ще живее повече
_________________ main[-1u]={1};
|
| Пон Окт 04, 2010 10:22 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Може така:
Правиш 2 еднакви области в EEPROM, където да се пишат данните. Отделно един указател, който помни областта с валидни данни. Проверяваш указателя и пишеш в другата област. Проверяваш данните и ако са ОК, променяш указателя. И накрая пишеш 0х00 в някоя клетка за защита от случайна промяна.
|
| Пон Окт 04, 2010 10:30 am |
|
 |
|
sigkill
Ранг: Популярен
Регистриран на: Чет Ное 29, 2007 2:22 pm Мнения: 309 Местоположение: Vratsa
|
 Re: как да се запазят надеждно данни в еепром ,живот на еепр
relsys , точно за това говорех редувам записите и си пазя за всеки случай чексум , дори при скапване на указателя по чексумата мога да хвана правилната стойност и/или да имам предишната сигурна стойност, при липса на проблем запсисите ще съвпадат. За да намаля циклите ще пиша само при определени условия. Може да се помъча да ползвам сигнал от периферно успройство ( или просто да добавя едно МЦП120 към РБ.0), жалко че bor не може да се сетне като прекъсване) за да засичам отпадане за тока и ако има текуща промяна в данните да ги пиша ( на друг адрес.Хубавото е че спиране на тока е малко вероятно.Хардуера за сега няма да се пипа иначе бекъп захранване или добавяне на фрам си е стабилното решение.
|
| Пон Окт 04, 2010 2:02 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|