...........Каждую минуту программа записывает в следующие, после предыдущей записи, 4 ячейки новое значение текущего времени............
Вот прямой текст , из этого следует , если отсчитает 59сек и откл питание етествено минута потеряется. Попробовал поинтенсивней делать схеме обесточку (очень мало шансов попасть на такой перид записи данных, когда этого хочется ) никаких сбоев. Вариант сохранения данных (хоть до милисекунд) возможен с применением аналогового компаратора использовав дополнительно AIN0, AIN1 , на которые подается напряжение и при отключении устройства изменение напряжений на входе AIN0 и AIN1, он выдаст на выходе 1 или 0, что будет командой для МК записи данных в память (ножки МК только 12 и 13)
_________________ Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
при отключении устройства изменение напряжений на входе AIN0 и AIN1, он выдаст на выходе 1 или 0, что будет командой для МК записи данных в память (ножки МК только 12 и 13)
Только важно учесть, что цикл записи в eeprom длится 1,7 милисек (для tini2313) а atomic clear/write 3,5 милисек. Если нужные ячейки eeprom предварительно стереть (см ERRTA на предмет правильного стирания), то останется только поддержать питание контроллера на время записи в eeprom. Думаю не очень большого электролита и диода шотки перед ним (что-б остальную схему не питать) должно хватить. Да, и при срабатывании компаратора всю переферию MK должен отключить - как минимум выводы перевести в Z (DDRx=0;PORTx0) и остановить таймеры.
_________________ — Не говорите мне что делать и я не скажу куда Вам идти...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
если вы говорите о контроле питания, то в этом случае совершенно нет необходимости вести ежеминутную запись в 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 минута
так что проблема есть, и ее надо обязательно предусматривать, раз устройство в теории может работать годами! рано или поздно питание вырубят как раз в момент записи... (и случится это по закону Мэрфи в момент, когда вы будете демонстрировать свое изделие самому важному клиенту)
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Да жаль, что автор написал эту прошивку, из спортивного интереса , мы бы от него обязательно потребовали строгий отчет ШУТКА. Конечно ARV вы правы , когда то по закону Мэрфи, это может и случится. А может...... да сколько на свете таких схем, которые непонятно как (почти непонятно), но работают. Схема пока в одном экземпляре, но косяк пока никак не проявляется Я так понимаю , котоавторы пишут программы в разных стилях программирования, и в этот проект, никто кроме автора (тоже теоретически) пока ничего не добавит. Так что другой, альтернативы пока нет.
_________________ Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
дело в том, что это потенциальная "дыра" в надежности устройства. если устройство не понятно почему работает - это устройство надо в помойку! может, оно там в себе искусственный интеллект зародило, ну и нафига нам скайнетовское восстание?!
я делал много разных термостатов, и обычно не настаивал на установке фьюзов BOD. казалось бы, в чем проблема? однако многие, кто повторил мои разработки, жаловались на то, что время от времени настройки в EEPROM портятся (пороги термостатов сбиваются). в EEPROM я веду запись вообще только 1 раз спустя 5 секунд после изменения порога! а портится содержимое именно в момент включения-выключения питания. так что учитывать надо все и даже то, что учесть нельзя . поэтому и в вашем счетчике НЕОБХОДИМО активировать систему BOD, иначе спустя неделю и вы обнаружите, что у вас "счетчик сбился". ну а про "нюансики" я уже сказал ранее.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
И хорошо что вы напомнили про термостаты , действительно подтверждаю ,что, при установке фьюзов BOD, термостат на ATtiny2313 ниже чем +5°C, переставал работать. На основе таких фактов, сейчас провел испытания этому счетчику, поместил в морозильную камеру холодильника (-20°C гарантировано) примерно в течении часа держал там включеным и не забывал при этом с разными интервалами времени включать отключать ..... Порядок, все нормально работает!
O-LED писал(а):
тем более все делается штатными стандартными средствами, почти без выкрутасов.
Это вы про что , есть альтернатива или так просто.......
Это вы про что , есть альтернатива или так просто.......
про защиту от потери информации. Все просто. "Слушаем питание", упало ниже 4,5в - записываем текущие данные в еепром, если дальше снижается до 2,7 бод сбрасывает контроллер, не давая затереть собранные данные. Если просело только до 4,5 и вернулось обратно - продолжаем отсчет
собрал эту схемку, (оставил только первые 4 символа) запустил, сначала был нолик все норм, потом примерно через час начались кракозябры вкл-выкл не помогает, какие-то символы мигают с секундным интервалом. вставил другой контроллер та-же тема((
Здравствуйте. После полного стирания контроллера (особенно это касается EEPROM) и загрузки .hex и .eep на индикаторе должны появиться 999900. Каждую минуту должно идти наращивание индикации минут и через час индикатор покажет 000. Работа этой схемы построена на том, что в EEPROM при стирании записывается 0xFF. Первая ячейка с таким содержимым является указателем откуда считывать предыдущее значение и куда нужно будет записывать следующее, по порядку, значение.
Схемка очень полезная и простая, да и за это время мне в интернете не попадалось больше ничего подобного доступного к сборе самостоятельно А по сравнению с покупными, собранная схемка обходится в "копейки".....
rossich писал(а):
схему счётчика кнопочку сброса (обнуления), чтобы не перепрошивать МК?
Есть в форуме свободном доступе исходник, но по моему кроме автора там врядли кто что либо сможет поменять ( вообще то не факт, это я , из своего опыта делаю такой вывод, очень долго я там пытался вставить точку в нужном мне месте , только с помощью автора и удалось... ) С одной стороны сброс который вам потребовался теоретически и нужен а с другой стороны , для серьезного устройства время наработки должно считатся от начала експлуатации и до его полного списания ..... а после его окончания срока службы, нет проблем и перепрошить МК. Если вам нужно что для статистики учета времени наработки, то могу предложить вариант, правда там будут не только моточасы, так как схема очень много функциональна (если для себя то и затратность на детали не имеет значения) по фунциям учёта схема очень интересна 20 !!! индувидуальных счетчиков и плюс их сумирование их в тотальный. Данные там также надежно сохраняются в памяти МК. Тема здесь viewtopic.php?f=25&t=55600
_________________ Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
Здравствуйте! Уважаемые специалисты в области электроники и програмирования, я не силён в создании устройств на МК, а тем более в написании программ к ним,поэтому полагаюсь на ваш опыт. Суть вот в чём. Я прочитал сообщения форума по поводу счётчика наработаного времени. На мой взгляд, весьма полезное устройство. Время наработки таких механизмов как ДВС, знать очень полезно. У меня возникла такая идея: А что если создать на базе этого счётчика такое устройство: назовём его измеритель остатка топлива в баке автомобиля с ЭСУД. Устройство будет считать время (в милисекундах) открытого состояния фарсунки. Давление топлива в рампе-величина относительно постоянная (поддерживается регулятором давления топлива в заданых пределах),Пропускная способность фарсунки,хотя и меняется по мере её износа,но достаточно медленно,поэтому, можно считать,тоже постоянная. Зная эти параметры можно расчитать сколько литров топлива сжёг мотор за время работы, скажем, после очередной заправки, а соответственно и остаток топлива в баке. Причём результат будет привязан не к показаниям штатного датчика уровня (которые +/- 5-7 литров могут менятся несколько раз в минуту,на ямах особенно), а к точному результату вычислений бортовой системы управления двигателем, причём на всех вежимах работы ДВС. Пропускная способность фарсунок для разных ДВС, разная. Поэтому устройство должно иметь возмозность некоторой коректировки по этой величине, сброса предыдущих показаний и ввода новых, сразу после заправки (например: было 10л->0л->50л), считать обратно к нулю и сразу пересчитывать милисекунды в литры для удобного и понятного отображения. Интересно было бы узнать ваше мнение насчёт всего мной тут понаписанного. Имеет ли данная идея право на жизнь? И если да, насколько сложно воплотить это в "железе".
Заголовок сообщения: Re: Счетчик наработки времени.
Добавлено: Чт авг 30, 2012 02:04:59
Друг Кота
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4470 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
ARV писал(а):
я делал много разных термостатов, и обычно не настаивал на установке фьюзов BOD. казалось бы, в чем проблема? однако многие, кто повторил мои разработки, жаловались на то, что время от времени настройки в EEPROM портятся (пороги термостатов сбиваются). в EEPROM я веду запись вообще только 1 раз спустя 5 секунд после изменения порога! а портится содержимое именно в момент включения-выключения питания. так что учитывать надо все и даже то, что учесть нельзя . поэтому и в вашем счетчике НЕОБХОДИМО активировать систему BOD, иначе спустя неделю и вы обнаружите, что у вас "счетчик сбился". ну а про "нюансики" я уже сказал ранее.
У меня бывали случаи, что не то что бы EEPROM херилась, а доходило даже до слета прошивки. Правда, это была МЕГА32 с поддержкой бутлодера. Я сразу же догадался программатором сбросить бит BODEN. Помогло.
_________________ I am DX168B and this is my favourite forum on internet!
древний агрегат для копир-центра - правда считал не часы а продукцию (листочки с сортировкой по размеру А4=А4r/А3) текущий заказ/вложенный цикл и накопитель с момента запуска/инициализации защита от сбоев в аппарате типа "застрял лист/выключение питания" самонастройка на особенности скоростей конкретного листопротяжника положил "в ящик" в связи с изменением в организации работы заказчиков (поток клиентов на услугах копирования подупал по сравнению с 90-ми)
akl интересует по вашему проекту http://c2.at.ua/load/tajmery/schetchik_otrabotannogo_vremeni_cifrovoj/21-1-0-50 там есть свободный порт pd2. нет ли у вас желания на него сделать управление гашением индикаторов? точку только оставить мигающую, для индикации работоспособности устройства. соединил на общий, заработала индикация
Заголовок сообщения: Re: Счетчик наработки времени.
Добавлено: Ср май 10, 2017 13:38:25
Родился
Зарегистрирован: Ср май 10, 2017 13:18:41 Сообщений: 1
Рейтинг сообщения:0
Здравствуйте akl. Можно ли как-то с вами пообщаться на счёт разработки подобного устройства? Требуется так же считать время работы и записывать в EEPROM, но помимо этого хотелось бы вести учет еще одного значения времени с записью в EEPROM, которое можно было бы сбросить кнопкой/джампером. Требуется выводить только часы.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения