Доброго времени суток! собрал данное устройство,Очередной термостат на Tiny2313 и DS18B20, все работает замечательно, показывает, щелкает нагрузкой, но, со временем, записанное еепром температура сбрасывается на изначальную, как при первом включении, будто ничего не выставлял. в программировании не силен, только учусь... питание пробовал и сеть и батарею, электролит и керамика стоят, результат один. прошу помощи!!!
Автор: СКАЗОЧНИК Опубликовано 16.01.2017 Очередной термостат на Tiny2313 и DS18B20. в конце статьи по вопросвм отправка на форум, но ветки не нашел... к сожалению из за скорости интернета не получается загрузить схему и тем более архив с прогой.... что поделать, 21 век.....
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Спасибо огромное! чтото не догадался А если данные писать во флэш(програмную память), как думаете, ситуацию должно исправить или тут причина еще в чем то может крыться?
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
серии 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 цикла, то гарантии правильной записи - никакой. А миллисекундный срыв индикации, думаю, не такя уж беда, чтобы из-за него рисковать сбоем при записи.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения