Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Hi, помогите новичку советом
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
xkraft
Есть атмега8 и кварец на 12, нужно сделать устройство которое включит реле через, скажем, 1000 часов после первоначального запуска. Причем питание может периодически сниматься с устройства. Правильно ли я мыслю?

1. Нужно использовать еепром
2. Нужно организовать счетчик часов или минут
3. По прошествии 1000 часов подать на порт А (B,C) логическую 1
4. Скорее всего нужно еще прицепить ОЗУ
alexeyv
1. Правильно думаете
2. И это тоже правильно
Но:
Количество циклов записи в ЕЕПРОМ ограничено, поэтому необходимо продумать алгоритм сохранения данных в ЕЕПРОМ, что бы (желательно) при записи информации каждый раз использовались новые ячейки

3. Это смотря каким потенциалом управляется реле. Между реле и МК можно поставить защиту/усилитель, который может являтся инвертором

4. Внешнее ОЗУ прицеплять не обязательно

Несколько предложений:
1. Поставить ионистор/батарейку/аккумулятор для питания устройства при выключенном основном питании
2. Поставить какую-либо внешнюю схему компаратора или микросхему супервизора питания , которая бы предупреждала о снижении питания
3. Для точного отсчета времени необходим или часовой кварц на таймер или микросхема часов (DS13хх например)
Палыч
Цитата(xkraft @ Apr 15 2011, 07:43) *
Причем питание может периодически сниматься с устройства.
Время, когда устройство не запитано в счёт не идёт? В противном случае нужно предусмотреть резурвное (может быть, батарейное питание).

Цитата(xkraft @ Apr 15 2011, 07:43) *
1. Нужно использовать еепром
2. Нужно организовать счетчик часов или минут
Может быть и секунд - зависит от требуемой точности выдержки времени. Периодически заносить счетчики в EEPROM (если не считать время, когда нет питания - иначе см. выше, при наличии резервного питания EEPROM не понадобится)

Цитата(xkraft @ Apr 15 2011, 07:43) *
3. По прошествии 1000 часов подать на порт А (B,C) логическую 1
Типа того... Зависит от схемы подключения.

Цитата(xkraft @ Apr 15 2011, 07:43) *
4. Скорее всего нужно еще прицепить ОЗУ
Необходимости ОЗУ я не вижу - МК содержит ОЗУ внутри.
prottoss
Цитата(xkraft @ Apr 15 2011, 10:43) *
Есть атмега8 и кварец на 12, нужно сделать устройство которое включит реле через, скажем, 1000 часов после первоначального запуска. Причем питание может периодически сниматься с устройства. Правильно ли я мыслю?

1. Нужно использовать еепром
2. Нужно организовать счетчик часов или минут
3. По прошествии 1000 часов подать на порт А (B,C) логическую 1
4. Скорее всего нужно еще прицепить ОЗУ
Не правильно.
Пункты 1-4 фтопку.
Использовать резервное питание чтобы подсчитывать время и тогда, когда нет основного питания. При пропадании основного питания переходить в спящий режим дабы экономить электроэнергию. Просыпаться только тогда, когда нужно инкрементировать счетчик времени. После снова спать. Это - стандартное решение.
xkraft
Цитата(Палыч @ Apr 15 2011, 09:17) *
Время, когда устройство не запитано в счёт не идёт? В противном случае нужно предусмотреть резурвное (может быть, батарейное питание).

Может быть и секунд - зависит от требуемой точности выдержки времени. Периодически заносить счетчики в EEPROM (если не считать время, когда нет питания - иначе см. выше, при наличии резервного питания EEPROM не понадобится)

Типа того... Зависит от схемы подключения.

Необходимости ОЗУ я не вижу - МК содержит ОЗУ внутри.


Время должно считаться только при включенном устройстве.
Точность до секунд и минут не нужна - плюс-минус 50 часов, можно считать хоть количество импульсов и периодически складывать их в еепром.
А озу я думал ставить только чтоб не насиловать еепром
Палыч
Цитата(xkraft @ Apr 15 2011, 10:00) *
Точность до секунд и минут не нужна - плюс-минус 50 часов, можно считать хоть количество импульсов и периодически складывать их в еепром.
Периодичность записи в EEPROM должна быть чаше, чем минимальное время непрерывноё подачи питания. В противном случае время Вы можите не отсчитать никогда. Например, если в EEPROM фиксировать наработку только часов, то при непрерывной работе Вашего устройства в течении 59 минут, час работы не зафиксируется... Имхо, запись в EEPROM нужно делать как минимум на порядок чаще. Но, при этом возникают проблемы с быстрым исчерпанием ресурса EEPROM. Решения по экономии ресурса не раз на форуме обсуждались.
Цитата(xkraft @ Apr 15 2011, 10:00) *
А озу я думал ставить только чтоб не насиловать еепром
Обычно в ОЗУ информация пропадает с потерей питания. Можно, конечно, поставить внешнее ОЗУ и предусмотреть резервное питание только для него, но, имхо, это - не лучшее решение.
prottoss
Цитата(xkraft @ Apr 15 2011, 13:00) *
Время должно считаться только при включенном устройстве.
Точность до секунд и минут не нужна - плюс-минус 50 часов, можно считать хоть количество импульсов и периодически складывать их в еепром.
А озу я думал ставить только чтоб не насиловать еепром
Если напряжение питания пропадет, то и в ОЗУ информация сбросится.
Тогда можно записывать в еепром интервалы времени, как Вам понравится (15 мин., 20... 1 час и т.п.)
xkraft
Вот за ресурсы еепром я и боялся...

Поэтому я и думал что пока устройство работает нампример по 8 часов, то количество импульсов или часов крутится в озу, и тогда каждые например 6 часов это количество импульсов будет складываться в еепром. Итого получится что в еепром нужно будет обратиться примерно 150 раз.
shrek
Есть вариант складывать в еепром перед пропаданием питания. Когда питание есть счетчик секунд крутится в ОЗУ например. Как только питание внешнее опускается ниже определенного значения допустим срабатывает внешнее прерывание от супервизора питания и контроллер сохраняет секунды в еепром, потом при появлении питания выгружает из еепром и продолжает счет. Судя по этому алгоритму надо 500 байт, если устройство бутет работать по 8 часов. Писать в еепром надо в разные ячейки, минимизируя колво циклов erase/write.
Палыч
Цитата(xkraft @ Apr 15 2011, 10:29) *
Вот за ресурсы еепром я и боялся...
Ресурс можно экономить. Например, установить мощный конденсатор (или ионистор, или...) энергии которого было бы достаточно для записи значений наработки за последний период работы при отключении питания (предусмотреть в схеме детектор). Получится, что одна запись в EEPROM на период работы; ресурса будет достаточно. Есть и другие методы экономии ресурса...
Oleg_DI
при записи в EEPROM за ограниченный момент времени требуется с применением протокола . иначе как определить достоверность данных.Записывать надо в разные адреса ,чтобы если с текущей записью ошибка можно сделать откат. Протокол требует нескольких байт можно не успеть их записать при отключении питания.Я бы отказался от этого метода. Ставлю FM25640 записываю как писал выше, в зависимости от
объёма памяти FM рассчитываю дискретность отсчётов времени для записи, чем больше память тем меньше ошибка за 1000 часов.
Главное это степень ответственности за работу устройства.И способы реализации прибора зависят только от этого.
sargein
так предложил же человек хорошее решение - использование микросхемы часов реального времени, чем оно плохо для данного случая?
xkraft
Цитата(sargein @ Apr 15 2011, 12:34) *
так предложил же человек хорошее решение - использование микросхемы часов реального времени, чем оно плохо для данного случая?


Я не говорил что это плохой вариант, я готов его рассмотреть, я говорил что точность плюс мину 50 часов.
Marian
Цитата(xkraft @ Apr 15 2011, 06:43) *
Есть атмега8 и кварец на 12, нужно сделать устройство которое включит реле через, скажем, 1000 часов после первоначального запуска. Причем питание может периодически сниматься с устройства. Правильно ли я мыслю?

1. Нужно использовать еепром
2. Нужно организовать счетчик часов или минут
3. По прошествии 1000 часов подать на порт А (B,C) логическую 1
4. Скорее всего нужно еще прицепить ОЗУ

1-3 пункты да. После появления питания запускаете в процессоре часы и считаете время работы.
Следите за питанием,например при помощи АЦП проца, при пропадании питания запись в еепром.
Он выдерживает 100000 циклов записи. Если выключается раз в сутки, при времени работы = 8 часов, 1000 часов достигнете после 125 записей в еепром.
100000/125=800 проца хватит на 800 циклов по 1000 часов.
Так как основное питание пропало, проц в время записи еепром должен получать питание от конденсатора большой емкости.

Второй вариант, предусмотреть резервное питание, н.п. от аккумулятора, запись в еппром вообще будет не нужна.
xkraft
А может я зря изобретаю велосипед...
Может кто где видел схему готового подобного устройства?
Xecutor
Цитата(xkraft @ Apr 15 2011, 21:22) *
А может я зря изобретаю велосипед...
Может кто где видел схему готового подобного устройства?

Пытаетесь сделать "закладку" для защиты от "неплательщиков"?
Если "продаваемое" устройство содержит МК(или ПЛК)-систему управления, то проще зашить защиту туда. Но лучше составить грамотный договор на бумаге...
domowoj
Цитата(xkraft @ Apr 16 2011, 01:22) *
А может я зря изобретаю велосипед...
Может кто где видел схему готового подобного устройства?

Вам же советовали взять часы реального времени, что-нибудь из серии DS13xx.
Заодно с последовательным интерфейсом поучитесь работать.
demiurg_spb
HINT: реле реального времени.
например такие
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.