| Автор |
Съобщение |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
 Записване в EEPROM по време на спиране на захранването
Здравейте,
Проблема е следния как да направя при спиране на захранването
да се запише част от RAM паметта на PIC16F877 в EEPROM-a.
Моето решение е при спиране на захранването да подам логическа единица
на едно краче, с което да започна да записвам в EEPROM-a.
Като през това време държа захранването с един по-голям
кондензатор за да му стигне за записа.
Това решение изисква доста разправии с захранването около PIC-a.
Както и отделянето му от цялата друга периферия.
Също едно реле в обратен режим, че да се държи включено докато
кондензатора не се разреди.
Идеята ми е ако има начин да спестя тези неща.
|
| Сря Юни 13, 2007 9:15 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Правил съм подобно нещо, с 877A, нямам спомен как точно реших проблема там, беше софтуерно, но в следващата ревизия на устройството сложих 18F452 (има същия корпус), в него има Low Voltage Detect схема с регулируем threshold, давам ти го само като идея
|
| Сря Юни 13, 2007 9:22 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
А дали ще ми стигне времето да запиша 16 байта в EEPROM-a преди BrownOutReset?
Или ако си го правя специално за PIC16F877 аз ще си регулирам времето.
|
| Сря Юни 13, 2007 9:58 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами относно дали ще ти стигне времето - въпрос на сметки и подбор на компоненти....
1. Времето за запис е дадено в дейта шита.
2. Консумцията на помпата по време на запис също е дадена там. Не забравяй да прибавиш и собствената консумация на чипа, както и всичко де що консумира около него.
3. Така можеш да си сметнеш горе долу колко енергия ти трябва за да изършиш записа.
4. Като си знаеш кондензатора(капацитета му), до колко волта е зареден и до колко може да падне за да е работоспособен все още пика (това също го има в спецификацията), можеш да си сметнеш дали ще "удържи" и ако не с колко трябва да го вдигнеш.
Не се доверявай на принципа на проба и грешка. Сметни най-тежките условия и го разчети по тях. Повечето пикове работят и на 2В, обаче в спецификацията пише друго(а там е истината). Тъй че сметка му е майката.
Като цяло, 16 байта са си доста нещо, тъй че може би ще да е голям кондензатора дето ще храни всичко туй.
Много си зависи и как отпада захранването - с скок или плавно (ако там също има голям капацитет).
Вариант е supercap, в комет ги има и не са кой знае колко скъпи.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Юни 13, 2007 10:59 am |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Принципно, ако имаш свободни ресурси, може да запуснеш таймер и да го ресетираш
от входа на захранването на 20 милисекунди. Така, още при първата липсваща синусоида
ще знаеш, че трябва да спасяваш.
|
| Сря Юни 13, 2007 11:31 am |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Благодаря за идеите за сега май ще си остане с кондензатор и флагче.
За това със supercab не се бях сетил аз ползвам обикновени и не съм имал
проблеми, но цялата реализация не ми харесва, но май няма и друг начин.
Можели да обясниш малко повече това с таймера?
|
| Сря Юни 13, 2007 11:41 am |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Ако нямаш навързани големи консуматори към портовете на ПИК-а, можеш само него да го захраниш през резистор, и кондензатора да го сложиш след резитора. Така като спре захранването, кондензатора по-дълго ще ти захранва чипа. Трябва да вземеш предвид обаче закъснението за пускане на ПИК-а след включване на захранването (Пак въпрос на сметки)
|
| Сря Юни 13, 2007 12:24 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Има друга тема в форума в която има повече информация по въпроса. Реконструктора беше задал подобен въпрос в академия. Виж там.
|
| Сря Юни 13, 2007 1:19 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Ами то няма много за обяснение - таймерът ти генерира прекъсване на примерно 30 или 50 милисекунди.
От захранването преди греца вземаш сигнал - (примерно през диод и транзистор) и го вкарваш на външно
прекъсване. Когато настъпи - презареждаш таймера. Когато таймерът прекъсне - значи липсва
захранване. Но все още се предполага, че напрежението на кондензатора не се е променило.
Т.е. знаем веднага, че предстои отпадане на напрежението и имаме повече време за запис.
|
| Сря Юни 13, 2007 1:29 pm |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Да намерих я темата и доста са разнищили точно по същия проблем.
При мен ще е по лесно защото записвам много малко 16 байта и в EEPROM-a
на процесора, но явно друго решение няма.
http://mcu-bg.com/mcu_site/viewtopic.php?t=3272
|
| Сря Юни 13, 2007 1:55 pm |
|
 |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Сега разбрах мерси. Наистина решението за моя проблем е едно просто въпроса е
как най-добре да се реализира. Явно се свежда до следните проблеми:
1. Как да детектна реално отпадане на захранването възможно най-рано.
2. Как най-добре да си отделя консумацията, че да имам достатъчен запас за запис.
3. Какъв източник на енергия да ползвам по време на запис кондензатор, супер кондензатор, батерия
...
Ползване на друго решение с FRAM, MRAM и други нови технологии...
|
| Сря Юни 13, 2007 2:00 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
При регистриране на отпадане на напрежението можеш да изключиш всички консуматори на ток - светодиоди, релета и други.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Сря Юни 13, 2007 10:10 pm |
|
|