|
Прошу помощи по AT90S2313 |
|
|
|
Nov 15 2006, 11:51
|
Группа: Новичок
Сообщений: 5
Регистрация: 15-11-06
Пользователь №: 22 351

|
Добрый день. Я живу в небольшой двухкомнатной квартире. У меня автономное отопление, что позволяет, при разумном использовании, очень сильно экономить на квартплате. Для этой цели я приобрел набор NS182.2CT в МастерКит. Четырехканальный таймер-часы-терморегулятор с энергонезависимой памятью-ходом и исполнительным устройством на базе современного микропроцессора AT90S2313 производства фирмы ATMEL. Мотив приобретения именно этого набора: - Необходимость поддержки температурного режима в квартире в течение суток; - Возможность программирования режимов; - Самый дешёвый набор из программируемых; - У меня стоит задача энергосбережения, т.е. экономии, а не создание "умного дома" за большие деньги, не задумываясь о текущей экономии. Собрав данный набор, я столкнулся с целым рядом проблем: 1) Отсутствие гистерезиса терморегулятора. Температуры включения и отключения терморегулятора практически совпадают. Поэтому, при достижении установленной температуры управляющее реле начинает непрерывно включаться/отключаться (представляете, что творится с газовым котлом отопления?). Т.е. отсутствует не только возможность установки температуры включения и отключения терморегулятора, но и отсутствие между этими температурами приемлемой разницы. 2) Отсутствует возможность совместного использования часов и терморегулятора при программируемом режиме. Терморегулятор просто исключен из такого использования. Эта проблема резко сужает круг возможного использования данного набора в быту. Только как вкл/откл освещения. Даже для обогрева аквариума использовать нельзя, не говоря уже о помещении, дребезг реле..... Все вышеперечисленные недостатки - программно установлены ПО версии 182.02. Я просмотрел конференции на сайте "Мастеркит". Об этих недостатках, счастливые покупатели набора NS182.2CT, начали писать с 2003 года, т.е. с момента начала выпуска данного набора. Но так ничего и не изменилось к лучшему. В Мастерките ответили, что помочь ничем не могут, т.к. програмист, написавший программу, почти сразу после этого уволился. Я и предположить не мог, что в приборе нет ни гистерезиса ни разных температур включения и выключения. Как бы считал, что это должно быть "Де-факто". Может все-же кто-нибудь сможет помочь это исправить? Исходники прилагаю. Так же они находятся по адресу http://www.masterkit.ru/info/linkshow.php?num=30С уважением Игорь Владимирович.
|
|
|
|
|
Nov 15 2006, 12:14
|
Группа: Новичок
Сообщений: 5
Регистрация: 15-11-06
Пользователь №: 22 351

|
Цитата(DAndy_boy @ Nov 15 2006, 14:58)  Исправить то можно, но ковырятся в чужом коде дело не очень благодарное..... Проще занового написать всю программу  Ищите.... может кто и возмется на досуге.... Согласен, может так даже лучше. Сам не специалист, может быть кто-то из специалистов возмется написать за разумное вознаграждение. С уважением Игорь Владимирович. vik-55555@mail.ru
|
|
|
|
|
Nov 16 2006, 12:09
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Я посмотрел. Выводы неутешительные.
1) Текст программы достаточно приличный. Дело даже не в том, что как пишет уважаемый defunct "Программа написана небрежно, повидимому начинающим программистом". А в том, что просто так в неё изменения не внесёшь. Придётся либо отлаживать (уважающий себя программист так и сделает) либо опять Вас бросить на камни с новым кодом. Для того чтобы отладить, надо, как минимум, иметь данное устройство. Купить его и отладить, чтобы сделать Вам приятное, сами понимаете немного тпких альтруистов найдётся. Собрать - тоже. Отладка по интернету не имея девайса, - я за это даже браться не буду.
2) Скорее всего Вам придётся это сделать самому. Тем более, что Вы потом сможете вносить любые изменения в уже "своё" изделие. Либо надо найти программера, у которого есть данный девайс.
Есть ещё один маленький вариант. Я, сейчас, как раз пишу тестовую прогу для DS18b20. У меня ЖКИ подключен. Чтобы легче было отлаживать (наглядней) вывожу на дисплей. Закончу выложу. Не больше недели. Выложите схемку я гляну может перетранслировать удастся на мой макет.
|
|
|
|
|
Nov 16 2006, 12:17
|
Группа: Новичок
Сообщений: 5
Регистрация: 15-11-06
Пользователь №: 22 351

|
Цитата(SasaVitebsk @ Nov 16 2006, 15:09)  Я посмотрел. Выводы неутешительные.
....Есть ещё один маленький вариант. Я, сейчас, как раз пишу тестовую прогу для DS18b20. У меня ЖКИ подключен. Чтобы легче было отлаживать (наглядней) вывожу на дисплей. Закончу выложу. Не больше недели. Выложите схемку я гляну может перетранслировать удастся на мой макет. Схему выложил. Описание набора http://www.masterkit.ru/main/set.php?num=629
Сообщение отредактировал КИВ - Nov 16 2006, 12:21
Прикрепленные файлы
ns182.rar ( 91.13 килобайт )
Кол-во скачиваний: 64
|
|
|
|
|
Nov 16 2006, 20:17
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(SasaVitebsk @ Nov 16 2006, 15:09)  А в том, что просто так в неё изменения не внесёшь. Это как раз и отличает программы написанные начинающими. Написано много и коментарии в каждой строке, но логики работы программы не видно. Вот место файл TIMEKEY.ASM (с первого раза я даже не предполагал смотреть в нем), где производится вычитка Thresholds и управление реле: Код ;------------ Read stored Termo Threshold --------------- ldi r17,61;Set 1/2 1-st EEAddr termo threshold rcall RD_EE0;Read 2*Data EEPROM (NOT Corrected) ;--------------------------------------------------------- ;---------- Test Activity Termocontrol ---------------- clr r17;Clear temp TRMFLAG sbrs EETMP_L,0;IF TERMOSTAT NOT ACTIVE rjmp PEXE4;GO OVER TERMOCONTROL ;------------- Termocontrol --------------------------- andi r18,0xEF;Clear P4 (ON BOARD RELAY) <- !! ЗДЕСЬ ОТКЛЮЧЕНИЕ РЕЛЕ ;---------- Set Termostat IND Points --------------------- ldi r17,0x10;Set flashing point 0 position TRMFLAG ;------------- Compare Termo & Threshold ----------------- clr r16;OFF HEATER (0x00=>HEATER) dec EETMP_L cp EETMP_L,LNTMPR_L;Compare real temperature & Threshold cpc EETMP_H,LNTMPR_H;Compare real temperature & Threshold brlt PEXE6;IF real termo lower then ON HEATER inc r16;ON HEATER (0x01=>HEATER) PEXE6:;----------------------------------------------------------- tst r16;IF HEATER OFF (=0) breq PEXE4;THEN GO put new PORTB ori r18,0x10;Set P4 (ON BOARD RELAY) <--- !! ЗДЕСЬ ВКЛЮЧЕНИЕ ldi r17,0x11;Set permanent point 0 position TRMFLAG ;------------------------------------------------------ PEXE4: out PORTB,r18;put new PORTB ///!!! <- ЗДЕСЬ ВОЗДЕЙСТВИЕ НА РЕЛЕ sts TRMFLAG,r17;Store new TRMFLAG PEXE5: clr XH;Restore 0=>XH ;===================================================================== Вот так на мой взгляд можно подправить ситуацию малой кровью: Код ; <-- вносим гистерезис .equ Histeresis = 5; <-- число подобрать так чтобы разница была 4C-5C, ; не знаю в чем у них там меряется температура .equ TermocontrolPin = PB4
;------------ Read stored Termo Threshold --------------- ldi r17,61;Set 1/2 1-st EEAddr termo threshold rcall RD_EE0;Read 2*Data EEPROM (NOT Corrected) ;------------- Termocontrol --------------------------- in R17, PORTB andi R17, (1 << TermocontrolPin); GET_TERMOCONTROL_STATUS tst R17 breq _CheckLowThreshold; // котел отключен, проверить на нижнюю границу температуры ; <-- здесь проверка с верхней границей температуры ; в качестве верхней границы используем то, что задается настройками и сохраняется в EEPROM cp EETMP_L,LNTMPR_L cpc EETMP_H,LNTMPR_H ;Compare real temperature & и сохраненный Threshold brlt HoldCurrentState; температура ниже, держать котел включенным ;<-- здесь температура выше максимальной отметки - отключаем котел cbi PORTB, TermocontrolPin rjmp HoldCurrentState
_CheckLowThreshold: push R18 mov R17, EETMP_L mov R18, EETMP_H subi R17, Histeresis; sbci R18, 0 ; R18:R17 - сохраненная температура минус гистерезис // Check for ON state cp R17, LNTMPR_L cpc R18, LNTMPR_H; compare temp with (threshold - Histeresis) pop R18 brge HoldCurrentState; температура выше чем (Threshold - Histeresis), держать котел отключенным
;<-- здесь температура ниже минимальной отметки - включаем котел sbi PORTB, TermocontrolPin; //
HoldCurrentState: in R18, PORTB; На всякий случай синхронизируем R18 с портом B ldi r17,0x11;Set permanent point 0 position TRMFLAG sts TRMFLAG,r17;Store new TRMFLAG clr XH;Restore 0=>XH ;=====================================================================
|
|
|
|
|
Nov 17 2006, 06:52
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
[quote name='SasaVitebsk' date='Nov 17 2006, 00:51' post='177172'] [quote name='defunct' post='177162' date='Nov 17 2006, 01:22'] [quote name='SasaVitebsk' post='177151' date='Nov 17 2006, 01:02'] Это что за формат???  [/quote] Gif ;> загляните по F3 в файлик [/quote] Да заглянул уже.  Всё понял. Наверное не присоединялось, а потом забыл. Что за DD1 (часы с памятью?) и DD3 (счётчик с дешифратором?). И куда там 18B20 присоединён? [/quote] [/quote]Описание работы устройства. Таймер выполнен на основе микросхемы часов фирмы PHILIPS PCF8583 с управлением по шине I2C (DD1), микроконтроллера AT90S2313 (DD2) с прошитым программным обеспечением обработки сигналов управления и индикации, 8-ми разрядного сдвигового регистра 74HC164 (DD3), выполняющего роль расширителя портов микроконтроллера, цепи питания микросхем и индикатора (С7, C8, DA1), цепей питания и пуска реле K1 (С11, R16, VD4 и R13, R14, R15, VD3, VT2). Диод VD3 защищает транзистор VT2 от импульсного пробоя в момент его закрытия. Источник питания состоит из конденсатора C12, гасящего резистора R18, диодного моста VD5 и резистора R17, выполняющего роль ограничителя тока в момент подключения устройства к сети (заряда конденсатора C12). При отключении питания резистор R18 разряжает конденсатор С12. Диоды VD1 и VD2 обеспечивают развязку литиевого элемента GB и сетевого источника питания. Литиевый элемент питания (GB) обеспечивает подпитку микросхемы часов PCF8583 (DD1) при отключении основного источника напряжения. Ток потребления DD1 в таком режиме составляет 5 мкА, что позволяет сохранять ИМС все настройки и производить отсчет точного времени на протяжении примерно 1 года. Напряжение питания подается на контакты X1, X2. Нагрузка подключается к контактам X3, X4 (на замыкание реле К1) или X3, X5 (на размыкание реле К1) соответственно. Разъем XP1 предназначен для подключения дополнительных устройств контроля-обработки работающих с шиной I2C и подключения датчика температуры. [/quote] Это цитата из описания
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 17 2006, 09:57
|
Группа: Новичок
Сообщений: 5
Регистрация: 15-11-06
Пользователь №: 22 351

|
Цитата(defunct @ Nov 16 2006, 23:17)  Отдал ваше письмо програмисту, он попробует разобраться. По его словам, трудность заключается в том, что программа изначально сильно ужата, из-за малого места. И он не уверен, что можно внести дополнительные изменения.
|
|
|
|
|
Nov 17 2006, 10:18
|
Группа: Новичок
Сообщений: 5
Регистрация: 15-11-06
Пользователь №: 22 351

|
Цитата(Коляй @ Nov 16 2006, 21:13)  КИВ, не в тему конечно, спросить хочу. А что за котёл? Сколько стоит? Наличие газосчётчика обязательно? И много ли бумаг надо что б поставить? У нас выпускаются котлы уже с автоматикой. Тоже репу чешу, ибо неохота платить по 1000р каждый месяц за откровенный дубак! Котел - viessman, двухконтурный - отопление и горячая вода. Стоимость около 1000$ Наличие газосчётчика обязательно. И много ли бумаг надо что б поставить - говорят не много, мне ставили газовщики. Отечественным не доверяю, постоянно какие-то геморои. Автоматики котла не достаточно, нужны еще внешние терморегуляторы. Экономия - на отоплении без комнатных терморегуляторов 30-40% - на отоплении с комнатным терморегулятором 60-90% - на горячеи воде 50% Прошлой зимой, с простейшим терморегулятором, ежемесячная плата за отопление и горячую воду и газ(кухонная плита) составляла 200 - 250 рублей. При этом 250 рублей при морозах 30-35 градусов. С центр.отопл. платили до 1500... За прошлый месяц октябрь плата за отопление и горячую воду и газ(кухонная плита) составила 70 рублей.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|