Обсуждаем контроллеры компании Atmel.
Ответить

Re: Счетчик наработки времени.

Чт мар 03, 2011 16:06:10

Так это же просто замечательно! Нужно освежить в памяти этот момент. Спасибо. :beer:

Re: Счетчик наработки времени.

Чт мар 03, 2011 16:24:44

интересно, что же тут замечательного? ;) то, что забыли сделали или нет, или то, что не сделали, или то, что сделали? или еще какой-то вариант? ;)

Re: Счетчик наработки времени.

Чт мар 03, 2011 19:36:37

akl писал(а):...........Каждую минуту программа записывает в следующие, после предыдущей записи, 4 ячейки новое значение текущего времени............

Вот прямой текст , из этого следует , если отсчитает 59сек и откл питание етествено минута потеряется.
Попробовал поинтенсивней делать схеме обесточку (очень мало шансов попасть на такой перид записи данных, когда этого хочется :cry: ) никаких сбоев.
Вариант сохранения данных (хоть до милисекунд) возможен с применением аналогового компаратора использовав дополнительно AIN0, AIN1 , на которые подается напряжение и при отключении устройства изменение напряжений на входе AIN0 и AIN1, он выдаст на выходе 1 или 0, что будет командой для МК записи данных в память (ножки МК только 12 и 13)

Re: Счетчик наработки времени.

Пт мар 04, 2011 10:20:24

Coviraylhik писал(а):при отключении устройства изменение напряжений на входе AIN0 и AIN1, он выдаст на выходе 1 или 0, что будет командой для МК записи данных в память (ножки МК только 12 и 13)

Только важно учесть, что цикл записи в eeprom длится 1,7 милисек (для tini2313) а atomic clear/write 3,5 милисек. Если нужные ячейки eeprom предварительно стереть (см ERRTA на предмет правильного стирания), то останется только поддержать питание контроллера на время записи в eeprom. Думаю не очень большого электролита и диода шотки перед ним (что-б остальную схему не питать) должно хватить. Да, и при срабатывании компаратора всю переферию MK должен отключить - как минимум выводы перевести в Z (DDRx=0;PORTx0) и остановить таймеры.

Re: Счетчик наработки времени.

Пт мар 04, 2011 11:09:16

если вы говорите о контроле питания, то в этом случае совершенно нет необходимости вести ежеминутную запись в EEPROM - достаточно записывать новые показания только в момент начала пропадания питания, т.е. весь предложенный принцип полностью отвергается. в этом случае надо лишь обеспечить сохранение питания в течение максимум 10 мс - с этим справится любой электролит достаточной емкости.

Coviraylhik писал(а):
akl писал(а):...........Каждую минуту программа записывает в следующие, после предыдущей записи, 4 ячейки новое значение текущего времени............

Вот прямой текст , из этого следует , если отсчитает 59сек и откл питание етествено минута потеряется.
нет, вы не правы, "потеряться" может гораздо больше. счетчик минут занимает минимум 4 байта. представьте себе, что были показания 1000, а стали 1001. в HEX-формате это 0x000003E8 и 0x00003E9 соответственно. в соответствии с принятыми правилами в EEPROM эти числа будут записаны "задом наперед" (если автор прошивки, конечно, не сделал это иначе), т.е. в виде байтов E8-03-00-00 и E9-03-00-00 соответственно. запись в EEPROM всегда состоит из двух этапов: стирания содержимого и записи нового значения - это аппаратная функция и изменить ее невозможно.
есть 2 варианта проявления проблемы, зависящие от того, как автор пишет в EEPROM свой счетчик: если использует функции "стандартные" - это может породить проблему №1, а если пишет сам по одному байту - проблему №2.
обе проблемы сводятся вкратце к тому, что питание может исчезнуть ПОСЛЕ этапа стирания ячейки, но ДО НАЧАЛА записи в нее нового числа. при варианте №1 это может произойти, например, в момент записи последнего 4-го байта, т.е. в EEPROM окажется число E9-03-00-FF, что в нормальном виде означает показания счетчика в 4278191081 - совсем не минута потерялась!!!
при варианте №2 автор, скорее всего, нули напрасно не будет записывать, и тогда бояться надо того, что после стирания второго байта питание пропадет: E9-FF-00-00 соответствует 65513 - тоже в общем-то не 1 минута :)))

так что проблема есть, и ее надо обязательно предусматривать, раз устройство в теории может работать годами! рано или поздно питание вырубят как раз в момент записи... (и случится это по закону Мэрфи в момент, когда вы будете демонстрировать свое изделие самому важному клиенту) :)))

Re: Счетчик наработки времени.

Пт мар 04, 2011 13:43:17

Да жаль, что автор написал эту прошивку, из спортивного интереса , мы бы от него обязательно потребовали строгий отчет :lol: :lol: ШУТКА.
Конечно ARV вы правы , когда то по закону Мэрфи, это может и случится.
А может...... да сколько на свете таких схем, которые непонятно как (почти непонятно), но работают.
Схема пока в одном экземпляре, но косяк пока никак не проявляется :beer:
Я так понимаю , котоавторы пишут программы в разных стилях программирования, и в этот проект, никто кроме автора (тоже теоретически) пока ничего не добавит. Так что другой, альтернативы пока нет.

Re: Счетчик наработки времени.

Пт мар 04, 2011 14:05:50

дело в том, что это потенциальная "дыра" в надежности устройства. если устройство не понятно почему работает - это устройство надо в помойку! может, оно там в себе искусственный интеллект зародило, ну и нафига нам скайнетовское восстание?! :)))

я делал много разных термостатов, и обычно не настаивал на установке фьюзов BOD. казалось бы, в чем проблема? однако многие, кто повторил мои разработки, жаловались на то, что время от времени настройки в EEPROM портятся (пороги термостатов сбиваются). в EEPROM я веду запись вообще только 1 раз спустя 5 секунд после изменения порога! а портится содержимое именно в момент включения-выключения питания. так что учитывать надо все и даже то, что учесть нельзя :) . поэтому и в вашем счетчике НЕОБХОДИМО активировать систему BOD, иначе спустя неделю и вы обнаружите, что у вас "счетчик сбился". ну а про "нюансики" я уже сказал ранее.

Re: Счетчик наработки времени.

Пт мар 04, 2011 18:40:22

тем более все делается штатными стандартными средствами, почти без выкрутасов.

Re: Счетчик наработки времени.

Пт мар 04, 2011 19:00:52

Да сейчас выставлены фьюзы таким образом
Изображение
И хорошо что вы напомнили про термостаты , действительно подтверждаю ,что, при установке фьюзов BOD, термостат на ATtiny2313 ниже чем +5°C, переставал работать.
На основе таких фактов, сейчас провел испытания этому счетчику, поместил в морозильную камеру холодильника (-20°C гарантировано) примерно в течении часа держал там включеным и не забывал при этом с разными интервалами времени включать отключать ..... Порядок, все нормально работает!
O-LED писал(а):тем более все делается штатными стандартными средствами, почти без выкрутасов.

Это вы про что , есть альтернатива или так просто.......
Вложения
fuse.jpg
(13.06 KiB) Скачиваний: 30776

Re: Счетчик наработки времени.

Пт мар 04, 2011 20:21:42

Это вы про что , есть альтернатива или так просто.......
про защиту от потери информации. Все просто. "Слушаем питание", упало ниже 4,5в - записываем текущие данные в еепром, если дальше снижается до 2,7 бод сбрасывает контроллер, не давая затереть собранные данные. Если просело только до 4,5 и вернулось обратно - продолжаем отсчет

Re: Счетчик наработки времени.

Вс сен 25, 2011 21:35:59

собрал эту схемку, (оставил только первые 4 символа) запустил, сначала был нолик все норм, потом примерно через час начались кракозябры вкл-выкл не помогает, какие-то символы мигают с секундным интервалом. вставил другой контроллер та-же тема((

Re: Счетчик наработки времени.

Пн сен 26, 2011 04:22:45

Здравствуйте. После полного стирания контроллера (особенно это касается EEPROM) и загрузки .hex и .eep на индикаторе должны появиться 999900. Каждую минуту должно идти наращивание индикации минут и через час индикатор покажет 000. Работа этой схемы построена на том, что в EEPROM при стирании записывается 0xFF. Первая ячейка с таким содержимым является указателем откуда считывать предыдущее значение и куда нужно будет записывать следующее, по порядку, значение.

Re: Счетчик наработки времени.

Пн окт 10, 2011 16:21:50

Ребята, а нельзя ли вживить в вашу чудную схему счётчика кнопочку сброса (обнуления), чтобы не перепрошивать МК?

Re: Счетчик наработки времени.

Чт окт 13, 2011 12:25:37

Схемка очень полезная и простая, да и за это время мне в интернете не попадалось больше ничего подобного доступного к сборе самостоятельно А по сравнению с покупными, собранная схемка обходится в "копейки".....
rossich писал(а):схему счётчика кнопочку сброса (обнуления), чтобы не перепрошивать МК?

Есть в форуме свободном доступе исходник, но по моему кроме автора там врядли кто что либо сможет поменять ( вообще то не факт, это я , из своего опыта делаю такой вывод, очень долго я там пытался вставить точку в нужном мне месте , только с помощью автора и удалось... :beer: )
С одной стороны сброс который вам потребовался теоретически и нужен а с другой стороны , для серьезного устройства время наработки должно считатся от начала експлуатации и до его полного списания ..... а после его окончания срока службы, нет проблем и перепрошить МК.
Если вам нужно что для статистики учета времени наработки, то могу предложить вариант, правда там будут не только моточасы, так как схема очень много функциональна (если для себя то и затратность на детали не имеет значения)
по фунциям учёта схема очень интересна 20 !!! индувидуальных счетчиков и плюс их сумирование их в тотальный. Данные там также надежно сохраняются в памяти МК.
Тема здесь viewtopic.php?f=25&t=55600

Re: Счетчик наработки времени.

Чт авг 30, 2012 01:11:46

Здравствуйте! Уважаемые специалисты в области электроники и програмирования, я не силён в создании устройств на МК, а тем более в написании программ к ним,поэтому полагаюсь на ваш опыт. Суть вот в чём. Я прочитал сообщения форума по поводу счётчика наработаного времени. На мой взгляд, весьма полезное устройство. Время наработки таких механизмов как ДВС, знать очень полезно. У меня возникла такая идея: А что если создать на базе этого счётчика такое устройство: назовём его измеритель остатка топлива в баке автомобиля с ЭСУД. Устройство будет считать время (в милисекундах) открытого состояния фарсунки. Давление топлива в рампе-величина относительно постоянная (поддерживается регулятором давления топлива в заданых пределах),Пропускная способность фарсунки,хотя и меняется по мере её износа,но достаточно медленно,поэтому, можно считать,тоже постоянная. Зная эти параметры можно расчитать сколько литров топлива сжёг мотор за время работы, скажем, после очередной заправки, а соответственно и остаток топлива в баке. Причём результат будет привязан не к показаниям штатного датчика уровня (которые +/- 5-7 литров могут менятся несколько раз в минуту,на ямах особенно), а к точному результату вычислений бортовой системы управления двигателем, причём на всех вежимах работы ДВС. Пропускная способность фарсунок для разных ДВС, разная. Поэтому устройство должно иметь возмозность некоторой коректировки по этой величине, сброса предыдущих показаний и ввода новых, сразу после заправки (например: было 10л->0л->50л), считать обратно к нулю и сразу пересчитывать милисекунды в литры для удобного и понятного отображения. Интересно было бы узнать ваше мнение насчёт всего мной тут понаписанного. Имеет ли данная идея право на жизнь? И если да, насколько сложно воплотить это в "железе".

Re: Счетчик наработки времени.

Чт авг 30, 2012 02:04:59

ARV писал(а):я делал много разных термостатов, и обычно не настаивал на установке фьюзов BOD. казалось бы, в чем проблема? однако многие, кто повторил мои разработки, жаловались на то, что время от времени настройки в EEPROM портятся (пороги термостатов сбиваются). в EEPROM я веду запись вообще только 1 раз спустя 5 секунд после изменения порога! а портится содержимое именно в момент включения-выключения питания. так что учитывать надо все и даже то, что учесть нельзя :) . поэтому и в вашем счетчике НЕОБХОДИМО активировать систему BOD, иначе спустя неделю и вы обнаружите, что у вас "счетчик сбился". ну а про "нюансики" я уже сказал ранее.

У меня бывали случаи, что не то что бы EEPROM херилась, а доходило даже до слета прошивки. Правда, это была МЕГА32 с поддержкой бутлодера. Я сразу же догадался программатором сбросить бит BODEN. Помогло.

Re: Счетчик наработки времени.

Чт авг 30, 2012 10:35:51

древний агрегат для копир-центра - правда считал не часы а продукцию (листочки с сортировкой по размеру А4=А4r/А3) текущий заказ/вложенный цикл и накопитель с момента запуска/инициализации
защита от сбоев в аппарате типа "застрял лист/выключение питания"
самонастройка на особенности скоростей конкретного листопротяжника
положил "в ящик" в связи с изменением в организации работы заказчиков (поток клиентов на услугах копирования подупал по сравнению с 90-ми)
Вложения
copy_counter_lcd.pdf
(36.32 KiB) Скачиваний: 700

Re: Счетчик наработки времени.

Сб фев 18, 2017 04:27:29

akl интересует по вашему проекту http://c2.at.ua/load/tajmery/schetchik_otrabotannogo_vremeni_cifrovoj/21-1-0-50
там есть свободный порт pd2. нет ли у вас желания на него сделать управление гашением индикаторов? точку только оставить мигающую, для индикации работоспособности устройства. соединил на общий, заработала индикация

Re: Счетчик наработки времени.

Сб фев 18, 2017 10:13:06

Пробуйте. Индикатор с ОА. Обратите внимание на BODLEVEL2...0 101, задающие порог срабатывания BOD на уровне 2,7V.
MOTOHOURS_CA_2017.rar
(66.33 KiB) Скачиваний: 599

Меня уже, чесслово, тошнит от этих счетчиков времени наработки. Правда, они на MSP430

Re: Счетчик наработки времени.

Ср май 10, 2017 13:38:25

Здравствуйте akl.
Можно ли как-то с вами пообщаться на счёт разработки подобного устройства?
Требуется так же считать время работы и записывать в EEPROM, но помимо этого хотелось бы вести учет еще одного значения времени с записью в EEPROM, которое можно было бы сбросить кнопкой/джампером. Требуется выводить только часы.
Ответить