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

 
 
> Сохранение важных переменных в 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
сообщение Feb 9 2012, 04:50
Сообщение #6


Участник
*

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



Цитата(zombi @ Feb 8 2012, 23:22) *
Как часто поступает команда стоп?

Как Вы определяете что движение закончено?


Это протокол обмена Pelco-D. Команда стоп подается от хоста. Не чаще думаю, чем 1 раз в сек. Это если ручное управление (или джойстик). А если подаются команды типа переместиться на столько-то шагов в таком-то направлении, то девайс есесно сам останавливает себя. А определять, когда движение закончено помогают концевые оптодатчики. При начальной инициализации привод перемещается от крайней до крайней позиции, передает максимальные координаты хосту (по запросу). Если движение происходит без пропуска шагов, то энкодеры можно и не ставить. А если уж пропуск случится, то повторная калибровка в помощь.
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 9 2012, 08:40
Сообщение #7


Гуру
******

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



Цитата(ATMExpert @ Feb 9 2012, 07:50) *
А если подаются команды типа переместиться на столько-то шагов в таком-то направлении, то девайс есесно сам останавливает себя.

Вот я и спрашиваю : как Вы определяете что девайс закончил выполнение последней команды и можно посылать новую?
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
- - 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:59
Рейтинг@Mail.ru


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