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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Hi, помогите новичку советом
xkraft
сообщение Apr 15 2011, 03:43
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 1-03-06
Пользователь №: 14 836



Есть атмега8 и кварец на 12, нужно сделать устройство которое включит реле через, скажем, 1000 часов после первоначального запуска. Причем питание может периодически сниматься с устройства. Правильно ли я мыслю?

1. Нужно использовать еепром
2. Нужно организовать счетчик часов или минут
3. По прошествии 1000 часов подать на порт А (B,C) логическую 1
4. Скорее всего нужно еще прицепить ОЗУ
Go to the top of the page
 
+Quote Post
alexeyv
сообщение Apr 15 2011, 05:15
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



1. Правильно думаете
2. И это тоже правильно
Но:
Количество циклов записи в ЕЕПРОМ ограничено, поэтому необходимо продумать алгоритм сохранения данных в ЕЕПРОМ, что бы (желательно) при записи информации каждый раз использовались новые ячейки

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

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

Несколько предложений:
1. Поставить ионистор/батарейку/аккумулятор для питания устройства при выключенном основном питании
2. Поставить какую-либо внешнюю схему компаратора или микросхему супервизора питания , которая бы предупреждала о снижении питания
3. Для точного отсчета времени необходим или часовой кварц на таймер или микросхема часов (DS13хх например)
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 15 2011, 05:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(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. Скорее всего нужно еще прицепить ОЗУ
Необходимости ОЗУ я не вижу - МК содержит ОЗУ внутри.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Apr 15 2011, 05:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



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

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


--------------------
Go to the top of the page
 
+Quote Post
xkraft
сообщение Apr 15 2011, 06:00
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 1-03-06
Пользователь №: 14 836



Цитата(Палыч @ Apr 15 2011, 09:17) *
Время, когда устройство не запитано в счёт не идёт? В противном случае нужно предусмотреть резурвное (может быть, батарейное питание).

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

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

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


Время должно считаться только при включенном устройстве.
Точность до секунд и минут не нужна - плюс-минус 50 часов, можно считать хоть количество импульсов и периодически складывать их в еепром.
А озу я думал ставить только чтоб не насиловать еепром
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 15 2011, 06:19
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(xkraft @ Apr 15 2011, 10:00) *
Точность до секунд и минут не нужна - плюс-минус 50 часов, можно считать хоть количество импульсов и периодически складывать их в еепром.
Периодичность записи в EEPROM должна быть чаше, чем минимальное время непрерывноё подачи питания. В противном случае время Вы можите не отсчитать никогда. Например, если в EEPROM фиксировать наработку только часов, то при непрерывной работе Вашего устройства в течении 59 минут, час работы не зафиксируется... Имхо, запись в EEPROM нужно делать как минимум на порядок чаще. Но, при этом возникают проблемы с быстрым исчерпанием ресурса EEPROM. Решения по экономии ресурса не раз на форуме обсуждались.
Цитата(xkraft @ Apr 15 2011, 10:00) *
А озу я думал ставить только чтоб не насиловать еепром
Обычно в ОЗУ информация пропадает с потерей питания. Можно, конечно, поставить внешнее ОЗУ и предусмотреть резервное питание только для него, но, имхо, это - не лучшее решение.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Apr 15 2011, 06:20
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



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


--------------------
Go to the top of the page
 
+Quote Post
xkraft
сообщение Apr 15 2011, 06:29
Сообщение #8





Группа: Новичок
Сообщений: 5
Регистрация: 1-03-06
Пользователь №: 14 836



Вот за ресурсы еепром я и боялся...

Поэтому я и думал что пока устройство работает нампример по 8 часов, то количество импульсов или часов крутится в озу, и тогда каждые например 6 часов это количество импульсов будет складываться в еепром. Итого получится что в еепром нужно будет обратиться примерно 150 раз.
Go to the top of the page
 
+Quote Post
shrek
сообщение Apr 15 2011, 07:07
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



Есть вариант складывать в еепром перед пропаданием питания. Когда питание есть счетчик секунд крутится в ОЗУ например. Как только питание внешнее опускается ниже определенного значения допустим срабатывает внешнее прерывание от супервизора питания и контроллер сохраняет секунды в еепром, потом при появлении питания выгружает из еепром и продолжает счет. Судя по этому алгоритму надо 500 байт, если устройство бутет работать по 8 часов. Писать в еепром надо в разные ячейки, минимизируя колво циклов erase/write.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 15 2011, 07:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(xkraft @ Apr 15 2011, 10:29) *
Вот за ресурсы еепром я и боялся...
Ресурс можно экономить. Например, установить мощный конденсатор (или ионистор, или...) энергии которого было бы достаточно для записи значений наработки за последний период работы при отключении питания (предусмотреть в схеме детектор). Получится, что одна запись в EEPROM на период работы; ресурса будет достаточно. Есть и другие методы экономии ресурса...
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение Apr 15 2011, 08:26
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



при записи в EEPROM за ограниченный момент времени требуется с применением протокола . иначе как определить достоверность данных.Записывать надо в разные адреса ,чтобы если с текущей записью ошибка можно сделать откат. Протокол требует нескольких байт можно не успеть их записать при отключении питания.Я бы отказался от этого метода. Ставлю FM25640 записываю как писал выше, в зависимости от
объёма памяти FM рассчитываю дискретность отсчётов времени для записи, чем больше память тем меньше ошибка за 1000 часов.
Главное это степень ответственности за работу устройства.И способы реализации прибора зависят только от этого.
Go to the top of the page
 
+Quote Post
sargein
сообщение Apr 15 2011, 08:34
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 31-01-10
Из: Минск
Пользователь №: 55 176



так предложил же человек хорошее решение - использование микросхемы часов реального времени, чем оно плохо для данного случая?
Go to the top of the page
 
+Quote Post
xkraft
сообщение Apr 15 2011, 09:31
Сообщение #13





Группа: Новичок
Сообщений: 5
Регистрация: 1-03-06
Пользователь №: 14 836



Цитата(sargein @ Apr 15 2011, 12:34) *
так предложил же человек хорошее решение - использование микросхемы часов реального времени, чем оно плохо для данного случая?


Я не говорил что это плохой вариант, я готов его рассмотреть, я говорил что точность плюс мину 50 часов.
Go to the top of the page
 
+Quote Post
Marian
сообщение Apr 15 2011, 18:20
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(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 часов.
Так как основное питание пропало, проц в время записи еепром должен получать питание от конденсатора большой емкости.

Второй вариант, предусмотреть резервное питание, н.п. от аккумулятора, запись в еппром вообще будет не нужна.
Go to the top of the page
 
+Quote Post
xkraft
сообщение Apr 15 2011, 18:22
Сообщение #15





Группа: Новичок
Сообщений: 5
Регистрация: 1-03-06
Пользователь №: 14 836



А может я зря изобретаю велосипед...
Может кто где видел схему готового подобного устройства?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:56
Рейтинг@Mail.ru


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