Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с вградения еепром на пиковете?
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=2699
Страница 1 от 5

Автор:  rumen [ Чет Юли 27, 2006 8:19 pm ]
Заглавие:  Проблем с вградения еепром на пиковете?

Имал ли е някой проблем с епрома на пиковете?
Направих едни джаджи които си запонмят настройките в еепрома.
При мен работиха.
Сега получих отзив че някои от тях забравят.
Не са ми върнали нито един непомнещ за да видя каде е проблема.
Дори може и нищо да не ми върнат защото са им хванали цаката със постоянно захранване.
Искат още.
Искат да реша проблема с непомненето на някои екземпляри.

Процесорите са 16ф627а, 628А а някои са ф84(имах изостанали бройки)

От това което ми казват ПРЕДПОЛАГАМ че запомнят а после случайно при някое от включванията не си четат еепрома.
Възможно ли е ?
Каква е вашата практика?

Автор:  plameniv [ Чет Юли 27, 2006 8:22 pm ]
Заглавие:  Re: Проблем с вградения еепром на пиковете?

rumen написа:
Имал ли е някой проблем с епрома на пиковете?
Направих едни джаджи които си запонмят настройките в еепрома.
При мен работиха.
Сега получих отзив че някои от тях забравят.
Не са ми върнали нито един непомнещ за да видя каде е проблема.
Дори може и нищо да не ми върнат защото са им хванали цаката със постоянно захранване.
Искат още.
Искат да реша проблема с непомненето на някои екземпляри.

Процесорите са 16ф627а, 628А а някои са ф84(имах изостанали бройки)

От това което ми казват ПРЕДПОЛАГАМ че запомнят а после случайно при някое от включванията не си четат еепрома.
Възможно ли е ?
Каква е вашата практика?

Явно имаш бъг някъде в програмата, аз досега никога не ми се е случвало да имам проблеми.
Да не би просто да правиш твърде много записи и да си превишил циклите !

Автор:  rumen [ Чет Юли 27, 2006 8:26 pm ]
Заглавие: 

Записването е напрактика еднократно.
В началото и край.
Максимум да променят 10 нита пъти настройката.

Автор:  asp [ Чет Юли 27, 2006 8:26 pm ]
Заглавие: 

аз съм чувал за подобни проблеми които били решени с рам + батерийка. Май има стандартно такова устройство. Иначе по веротно е нещо да се омазва по време на комутация в захранването или някви смущения.
Аз бих пробвал с ресет чип който следи захранванетопо в по отдалечена точка и при отпадане задейства проца да направи бакъп за времето което му остава до изчерпване на захр. кондензатор. Не се сещам за номера на ИС то но има по-опитни колеги които може да знаят подобни.

Автор:  Dimitar [ Чет Юли 27, 2006 8:35 pm ]
Заглавие: 

Проблема е в нестабилното захранване - всеизвестен е. Или слагаш супервайзори или така правиш настройките, че да не се помнят в тая памет, а да са константи в програмата.

Автор:  Dimiter [ Чет Юли 27, 2006 9:03 pm ]
Заглавие: 

имал съм такъв проблем с 16ф84а заврян в смарт карта
проблема е наистина хардуерен

Автор:  Dimiter [ Чет Юли 27, 2006 9:04 pm ]
Заглавие: 

изразяваше се през около 70-100 бройки

Автор:  rumen [ Чет Юли 27, 2006 9:08 pm ]
Заглавие: 

Dimitar
Какво имаш впредвид под супер вайзори?

Току що ми хрумна да записвам една и съща информация на две или три различни места.
Записа ще приключи след като се убедя че числата са еднакви.
После при първоначалното включване ще си чета и трите клетки и ще гледам дали са еднакви.
Ако не са ще чакам малко и ще ги чета пак и пак докато получа еднакави данни.

Като варияция на горното може да се приема за вярно по вечето еднакви записа.
Място има.
Мога и на 10 места да ги съхранявам. Но това май си е уливане.
Моля коментирайте!


П.П.
Благодаря за всички мнения те ме провокираха за горната идея.

Автор:  rumen [ Чет Юли 27, 2006 9:17 pm ]
Заглавие: 

Dimiter написа:
имал съм такъв проблем с 16ф84а заврян в смарт карта
проблема е наистина хардуерен


Дори и това не знам дали непомнят само 84-кете. :roll:
Много ми допада тази възможност. :D
Как се справи с твойте?

Автор:  MGBY [ Чет Юли 27, 2006 9:18 pm ]
Заглавие: 

Ами за отговорни неща точно така се прави помниш на три места и след това което го има на двете места се предполага , че е вярното ....

Автор:  Nikola Kirov [ Чет Юли 27, 2006 9:30 pm ]
Заглавие: 

Проблема ти вероятно е пак в захранването. Евентулано опроводяването на платката може да ти е проблемно. Гледай най вече как си си филтрирал захранването и кварца също как си опроводил.
направи си брояч за за задествалите watchdog-ове. Помага при диагностиката понякога.

Иначе независимо от всичко ако е отговорна работата си пишеш на 3 места и най добре с контролна сума за проверка на верноста на записите. Иначе като се запише една и съща стоиност в цялата памет поради хардуерни или други проблеми няма по какво да разбереш че данните ти са невалидни.

забрави да похвалиш протона в тоя пост :)
не се излагай :)

Автор:  rumen [ Чет Юли 27, 2006 9:54 pm ]
Заглавие: 

Не посмях да кажа че програмата е писана на Протон.
Рискувах да получа отговори " еми затова ".
И да отклоним темата.
Ти пък пропусна да кажеш че на пиковете е така. :lol:

Автор:  sthx [ Чет Юли 27, 2006 10:09 pm ]
Заглавие: 

Проблемът най-вероятно е причинен от външни смущения - най-вероятно по захранване. Все пак трябва да се знае какво е устройството и в каква среда работи, за да се дадат препоръки.
При моите чудесии се срещаше този проблем в следната форма - периодично в паметта се самозаписваха едни и същи стойности без всякаква логика. Стигнах до извода, че по някое време, след смущение програмата влиза в подпрограмата за запис и записва стойности от RAM, които явно са се ошашкали.
Въпреки,че проблемът явно беше породен от смущения, прецених, че борбата с тях ще е скъпа и с негарантиран успех (доста съм се напатил).
Задачката я реших софтуерно.
В самата подпрограма за запис започнах да правя проверка за всяка записвана стойност, дали е в определените граници. Освен това закачих и няколко допълнителни байта с твърди стойности, които също проверявам. И при единично несъответствие отказвам записа. Проблемът се реши и резултата показа, че допускането е вярно - в RAM се трупаха буклуци. Оправянето на RAM може да се реши според спецификата на конкретното устройство. След тази операция пацентите ми млъкнаха - никакви проблеми.
Ако проблемът е породен от същата причина, многократният запис трудно ще реши проблема. Дерзайте!

Автор:  Balkana [ Чет Юли 27, 2006 11:34 pm ]
Заглавие: 

Просто решение което предлагам:
Данните се копират два пъти, като всяко от копията е защитено минимум с 16 битова инвертирана контролна сума (0xFFFF - сметната сума от данните които се защитават)
При промяна се обновяват и двете банки (след запис всеки байт се изчита и проверява за коректност) и се преизчислява контролната сума
При проблем поне едната банка ще оцелее (познава се по коректната контролна сума);
При откриване на дефект в някоя от банките информацията се възстановява от здравата в развалената банка и т.н. На темата може още доста вариации да се измислят за постигане на нужаната сигурност.

Автор:  plameniv [ Чет Юли 27, 2006 11:45 pm ]
Заглавие:  Mda

rumen написа:
Не посмях да кажа че програмата е писана на Протон.
Рискувах да получа отговори " еми затова ".
И да отклоним темата.
Ти пък пропусна да кажеш че на пиковете е така. :lol:

Защо не ползваш готов модул на асемблер за записа, най вероятно не ти е наред нещо в софта не изчакваш да ти приключи записа и това ти е проблема, никога не съм имал проблеми особенно пък на f84 даже и доста съм правил и с f676 и нещата пак са си били винаги ОК.
Ето ти един пример като имаш на предвид че clock-а ми e 4 MHz
-------------------------------------------------
ReadEEPROM
MOVF EEAddress
MOVWF EEADR
BSF STATUS, RP0
BSF EECON1, RD
BCF STATUS, RP0
MOVF EEDATA, W
RETURN
-------------------------------------
WriteEEPROM
MOVF EEAddress
MOVWF EEADR
MOVF EEprData, W
MOVWF EEDATA
BSF STATUS, RP0
BSF EECON1, WREN
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR
ChkWR BTFSC EECON1, WR
GOTO ChkWR
BCF STATUS, RP0
RETURN

Страница 1 от 5 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/