Доброго времени суток! собрал данное устройство,Очередной термостат на Tiny2313 и DS18B20, все работает замечательно, показывает, щелкает нагрузкой, но, со временем, записанное еепром температура сбрасывается на изначальную, как при первом включении, будто ничего не выставлял. в программировании не силен, только учусь... питание пробовал и сеть и батарею, электролит и керамика стоят, результат один. прошу помощи!!!
Автор: СКАЗОЧНИК Опубликовано 16.01.2017 Очередной термостат на Tiny2313 и DS18B20. в конце статьи по вопросвм отправка на форум, но ветки не нашел... к сожалению из за скорости интернета не получается загрузить схему и тем более архив с прогой.... что поделать, 21 век.....
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Спасибо огромное! чтото не догадался А если данные писать во флэш(програмную память), как думаете, ситуацию должно исправить или тут причина еще в чем то может крыться?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
EEWrite: sbic EECR, EEPE ; Ждем готовности памяти к записи. Крутимся в цикле rjmp EEWrite ; до тех пор пока не очистится флаг EEWE
cli ; Затем запрещаем прерывания.
ldi temp, 10 out EEAR, temp ; Загружаем адрес нужной ячейки
out EEDR,ZUUM ; и сами данные, которые нам нужно загрузить
sbi EECR,EEMPE ; взводим предохранитель sbi EECR,EEPE ; записываем байт (не более 4х таков ожидание) ;---------- EEW_bloc: sbic EECR, EEPE ; Ждем окончание цикла записи. Крутимся в цикле rjmp EEW_bloc ; до тех пор пока не очистится флаг EEWE ;---------- sei ; разрешаем прерывания
серии 2313 к сожалению последняя в заначке, скрутить неоткуда, а ошибка такая раз за разом, чуть ли не закономерность... Спасибо за код, за одно и сам асм покурю с даташитом. ошибка так же всплывает, имеет хаотичный характер, все работает как надо и, все работает как надо, делаешь уставку, работает, начинаешь ее изменять, все начинается с произвольного значения сохраненой температуры..
Было такое на другом АВР. За давностью точно не вспомню, но вроде при плавном нарастании питания затирались начальные ячейки EEPROM. Когда поставилл супервизор питания и область записи перенес немного выше, вроде как исчезло. Давно это было, в прошлом тысячелетии. Но - как вариант...
С супервизорами пока напряг, но наверное при использовании еепром желательно, хотя свежая батарея, индикатор на минимуме питания, нагрузочные на 1кОм, вместо реле тоже светик,просадка как бы не критична я думаю, и в 10 ую ячейку данные идут, попробовать глубже..?
ldi temp, 10 out EEAR, temp ; Загружаем адрес нужной ячейки
буду пытаться епром на память програм заменить, уставкой не так уж и часто пользоваться буду, буду осваивать, потом на суд код.
ЕЕПРОМ - программируется обычной программой пользователя. Флеш-ПЗУ требует спецрежима самопрограммирования, который по сложности и пакостности намного превосходит работу с ЕЕПРОМ (особо на столь мелком МК, как тинька2313). Лучше уж проработать применение схемы BOR - детектирования пониженного напряжения.
А так надо всю программу со схемой анализировать... ЛЕЕЕНЬЬЬ...
Кстати... значение уставки можно и в самом DS18DB20 хранить... Что и делалось в те времена, когда о ЕЕПРОМке в МК только мечталось (АТ89С2051 к примеру).
Ну это у нас было на старых AVR, не Mega, у них не было встроенного BOD. Можно попробовать экспериментнуть с BOD level . Или писать несколько раз уставку в разные ячейки и определять истинную по контр. сумме или мажоритарно, хотя это уже костыли, маскирующие, а не устраняющие проблему. А писать программно во флеш действительно требует определенных танцев с бубном. Мне не понравилось.
Хренасе, даже не думал, что эту лабуду кто-нибудь будет собирать... Прошу прощения, конечно, но этот термостат был придумал, как лишь цель обучения протоколу 1-Ваер... Остальное так, по ходу зацепил. Конечно, до вас еще жалоб не было на уставки занчений в ЕЕПРОМ. Может реально для начала заменить 10 ячейку на чего-нибудь побольше. ? И проверить, как оно отзовется. Да, в фьюзах я БОД настраивал на детектирование в 4,3 Вольта.
Программа там к нему написана абсолютно рукожопо. Ну, так у меня руки растут. )))))
Также да. Можно совсем выбросить ЕЕПРОМ и записать значение сразу во Флеш. Тогда его невозможно будет изменить, но и не затрется. Только надо программу править.
Управлять насосом отопления хотелось, чтоб при снижении температуры его автоматом гасило. другие схемы пробовал на 2313, но там так же почему то епром слетает, и исходника нет, только хексы... тут хоть можно что-то поколупать, поучиться, и на этом спасибо! по какой то причине, замена адреса на больший епром совсем не пишет установленные значения, все больше на ноль, -4 сбрасывается. Пока только код пытаюсь разобрать с настройками МК в свободное время, так может до датчика доберусь еще...и хранений в нем данных.
Если надо, могу выложить проект на тини2313 с поверхностным монтажем - отличается разводка дисплея (написано на С в кодевижне), у меня несколько штук работает, проблем с еепром не было ни разу
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Выкладываю, хотя по записи в еепром там изучать нечего...принцип такой: т.к. запись по меркам мк идет долго (для программиста это выглядит как простое присвоение, но на самом деле, если глянуть листинг ассемблера - там цикл ожидания), чтобы не вызвать срыв индикации, прерывания я не запрещаю, но сам гарантирую отсутствие взаимодействия с еепром - если меню==10 то пользовательское меню блокируется (для человека это миг), а остальная часть с еепром не взаимодействует. Дополнения: третья кнопка = одновременное нажатие двух - вход в установку границ, длительное удержание - служебное меню (коррекция температуры и яркость индикатора). нажатие одной кнопки в основном экране - показ уставок, в настройках - изменение величины. постарался сделать пользовательский интерфейс максимально удобным - отработка кнопок позволяет нажимать кнопки немного неодновременно (мы же не роботы) часть хотелок не влезла... флеша в тиньке маловато. файлы проекта называются насос, это потому что данная платка и была спроектирована как блок управления насосом - следила за давлением и состоянием проводов до ЭКМа, всё с нуля писать было лень... как говорится ничего не бывает настолько постоянным как временное.
чтобы не вызвать срыв индикации, прерывания я не запрещаю
Может, в этом и есть причина ?
Цитата:
5. Within four clock cycles after setting EEMWE, write a logical one to EEWE. (стр. 30 PDF)
Не знаю, какой код записи в EEPROM в библиотечной функции, сам с EEPROM всегда работал через ассемблер, но если и в ней прерывания не запрещаются и они попадают именно на эти 4 цикла, то гарантии правильной записи - никакой. А миллисекундный срыв индикации, думаю, не такя уж беда, чтобы из-за него рисковать сбоем при записи.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения