Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: отключение прибора или помеха в электро сети?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
sky_
отключение прибора или сетевая помеха??
необходимо различить обе ситуации:
1 - выключение прибора
2 - помеха в электросети

В обоих случаях возникает сброс кристала
Как отследить такие ситуации?
rezident
А что происходит с питанием во втором случае? Если немалая по длительности просечка в питании, то по-моему это то же самое что и 1 случай. Если зависание, то видимо неправильно спроектирована печатная плата, т.к. "подвесить" MSP430 довольно сложно (но можно smile.gif). В любом случае лучше использовать тот кристал в котором имеется BOR.
Alex11
Поскольку ситуация отличается только временем, на которое пропало питание, то надо сделать таймер, который отследит это время. Варианты - real time clock с батарейкой, в память которого каждую секунду пишется время, когда прибор еще работал. После включения читаешь и смотришь разницу текущего и запомненного. Другой (радиолюбительский) вариант - пристраиваешь конденсатор, который достаточно медленно заряжается и разряжается от питания. Если была короткая проскчка, то читаешь с него единицу, если питания не было долго - получаешь 0.
Владимир
Помехи всети Гостированное понятие, там все прописано ина сколько % проваливается и сколько периодув отсутствует, и какие частоты присутствуют.
Так что встанет вопрос, а какая помеха сбрасывает?. Поэтому лечить надо
avesat
Цитата(sky_ @ Sep 16 2005, 17:11)
отключение прибора или сетевая помеха??
необходимо различит обе ситуации:
1 - выключение прибора
2 - помеха в электросети

В обоих случаях возникает сброс кристала
Как отследить такие ситуации?
*


Действительно больная тема! Скажем на конкретном шаге управления процессом, в результате сбоя произошел сброс контроллера, после того как девайс поднимется, он начнет работу заново, а нужно продолжить с определенного шага.
Можно попробовать подать питание Vcc на АЦП и при выходе за определенные границы, сохранять параметры во флеш, и после вкл. продолжать работу с текущего шага, при этом нужно чтобы было резервное питание, а что делать если его нет?

Цитата(rezident @ Sep 16 2005, 17:38)
А что происходит с питанием во втором случае? Если немалая по длительности просечка в питании, то по-моему это то же самое что и 1 случай. Если зависание, то видимо неправильно спроектирована печатная плата, т.к. "подвесить" MSP430 довольно сложно (но можно smile.gif). В любом случае лучше использовать тот кристал в котором имеется BOR.
*


А чем вам поможет BOR собственно, ну сбросится проц, все параметры из RAM улетят, а что дальше?

Цитата(Alex11 @ Sep 17 2005, 07:36)
Поскольку ситуация отличается только временем, на которое пропало питание, то надо сделать таймер, который отследит это время. Варианты - real time clock с батарейкой, в память которого каждую секунду пишется время, когда прибор еще работал. После включения читаешь и смотришь разницу текущего и запомненного. Другой (радиолюбительский) вариант - пристраиваешь конденсатор, который достаточно медленно заряжается и разряжается от питания. Если была короткая проскчка, то читаешь с него единицу, если питания не было долго - получаешь 0.
*


Во первых, писать каждую секунду во флеш (если я правильно понял), довольно таки накладно, т.е каждую секунду нужно будет делать ERASE и WRITE, и на сколько хватит ресурса флеши? Во вторых, чем может помочь разница во времени, ну буду я знать, что прибор простоял 1 мин, ведь есть процессы не лимитированные по времени.

Цитата(Владимир @ Sep 17 2005, 07:40)
Помехи всети Гостированное понятие, там все прописано ина сколько % проваливается и сколько периодув отсутствует, и какие частоты присутствуют.
Так что встанет вопрос, а какая помеха сбрасывает?. Поэтому лечить надо
*


Хорошо если бы это было действительно так. Такой случай, звонит нам заказчик и говорит, ваше 1-но фазное устройство зашиты не правильно работает, должно откл. При повышении напряжения до 240V, а оно срабатывает при 260V. Присылает нам прибор, мы проверяем 240V (плюс минус пару вольт)??!!

2 sky. Если придумаешь что-то интересное, пиши.
rezident
Цитата
А чем вам поможет BOR собственно, ну сбросится проц, все параметры из RAM улетят, а что дальше?

BOR может "сказать" было ли понижение питания ниже определенного уровня? А дальше уже сами в программе решайте, стоит ли инициализировать переменные снова или продолжать работу, используя имеющиеся в ОЗУ данные.
P.S. сброс (POR или PUC) сам по себе не обнуляет (при условии что величина питания была в рабочем диапазоне напряжений) содержимого ОЗУ. Начальное обнуление переменных это программная функция.
avesat
Такая ситуация, прибор управляет технологическим процессом, с n-м кол-вом параметров. Параметры периодически изменяются, т.е писать их все время во флеш как я уже говорил, будет накладно. К инженеру, который собственно и следит за электроникой, пришел знакомый, и они за рюмкой чаю сидят и разговаривают о бытие. В это время уборщице помешал сетевой провод (питание прибора), она не долго думая выдернула его, убрала, и вкл. его снова.
Так вот, параметры которые находились в то время в ОЗУ, находятся теперь в другом месте, не буду говорить каком, но достать их оттуда будет довольно таки проблематично… Тогда вопрос, как успеть сохранить байты используя BOR?!
=AK=
Цитата(avesat @ Sep 18 2005, 02:40)
Такая ситуация, прибор управляет технологическим процессом, с n-м кол-вом параметров.

Тогда вопрос, как успеть сохранить байты используя BOR?!

Ну почему обязательно BOR? Он для такой задачи непригоден.

Спокон веков эта простенькая задача решалась при помощи монитора входного питания. Пропадает вх. питание - монитор тут же выдает прерывание процу, тот сохраняет данные в энергонезависимую память. Все это время (сколько-надо-миллисекунд) проц "живет" за счет энергии, запасенной в кондерах источника питания. Емкость кондеров считается элементарно, схемотехника монитора и вх. узлов источника питания тривиальна.
avesat
Ну и я о том же!!!!! СЫР-BOR тут не причем. Мы делаем так. Есть два питания 5V и 3.3V на 5V вешаем танталы 16-ти вольтовые, на 3.3V побольше, питание для анализа подаем на АЦП. Пока конденсаторы разряжаются можно писать во флеш. Мониторы не для нас, платы в серии и переразводить лень… Если бы прикрутить батарейку, был бы полный шоколад.
Shread
Сначала насчет уборщиц, которые выдергивают провода на производства smile.gif
Имхо таких нада убивать, сразу или просто выгонять. У нас была одна, которая умудрилась уронить со стола, к которому ей подходить было не нужно, целую кучу подложек, в результате, человек, который занимася ими, вынужден был три дня приводить все в порядок. Мы отказались от ее "услуг".
А теперь по теме. в приборах где важны настройки, и их сохранность, после выключения питания нужна схема контроля питания. Для этого можно использовать ацп процессора(у нас в 147м не ацп не нужен был, его использоли в схеме контроля питания), встроенный или внешний компаратор. кроме того ставится внешняя батарейка(литиевая). Т.е получается две схемы питания одна от сетевого источника, одна от батарейки, развязанные через диоды шоттки, и далее конденсаторы по питанию процессора. При отлючении питания, процессор быстро понимает что оно отключилось, и переходит в режим пониженного потребения, работая от часового кварца. Супервизор питания в данном случае не нужен.
Есть другой вариант, напряжение со стабилизатора подавать на ноги питания процессора через диоик опять же, процессор дожен следить за напряжением непосредственно на выходе стабилизатора, а посе диода, т.е параллеьно ногам питания процессора поставить ионистор или тантал большой емкости. Как только пропадает питания от стабилизатора, процессор это понимает, далее пишет во флеш дамп RAM, и как только разрядится ионистор/тантал, отрубается супервизором. Тут глвное чтобы время разряда ионистора/тантала ниже минимального напряжения программирования флеши, было больше чем время, которое потребуется процессору для сохранения параметров.
Хотя тут уже писалось что использовать флеш для хранения часто изменяемых параметров неудобно, т.к кол-во циклов записи/перезаписи ограниченно, можно и на это пойти, если флешки много пустой. Естественно, писать нужно не в одну ячейу а в разные, выбираемые определеннм образом, так чтоб не затирать постянно одну и ту же ячейу.
rezident
Цитата
Ну почему обязательно BOR? Он для такой задачи непригоден.

Вообще-то в исходном сообщении был вопрос
Цитата
В обоих случаях возникает сброс кристала
Как отследить такие ситуации?
и о сохранении данных речи не шло.
Если нужно сохранять данные при выключении, то должны выполняться два условия:
1. супервизор, который отслеживает снижения питания и генерирует сигнал прерывания по которому данные сохраняются
2. питание должно снижаться достаточно медленно, чтобы у контроллера было время сохранить данные, либо было резервное питания для этого
sky_
Вроде бы нашел выход из такой вот ситуации.
Не совсем правильное решение, но оно работает - создание глобальных переменных без их явной инициализации.
К примеру

__no_init long lGlobal;

void main( void )
{
while(1)
if (lGlob != <некое число Х>)
{
// было выключение итания
lGlob = <некое число Х>
}
else
// сетевая помеха, выключения питания не было
}

Как видно вся заковыринка в ОЗУ проца. При таком раскладе при возникновении кратковременного сигнала сброса проц отрабатывает ситуацию "сетевая помеха".
Может кто знает другое решение пишите. Заранее спасибо
rezident
Нда. И к этому решению вы шли полтора месяца?! Решение совсем недачное. По значению всего лишь одной переменной нельзя судить о целостности остальных данных в ОЗУ.
mse
Цитата
При повышении напряжения до 240V, а оно срабатывает при 260V. Присылает нам прибор, мы проверяем 240V (плюс минус пару вольт)??!!


Дык, таво... А как вы/они меряют напругу? Это СКЗ? Пиковое? Как меряется СКЗ? Uампл/1,41? Вам бы с заказчиком побеседовать имана на эту тему. Бо от разных способов разница может быть офигомрачительная. Кг сетевого напряжения/тока тоже даст своё(в ряде случаев). Так что измерение и сброс, это разные вещи. Что касаемо собственно ситатуццыи. Есть RTC с нутряной ОЗУ - типа DS1307. Вот в него и надо писать текущее состояние там, если повар не брешет - около 60 байтиков (типа, сменилось, мы его пишем, но пишем в две структуры, засчичёные ЦРЦ, если ударит в момент записи, хотя бы одна будет живая: либо текущая, либо предыдусчая).
=AK=
Цитата(rezident @ Sep 19 2005, 17:59) *
Цитата
Ну почему обязательно BOR? Он для такой задачи непригоден.

Если нужно сохранять данные при выключении, то должны выполняться два условия:
1. супервизор, который отслеживает снижения питания и генерирует сигнал прерывания по которому данные сохраняются
2. питание должно снижаться достаточно медленно, чтобы у контроллера было время сохранить данные, либо было резервное питания для этого

Неверно. Супервизор (или BOR) на шине питания (+3.3В) проца не является адекватной заменой монитору входного питания прибора. Супервизор дает сброс процу, и ничего другого от него требовать нельзя, т.к. будет политически неграмотно. Монитор входного питания дает "раннее предупреждение" в виде прерывания, которое возникает гораздо ранее, чем сброс от супервизора. Супервизор же должен давать не прерывание, а железный сброс. <_<
diper
Цитата(sky_ @ Sep 16 2005, 18:11) *
отключение прибора или сетевая помеха??
необходимо различить обе ситуации:
1 - выключение прибора
2 - помеха в электросети

В обоих случаях возникает сброс кристала
Как отследить такие ситуации?


Такой вариантс питания RC цепочка и на ногу. После сброса анализируется уровень
на ноге если высокий значит был сброс по помехе. Если ноль значит была просадка питания.
Номиналами выбирается время.
rezident
Цитата(=AK= @ Nov 12 2005, 13:31) *
Цитата(rezident @ Sep 19 2005, 17:59) *

Цитата
Ну почему обязательно BOR? Он для такой задачи непригоден.

Если нужно сохранять данные при выключении, то должны выполняться два условия:
1. супервизор, который отслеживает снижения питания и генерирует сигнал прерывания по которому данные сохраняются
2. питание должно снижаться достаточно медленно, чтобы у контроллера было время сохранить данные, либо было резервное питания для этого

Неверно. Супервизор (или BOR) на шине питания (+3.3В) проца не является адекватной заменой монитору входного питания прибора. Супервизор дает сброс процу, и ничего другого от него требовать нельзя, т.к. будет политически неграмотно. Монитор входного питания дает "раннее предупреждение" в виде прерывания, которое возникает гораздо ранее, чем сброс от супервизора. Супервизор же должен давать не прерывание, а железный сброс. <_<

=AK=, а с чего вы решили, что я про супервизор питания МК говорил? Вообще-то я имел в виду устройство (схему, часть схемы), которое следит за входным (сетевым) напряжением. У нас обычно TL431+оптрон для этой цели применяется. Вот вы назвали его "монитор входного питания", а я ведь тоже могу привязаться к тому, что слова "входное питание" можно трактовать и как промежуточное (или основное) питание самого МК smile.gif А вообще для контролирования аварийных ситуации может быть несколько уровней защиты, которые могут сформировать общий сигнал "авария".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.