реклама на сайте
подробности

 
 
> Сохранение важных переменных в EEPROM при потере питяния
ATMExpert
сообщение Feb 8 2012, 13:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 20-11-09
Из: Ставрополь
Пользователь №: 53 756



Бодрого дня всем форумчанам. В моем проекте (на Mega640) требуется в момент пропадания общего питания сохранять 5-6 байт оперативной информации в еепром, дабы иметь возможность при подаче питания благополучно их считывать. Аппаратно для этих целей использую встроенный компаратор с внешней опорой (REF192) и делитель по питанию. В программе ставлю прерывание на компаратор, ну и пишу в еепром. Схема питания такая: +24-->+12-->diode-->condencator 2200 uF-->+5. При пропадании +24 схема детектирует просадку, вызывается прирывание. Конденсатор 2200 мкФ думаю достаточен, чтобы успеть записать в память до снижения питания ниже критического уровня. В железе показывает достаточно устойчивую работу (в лаб. условиях). Хочется услышать мнения по такой реализации, а также может нужно еще что-то в код добавлять если после успешной записи остается время (может нужно ожидать с ноги выхода компаратора смену уровня, если это была кратковременная просадка питания).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ATMExpert
сообщение Feb 8 2012, 17:48
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 20-11-09
Из: Ставрополь
Пользователь №: 53 756



Цитата
1. Что мешает сразу сохранять данные в EEPROM?
2. Будут ли актуальны эти данные после , например , часа простоя системы?
3. После диода стоит стабилизатор на 5 В?


1. Данные - это по сути текущие координаты привода (вертикаль и горизонт). Их имеет смысл сохранять только когда привод стоит на месте, иначе если во время движения привода пропадет питание, актуальность их в еепроме никакая, т.к. любой привод имеет некую инертность и не сразу остановится. Мы используем шаговые движки без обратной связи (без энкодеров).
2. Само собой данные будут актуальны через любое кол-во времени.
3. Да, после диода стоит стаб. 5 вольтоф

Цитата
Т.е. при повышении питания происходит ложная сработка?

Нет, сработка происходит при понижении питания, и как уже отмечалось, в п/п прерывания от компаратора сидим и ждем пока либо питание не восстановится, либо ждем конца света)))

aaarrr, твои подсказки по ожиданию выхода(невыхода) из обработки прерывания применю обязательно, спасибо!


А никто и не сказал кстати, применяли ли в проектах ферроэлектрик энергонезвисимую мемори от Рамтрона?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 8 2012, 18:04
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(ATMExpert @ Feb 8 2012, 21:44) *
1. Их имеет смысл сохранять только когда привод стоит на месте, иначе если во время движения привода пропадет питание, актуальность их в еепроме никакая, т.к. любой привод имеет некую инертность и не сразу остановится. Мы используем шаговые движки без обратной связи (без энкодеров).
2. Само собой данные будут актуальны через любое кол-во времени.

Вы не находите в своих словах не стыковку. Вы не знаете точно , что произошло после последних сохранённых данных.Т.е. после вкл. питания и до его внезапного отключения произошли события изменившие настройку приводов или они находились в движении в этот момент. Но у Вас в EEPROM остались старые данные. По существу Вы не знаете в каком положении находится привод. Не проще сделать -запись EEPROM затем делать шаг двигателя , запись - шаг. Так у Вас всегда есть координаты привода +/- шаг
3.
Цитата
Да, после диода стоит стаб. 5 вольтоф

Лучше до диода


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
ATMExpert
сообщение Feb 8 2012, 19:10
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 20-11-09
Из: Ставрополь
Пользователь №: 53 756



Цитата(ILYAUL @ Feb 8 2012, 22:04) *
Вы не находите в своих словах не стыковку. Вы не знаете точно , что произошло после последних сохранённых данных.Т.е. после вкл. питания и до его внезапного отключения произошли события изменившие настройку приводов или они находились в движении в этот момент. Но у Вас в EEPROM остались старые данные. По существу Вы не знаете в каком положении находится привод. Не проще сделать -запись EEPROM затем делать шаг двигателя , запись - шаг. Так у Вас всегда есть координаты привода +/- шаг

Представляете на сколько хватит еепром если в нее писать после каждого шага? До внезапного отключения питания может происходить что угодно. При норм. питании текущие координаты лежат в ОЗУ, верно? Верно. Факт пропадания питания фиксируется? Еще как! Так вот если привод в этот момент вращался, то нет нужды сохранять эти координаты. После такого режима проводится рекалибровка привода по крайним положениям однозначно. А вот если привод стоял в это время, мы и запишем то, где он остался стоять. Ну а после подачи питания нагло прочтем сохраненное, и мы в корректных координатах. В след. версии поставлю FM25xx или FM24xx. В нее хоть можно смело писать каждый раз после команды стоп.
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 8 2012, 19:22
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ATMExpert @ Feb 8 2012, 22:10) *
В след. версии поставлю FM25xx или FM24xx. В нее хоть можно смело писать каждый раз после команды стоп.

Как часто поступает команда стоп?

Цитата(ATMExpert @ Feb 8 2012, 20:48) *
Мы используем шаговые движки без обратной связи (без энкодеров).

Как Вы определяете что движение закончено?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ATMExpert   Сохранение важных переменных в EEPROM при потере питяния   Feb 8 2012, 13:05
- - aaarrr   Цитата(ATMExpert @ Feb 8 2012, 17:05) Кон...   Feb 8 2012, 13:13
- - V_G   Я в xmegy успеваю сохранить страницу (32 байта) пр...   Feb 8 2012, 13:15
- - zombi   Цитата(ATMExpert @ Feb 8 2012, 16:05) ......   Feb 8 2012, 13:36
- - ATMExpert   Кондер стоит по 12 вольтам. от этой же напруги пит...   Feb 8 2012, 16:06
|- - aaarrr   Цитата(ATMExpert @ Feb 8 2012, 20:06) Так...   Feb 8 2012, 16:12
|- - zombi   Цитата(ATMExpert @ Feb 8 2012, 19:06) При...   Feb 8 2012, 17:29
- - ATMExpert   Дык вот этой строчкой и жду вроде как: while (bit...   Feb 8 2012, 16:25
|- - aaarrr   Цитата(ATMExpert @ Feb 8 2012, 20:21) Дык...   Feb 8 2012, 16:27
|- - ATMExpert   Цитата(aaarrr @ Feb 8 2012, 20:27) В том-...   Feb 8 2012, 16:31
|- - aaarrr   Цитата(ATMExpert @ Feb 8 2012, 20:31) Т.е...   Feb 8 2012, 16:44
- - ILYAUL   1. Что мешает сразу сохранять данные в EEPROM? 2. ...   Feb 8 2012, 17:04
|- - ATMExpert   Цитата(zombi @ Feb 8 2012, 23:22) Как час...   Feb 9 2012, 04:50
|- - zombi   Цитата(ATMExpert @ Feb 9 2012, 07:50) А е...   Feb 9 2012, 08:40
- - demaven   в одной из работ потребовалось сохранять небыстро ...   Feb 9 2012, 09:04
|- - ATMExpert   Цитата(demaven @ Feb 9 2012, 13:04) в одн...   Feb 9 2012, 11:56
|- - defunct   Цитата(demaven @ Feb 9 2012, 11:04) видно...   Feb 19 2012, 04:27
- - smk   Ионистор ставить не желаете? А вообще для таких ус...   Feb 19 2012, 05:27
- - demaven   с двумя местами сохранения никак не получается. яч...   Feb 27 2012, 12:49
|- - zombi   Цитата(demaven @ Feb 27 2012, 16:49) с дв...   Feb 27 2012, 14:39
- - desh   А что вам мешает защищать ваши ячейки контрольной ...   Feb 27 2012, 14:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01418 секунд с 7
ELECTRONIX ©2004-2016