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

 
 
 
Reply to this topicStart new topic
> Греется микросхема - датчик температуры DS1621., DS1621
Charoit
сообщение Nov 9 2007, 11:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



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

З.Ы. Если к датчику поднести что-то, имеющее другую температуру, он реагирует адекватно - температура на ЖКИ падает или растет.
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 9 2007, 15:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



На схему подключения позволите взглянуть. Может быть слишком маленькие номиналы резисторов подтяжки на I2C.
Go to the top of the page
 
+Quote Post
Charoit
сообщение Nov 10 2007, 12:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



Цитата(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, как не требующий переделок - просто вставить чип в кроватку и все.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 10 2007, 12:35
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Charoit @ Nov 10 2007, 14:13) *
Подтягивающих резисторов нет. Знаю, что по-хорошему их надо бы поставить, но слышал мнение.... Буду пробовать
С этого и надо было начинать. Тогда примите пожелания успехов и приготовьтесь к новым чудесам. А виноват, конечно же, Даллас с Максимом на пару. Почитайте эту ветку. А, еще Филипс виноват, что придумал такую шину, которая при неправильном использовании неправильно работает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
uriy
сообщение Nov 11 2007, 19:08
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



На сколько я понимаю лини SDA и SCL с открытым коллектором. Как же они тогда могут работать без pull-up резисторов.
Go to the top of the page
 
+Quote Post
Charoit
сообщение Nov 11 2007, 22:10
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



Повесил резисторы 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


Сообщение отредактировал Charoit - Nov 11 2007, 22:13
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 12 2007, 01:51
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Вот в этом куске ошибка:
Код
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 надо сделать


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Charoit
сообщение Nov 12 2007, 12:38
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



2 Сергей Борщ :

Спасибо, все получилось!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 12 2007, 13:56
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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

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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Charoit
сообщение Nov 12 2007, 14:35
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



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

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


Нет, холодная, как и Атмега. На открытую форточку реагирует адекватно - температура падает smile.gif Если поднести паяльник - сразу показывает рост температуры. Похоже, все получилосьsmile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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