Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Греется микросхема - датчик температуры DS1621.
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
Charoit
Электронный термометр на Атмега8515 и датчик DS1621. Вывод на ЖКИ отлажен и проверен, более-менее разобрался с И2С. При подключении питания на ЖКИ выводится значение температуры : начинается с 30 градусов (при комнатной 24-26), далее растет и останавливается при 49-50.. Случайно потрогал датчик - а микросхема-то очень и очень теплая! Не горячая, но температура заметно выше комнатной (Атмега холодная, как и другие микросхемы на отладочной плате). В чем может быть дело?

З.Ы. Если к датчику поднести что-то, имеющее другую температуру, он реагирует адекватно - температура на ЖКИ падает или растет.
uriy
На схему подключения позволите взглянуть. Может быть слишком маленькие номиналы резисторов подтяжки на I2C.
Charoit
Цитата(urasinov @ Nov 9 2007, 18:56) *
На схему подключения позволите взглянуть. Может быть слишком маленькие номиналы резисторов подтяжки на I2C.



Подтягивающих резисторов нет. Знаю, что по-хорошему их надо бы поставить, но слышал мнение, что когда всего одно slave-устройство, то можно обойтись без них, тем более, что скорость обмена невысокая.
Поискал темы на форуме, связанные с датчиками Dallas, понял, что эти датчики могут чудить, в частности 1621 уж точно. Причем Dallas выпустил ему замену - 1631 - и нехотя признал, что у 21-го есть косяк. Поэтому вчера заскочил в Чип и Дип и купил сразу три других модели :
1) 1624 (единственный вариант в DIP-исполнении, 1620 не имеет I2C), есть встроенная память 256 байт, пока совершенно мне не нужная и в два раза увеличивающая стоимость микросхемы;
2) 1629S (есть встроеннные часы, точность температуры ниже : +-2 градуса);
3) DS1721S - аналогичен 1621, корпус SOIC.

Буду пробовать 1624, как не требующий переделок - просто вставить чип в кроватку и все.
Сергей Борщ
Цитата(Charoit @ Nov 10 2007, 14:13) *
Подтягивающих резисторов нет. Знаю, что по-хорошему их надо бы поставить, но слышал мнение.... Буду пробовать
С этого и надо было начинать. Тогда примите пожелания успехов и приготовьтесь к новым чудесам. А виноват, конечно же, Даллас с Максимом на пару. Почитайте эту ветку. А, еще Филипс виноват, что придумал такую шину, которая при неправильном использовании неправильно работает.
uriy
На сколько я понимаю лини SDA и SCL с открытым коллектором. Как же они тогда могут работать без pull-up резисторов.
Charoit
Повесил резисторы 4,7 кОм. Переработал подпрограммы I2C, в PORTB записал нули, сигналом на ножках играюсь, записывая 0 или 1 в DDRB. Но обмен пока не идетsad.gif Подскажите пожалуйста, все ли ок в моих подпрограммах?

Код
start_I2C:    
    cbi    ddrB,SDA
    cbi    ddrB,SCL    
    rcall    wait_I2C    
    sbi    ddrB,SDA
    rcall    wait_I2C
    sbi    ddrB,SCL
    rcall    wait_I2C
    ret




Код
Write_I2C:
    ldi    cnt_I2C,8    
wr1_I2C:
    sbi    ddrB,SDA
    rcall    wait_I2C
    sbrc    data_I2C,7    
    cbi    ddrB,SDA
    rcall    wait_I2C
    rol    data_I2C
    sbi    ddrB,SCL
    rcall    wait_I2C
    sbi    ddrB,SCL    
    rcall    wait_I2C    
    dec    cnt_I2C        
    brne    wr1_I2C
    ret


Код
Read_I2C:
    ldi    cnt_I2C,8    
    cbi    ddrB,SDA    
    rcall    wait_I2C

rd1_I2C:
    cbi    ddrB,SCL    
    rcall    wait_I2C        
clc
    sbic    pinB,SDA    
    sec
    rol    data_I2C    
    sbi    ddrB,SCL    
    rcall    wait_I2C    
    dec    cnt_I2C        
    brne    rd1_I2C
    sbi    ddrB,SDA    
    rcall    wait_I2C
    ret
Сергей Борщ
Вот в этом куске ошибка:
Код
Write_I2C:
    .........
    rol    data_I2C
    sbi    ddrB,SCL   // тут наверное cbi должно быть.
    rcall    wait_I2C
    sbi    ddrB,SCL    
    rcall    wait_I2C    
    dec    cnt_I2C        
    brne    wr1_I2C
    ret
И чтение/посылку ack надо сделать
Charoit
2 Сергей Борщ :

Спасибо, все получилось!
Сергей Борщ
Цитата(Charoit @ Nov 12 2007, 14:38) *
Спасибо, все получилось!
- Готово, мастер!
- Что "готово"?
-Сломал!
smile.gif

Продолжает греться?
Charoit
Цитата(Сергей Борщ @ Nov 12 2007, 16:56) *
- Готово, мастер!
- Что "готово"?
-Сломал!
smile.gif

Продолжает греться?


Нет, холодная, как и Атмега. На открытую форточку реагирует адекватно - температура падает smile.gif Если поднести паяльник - сразу показывает рост температуры. Похоже, все получилосьsmile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.