реклама на сайте
подробности

 
 
> Прошу помощи по AT90S2313
КИВ
сообщение Nov 15 2006, 11:51
Сообщение #1





Группа: Новичок
Сообщений: 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

С уважением Игорь Владимирович.
Прикрепленные файлы
Прикрепленный файл  nm182.2_asm_codes.zip ( 49.7 килобайт ) Кол-во скачиваний: 63
Прикрепленный файл  ns182.2.1.zip ( 115.61 килобайт ) Кол-во скачиваний: 54
Прикрепленный файл  ns182_2.zip ( 92.42 килобайт ) Кол-во скачиваний: 51
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Nov 16 2006, 12:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Я посмотрел. Выводы неутешительные.

1) Текст программы достаточно приличный. Дело даже не в том, что как пишет уважаемый defunct "Программа написана небрежно, повидимому начинающим программистом". А в том, что просто так в неё изменения не внесёшь. Придётся либо отлаживать (уважающий себя программист так и сделает) либо опять Вас бросить на камни с новым кодом. Для того чтобы отладить, надо, как минимум, иметь данное устройство. Купить его и отладить, чтобы сделать Вам приятное, сами понимаете немного тпких альтруистов найдётся. Собрать - тоже. Отладка по интернету не имея девайса, - я за это даже браться не буду.

2) Скорее всего Вам придётся это сделать самому. Тем более, что Вы потом сможете вносить любые изменения в уже "своё" изделие. Либо надо найти программера, у которого есть данный девайс.


Есть ещё один маленький вариант. Я, сейчас, как раз пишу тестовую прогу для DS18b20. У меня ЖКИ подключен. Чтобы легче было отлаживать (наглядней) вывожу на дисплей. Закончу выложу. Не больше недели. Выложите схемку я гляну может перетранслировать удастся на мой макет.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 16 2006, 20:17
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 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
;=====================================================================
Go to the top of the page
 
+Quote Post
КИВ
сообщение Nov 17 2006, 09:57
Сообщение #4





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



Цитата(defunct @ Nov 16 2006, 23:17) *


Отдал ваше письмо програмисту, он попробует разобраться. По его словам, трудность заключается в том, что программа изначально сильно ужата, из-за малого места. И он не уверен, что можно внести дополнительные изменения.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- КИВ   Прошу помощи по AT90S2313   Nov 15 2006, 11:51
- - DAndy_boy   Исправить то можно, но ковырятся в чужом коде дело...   Nov 15 2006, 11:58
|- - КИВ   Цитата(DAndy_boy @ Nov 15 2006, 14:58) Ис...   Nov 15 2006, 12:14
- - defunct   1. Программа написана небрежно, повидимому начинаю...   Nov 15 2006, 18:15
- - SasaVitebsk   У Вас все задатки программиста. Сразу видите и про...   Nov 16 2006, 10:54
|- - КИВ   Цитата(SasaVitebsk @ Nov 16 2006, 15:09) ...   Nov 16 2006, 12:17
||- - Коляй   КИВ, не в тему конечно, спросить хочу. А что за ко...   Nov 16 2006, 18:13
|||- - КИВ   Цитата(Коляй @ Nov 16 2006, 21:13) КИВ, н...   Nov 17 2006, 10:18
||- - SasaVitebsk   Цитата(КИВ @ Nov 16 2006, 15:17) Схему вы...   Nov 16 2006, 22:02
||- - defunct   Цитата(SasaVitebsk @ Nov 17 2006, 01:02) ...   Nov 16 2006, 22:22
||- - SasaVitebsk   Цитата(defunct @ Nov 17 2006, 01:22) Цита...   Nov 16 2006, 22:51
||- - Wild007   [quote name='SasaVitebsk' date='Nov 17...   Nov 17 2006, 06:52
- - Dopler   Тоже не про контроллеры а про котел. Операция жутк...   Nov 17 2006, 17:36


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016