Отговори на тема  [ 12 мнения ] 
Записване в EEPROM по време на спиране на захранването 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение Записване в EEPROM по време на спиране на захранването
Здравейте,

Проблема е следния как да направя при спиране на захранването
да се запише част от RAM паметта на PIC16F877 в EEPROM-a.

Моето решение е при спиране на захранването да подам логическа единица
на едно краче, с което да започна да записвам в EEPROM-a.
Като през това време държа захранването с един по-голям
кондензатор за да му стигне за записа.

Това решение изисква доста разправии с захранването около PIC-a.
Както и отделянето му от цялата друга периферия.
Също едно реле в обратен режим, че да се държи включено докато
кондензатора не се разреди.

Идеята ми е ако има начин да спестя тези неща.


Сря Юни 13, 2007 9:15 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Правил съм подобно нещо, с 877A, нямам спомен как точно реших проблема там, беше софтуерно, но в следващата ревизия на устройството сложих 18F452 (има същия корпус), в него има Low Voltage Detect схема с регулируем threshold, давам ти го само като идея


Сря Юни 13, 2007 9:22 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
А дали ще ми стигне времето да запиша 16 байта в EEPROM-a преди BrownOutReset?
Или ако си го правя специално за PIC16F877 аз ще си регулирам времето.


Сря Юни 13, 2007 9:58 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Ами относно дали ще ти стигне времето - въпрос на сметки и подбор на компоненти....

1. Времето за запис е дадено в дейта шита.
2. Консумцията на помпата по време на запис също е дадена там. Не забравяй да прибавиш и собствената консумация на чипа, както и всичко де що консумира около него.
3. Така можеш да си сметнеш горе долу колко енергия ти трябва за да изършиш записа.
4. Като си знаеш кондензатора(капацитета му), до колко волта е зареден и до колко може да падне за да е работоспособен все още пика (това също го има в спецификацията), можеш да си сметнеш дали ще "удържи" и ако не с колко трябва да го вдигнеш.

Не се доверявай на принципа на проба и грешка. Сметни най-тежките условия и го разчети по тях. Повечето пикове работят и на 2В, обаче в спецификацията пише друго(а там е истината). Тъй че сметка му е майката.

Като цяло, 16 байта са си доста нещо, тъй че може би ще да е голям кондензатора дето ще храни всичко туй.

Много си зависи и как отпада захранването - с скок или плавно (ако там също има голям капацитет).

Вариант е supercap, в комет ги има и не са кой знае колко скъпи.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Юни 13, 2007 10:59 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Принципно, ако имаш свободни ресурси, може да запуснеш таймер и да го ресетираш
от входа на захранването на 20 милисекунди. Така, още при първата липсваща синусоида
ще знаеш, че трябва да спасяваш.


Сря Юни 13, 2007 11:31 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
Благодаря за идеите за сега май ще си остане с кондензатор и флагче.
За това със supercab не се бях сетил аз ползвам обикновени и не съм имал
проблеми, но цялата реализация не ми харесва, но май няма и друг начин.

Wise написа:
Принципно, ако имаш свободни ресурси, може да запуснеш таймер и да го ресетираш
от входа на захранването на 20 милисекунди. Така, още при първата липсваща синусоида
ще знаеш, че трябва да спасяваш.


Можели да обясниш малко повече това с таймера?


Сря Юни 13, 2007 11:41 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Ако нямаш навързани големи консуматори към портовете на ПИК-а, можеш само него да го захраниш през резистор, и кондензатора да го сложиш след резитора. Така като спре захранването, кондензатора по-дълго ще ти захранва чипа. Трябва да вземеш предвид обаче закъснението за пускане на ПИК-а след включване на захранването (Пак въпрос на сметки)


Сря Юни 13, 2007 12:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Има друга тема в форума в която има повече информация по въпроса. Реконструктора беше задал подобен въпрос в академия. Виж там.


Сря Юни 13, 2007 1:19 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Ами то няма много за обяснение - таймерът ти генерира прекъсване на примерно 30 или 50 милисекунди.
От захранването преди греца вземаш сигнал - (примерно през диод и транзистор) и го вкарваш на външно
прекъсване. Когато настъпи - презареждаш таймера. Когато таймерът прекъсне - значи липсва
захранване. Но все още се предполага, че напрежението на кондензатора не се е променило.
Т.е. знаем веднага, че предстои отпадане на напрежението и имаме повече време за запис.


Сря Юни 13, 2007 1:29 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
Nikola Kirov написа:
Има друга тема в форума в която има повече информация по въпроса. Реконструктора беше задал подобен въпрос в академия. Виж там.


Да намерих я темата и доста са разнищили точно по същия проблем.
При мен ще е по лесно защото записвам много малко 16 байта и в EEPROM-a
на процесора, но явно друго решение няма.

http://mcu-bg.com/mcu_site/viewtopic.php?t=3272


Сря Юни 13, 2007 1:55 pm
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
Wise написа:
Ами то няма много за обяснение - таймерът ти генерира прекъсване на примерно 30 или 50 милисекунди.
От захранването преди греца вземаш сигнал - (примерно през диод и транзистор) и го вкарваш на външно
прекъсване. Когато настъпи - презареждаш таймера. Когато таймерът прекъсне - значи липсва
захранване. Но все още се предполага, че напрежението на кондензатора не се е променило.
Т.е. знаем веднага, че предстои отпадане на напрежението и имаме повече време за запис.


Сега разбрах мерси. Наистина решението за моя проблем е едно просто въпроса е
как най-добре да се реализира. Явно се свежда до следните проблеми:

1. Как да детектна реално отпадане на захранването възможно най-рано.
2. Как най-добре да си отделя консумацията, че да имам достатъчен запас за запис.
3. Какъв източник на енергия да ползвам по време на запис кондензатор, супер кондензатор, батерия

...

Ползване на друго решение с FRAM, MRAM и други нови технологии...


Сря Юни 13, 2007 2:00 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
При регистриране на отпадане на напрежението можеш да изключиш всички консуматори на ток - светодиоди, релета и други.

_________________
Две плюс две е приблизително равно на четири. Факт!


Сря Юни 13, 2007 10:10 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни