| Автор |
Съобщение |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
 Проблем с вградения еепром на пиковете?
Имал ли е някой проблем с епрома на пиковете?
Направих едни джаджи които си запонмят настройките в еепрома.
При мен работиха.
Сега получих отзив че някои от тях забравят.
Не са ми върнали нито един непомнещ за да видя каде е проблема.
Дори може и нищо да не ми върнат защото са им хванали цаката със постоянно захранване.
Искат още.
Искат да реша проблема с непомненето на някои екземпляри.
Процесорите са 16ф627а, 628А а някои са ф84(имах изостанали бройки)
От това което ми казват ПРЕДПОЛАГАМ че запомнят а после случайно при някое от включванията не си четат еепрома.
Възможно ли е ?
Каква е вашата практика?
|
| Чет Юли 27, 2006 8:19 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Re: Проблем с вградения еепром на пиковете?
Явно имаш бъг някъде в програмата, аз досега никога не ми се е случвало да имам проблеми.
Да не би просто да правиш твърде много записи и да си превишил циклите !
|
| Чет Юли 27, 2006 8:22 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Записването е напрактика еднократно.
В началото и край.
Максимум да променят 10 нита пъти настройката.
|
| Чет Юли 27, 2006 8:26 pm |
|
 |
|
asp
Ранг: Популярен
Регистриран на: Сря Фев 22, 2006 6:27 pm Мнения: 376 Местоположение: plovdiv
|
аз съм чувал за подобни проблеми които били решени с рам + батерийка. Май има стандартно такова устройство. Иначе по веротно е нещо да се омазва по време на комутация в захранването или някви смущения.
Аз бих пробвал с ресет чип който следи захранванетопо в по отдалечена точка и при отпадане задейства проца да направи бакъп за времето което му остава до изчерпване на захр. кондензатор. Не се сещам за номера на ИС то но има по-опитни колеги които може да знаят подобни.
|
| Чет Юли 27, 2006 8:26 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Проблема е в нестабилното захранване - всеизвестен е. Или слагаш супервайзори или така правиш настройките, че да не се помнят в тая памет, а да са константи в програмата.
|
| Чет Юли 27, 2006 8:35 pm |
|
 |
|
Dimiter
Ранг: Популярен
Регистриран на: Пет Фев 04, 2005 3:18 pm Мнения: 309 Местоположение: Sofia
|
имал съм такъв проблем с 16ф84а заврян в смарт карта
проблема е наистина хардуерен
|
| Чет Юли 27, 2006 9:03 pm |
|
 |
|
Dimiter
Ранг: Популярен
Регистриран на: Пет Фев 04, 2005 3:18 pm Мнения: 309 Местоположение: Sofia
|
изразяваше се през около 70-100 бройки
|
| Чет Юли 27, 2006 9:04 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Dimitar
Какво имаш впредвид под супер вайзори?
Току що ми хрумна да записвам една и съща информация на две или три различни места.
Записа ще приключи след като се убедя че числата са еднакви.
После при първоначалното включване ще си чета и трите клетки и ще гледам дали са еднакви.
Ако не са ще чакам малко и ще ги чета пак и пак докато получа еднакави данни.
Като варияция на горното може да се приема за вярно по вечето еднакви записа.
Място има.
Мога и на 10 места да ги съхранявам. Но това май си е уливане.
Моля коментирайте!
П.П.
Благодаря за всички мнения те ме провокираха за горната идея.
|
| Чет Юли 27, 2006 9:08 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Дори и това не знам дали непомнят само 84-кете.
Много ми допада тази възможност.
Как се справи с твойте?
|
| Чет Юли 27, 2006 9:17 pm |
|
 |
|
MGBY
Ранг: Популярен
Регистриран на: Сря Дек 22, 2004 2:56 pm Мнения: 347 Местоположение: Хасково
|
Ами за отговорни неща точно така се прави помниш на три места и след това което го има на двете места се предполага , че е вярното ....
|
| Чет Юли 27, 2006 9:18 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Проблема ти вероятно е пак в захранването. Евентулано опроводяването на платката може да ти е проблемно. Гледай най вече как си си филтрирал захранването и кварца също как си опроводил.
направи си брояч за за задествалите watchdog-ове. Помага при диагностиката понякога.
Иначе независимо от всичко ако е отговорна работата си пишеш на 3 места и най добре с контролна сума за проверка на верноста на записите. Иначе като се запише една и съща стоиност в цялата памет поради хардуерни или други проблеми няма по какво да разбереш че данните ти са невалидни.
забрави да похвалиш протона в тоя пост
не се излагай 
|
| Чет Юли 27, 2006 9:30 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Не посмях да кажа че програмата е писана на Протон.
Рискувах да получа отговори " еми затова ".
И да отклоним темата.
Ти пък пропусна да кажеш че на пиковете е така. 
|
| Чет Юли 27, 2006 9:54 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
Проблемът най-вероятно е причинен от външни смущения - най-вероятно по захранване. Все пак трябва да се знае какво е устройството и в каква среда работи, за да се дадат препоръки.
При моите чудесии се срещаше този проблем в следната форма - периодично в паметта се самозаписваха едни и същи стойности без всякаква логика. Стигнах до извода, че по някое време, след смущение програмата влиза в подпрограмата за запис и записва стойности от RAM, които явно са се ошашкали.
Въпреки,че проблемът явно беше породен от смущения, прецених, че борбата с тях ще е скъпа и с негарантиран успех (доста съм се напатил).
Задачката я реших софтуерно.
В самата подпрограма за запис започнах да правя проверка за всяка записвана стойност, дали е в определените граници. Освен това закачих и няколко допълнителни байта с твърди стойности, които също проверявам. И при единично несъответствие отказвам записа. Проблемът се реши и резултата показа, че допускането е вярно - в RAM се трупаха буклуци. Оправянето на RAM може да се реши според спецификата на конкретното устройство. След тази операция пацентите ми млъкнаха - никакви проблеми.
Ако проблемът е породен от същата причина, многократният запис трудно ще реши проблема. Дерзайте!
|
| Чет Юли 27, 2006 10:09 pm |
|
 |
|
Balkana
Ранг: Популярен
Регистриран на: Чет Дек 01, 2005 10:42 pm Мнения: 301
|
Просто решение което предлагам:
Данните се копират два пъти, като всяко от копията е защитено минимум с 16 битова инвертирана контролна сума (0xFFFF - сметната сума от данните които се защитават)
При промяна се обновяват и двете банки (след запис всеки байт се изчита и проверява за коректност) и се преизчислява контролната сума
При проблем поне едната банка ще оцелее (познава се по коректната контролна сума);
При откриване на дефект в някоя от банките информацията се възстановява от здравата в развалената банка и т.н. На темата може още доста вариации да се измислят за постигане на нужаната сигурност.
|
| Чет Юли 27, 2006 11:34 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Mda
Защо не ползваш готов модул на асемблер за записа, най вероятно не ти е наред нещо в софта не изчакваш да ти приключи записа и това ти е проблема, никога не съм имал проблеми особенно пък на 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
|
| Чет Юли 27, 2006 11:45 pm |
|
|