|
|
  |
Греется микросхема - датчик температуры DS1621., DS1621 |
|
|
|
Nov 9 2007, 11:57
|
Участник

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

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

Группа: Участник
Сообщений: 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, как не требующий переделок - просто вставить чип в кроватку и все.
|
|
|
|
|
Nov 10 2007, 12:35
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Nov 11 2007, 22:10
|
Участник

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

|
Повесил резисторы 4,7 кОм. Переработал подпрограммы I2C, в PORTB записал нули, сигналом на ножках играюсь, записывая 0 или 1 в DDRB. Но обмен пока не идет  Подскажите пожалуйста, все ли ок в моих подпрограммах? Код 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
|
|
|
|
|
Nov 12 2007, 01:51
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Nov 12 2007, 12:38
|
Участник

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

|
2 Сергей Борщ :
Спасибо, все получилось!
|
|
|
|
|
Nov 12 2007, 13:56
|

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

|
Цитата(Charoit @ Nov 12 2007, 14:38)  Спасибо, все получилось! - Готово, мастер! - Что "готово"? -Сломал!  Продолжает греться?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Nov 12 2007, 14:35
|
Участник

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

|
Цитата(Сергей Борщ @ Nov 12 2007, 16:56)  - Готово, мастер! - Что "готово"? -Сломал!  Продолжает греться? Нет, холодная, как и Атмега. На открытую форточку реагирует адекватно - температура падает  Если поднести паяльник - сразу показывает рост температуры. Похоже, все получилось
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|